Machine learning, apprentissage supervisé, régression linéaire, algorithme kNN, KNeighborsClassifier, Seaborn, Matplotlib, sklearn, modélisation, données, numérisation, probabilités, score modèle, algorithme des k plus proches voisins, régression vectorielle, Python, NumPy, scikit-learn, Jupyter Notebook
Ce TD comporte 2 exercices corrigés de machine learning sur l'apprentissage supervisé.
[...] Remplacez par exemple ‘male' par zéro et ‘female' par un : Entrée Titanic["sex"].replace(["male", "female"], inplace = True) Titanic.head() ipykernel_4652\875719923.py:1: SettingWith CopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/ stable/user_guide/indexing.html#returning-a-view-versus-a-copy (https://pand as.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-v ersus-a-copy) Titanic["sex"].replace(["male", "female"], inplace = True) Out[41]: survived pclass sex age 1 1 1 1 38.0 3 1 1 1 35.0 6 1 0 54.0 10 1 3 1 11 1 1 1 58.0 4.0 Vérifiez que jeu de données est bien numérisé. Si non procédez aux diverses numérisations. On peut clairement voir que la numérisation du jeu de données a eu lieu. [...]
[...] L'apprentissage est-il réussi ? Entrée model.score(X,Y) Out[14]: 0.9362581577619835 L'apprentissage est réussi à une hauteur de 93% donc nous pouvons dire que celle-ci semble etre réussi. Superposez sur le nuage de points, le modèle prédit (plt.plot(model.predict, c='r')) pour différentes valeurs de m ( 10000). Entrée plt.plot(X,model.predict(X), plt.scatter(X,Y) plt.xlabel("x") plt.ylabel("y") plt.title("Pour un m = 100") plt.show() Entrée m = 1000 X = np.linspace(0,10,m).reshape(m,1) Y = + np.random.random((m,1)) model.fit(X,Y) model.score(X,Y) plt.plot(X,model.predict(X), plt.scatter(X,Y) plt.xlabel("x") plt.ylabel("y") plt.title("Pour un m = 1000") plt.show() Entrée m = 10000 X = np.linspace(0,10,m).reshape(m,1) Y = + np.random.random((m,1)) model.fit(X,Y) model.score(X,Y) plt.plot(X,model.predict(X), plt.scatter(X,Y) plt.xlabel("x") plt.ylabel("y") plt.title("Pour un m = 10000") plt.show() Nous pouvons que meme si le score du modèle semble élévé pour l'apprentissage, le modèle ne correspond pas aux points de notre jeu de données. [...]
[...] Please change the shape of y to (n_samples, for example using ravel y = column_or_1d(y, warn=True) Out[20]: SVR(C=100) Evaluez ce modèle (model.score(X,y)). L'apprentissage est-il réussi ? Entrée model.score(X,Y) Out[21]: 0.9998134524519893 L'évaluation de ce modèle montre un apprentissage presque totalement réussi. Tracez le modèle prédit (plt.plot(model.predict, c='r')) pour différentes valeurs de m ( 10000). Entrée plt.plot(X,model.predict(X), plt.scatter(X,Y) plt.xlabel("x") plt.ylabel("y") plt.title("Pour un m = 100") plt.show() Entrée m = 1000 X = np.linspace(0,10,m).reshape(m,1) Y = + np.random.random((m,1)) model.fit(X,Y) model.score(X,Y) plt.plot(X,model.predict(X), plt.scatter(X,Y) plt.xlabel("x") plt.ylabel("y") plt.title("Pour un m = 1000") plt.show() site-packages\sklearn\utils\validation.py:993: DataConversionWarning: A column-vector y was passed when a 1d array was expe cted. [...]
[...] Commentez le graphique. Entrée plt.scatter(X,Y) plt.xlabel("x") plt.ylabel("y") plt.show() On peut voir que les coordonnées de x et y donne une fonction linéaire de type 𝑎𝑥 + 𝑏 comme dans notre modèle de la régression linéaire. On souhaite représenter ce nuage de points par un modèle de régression linéaire : Entrée model = LinearRegression() Entrainez ce modèle (model.fit(X,y)). Entrée model.fit(X,Y) Out[6]: LinearRegression() Evaluez ce modèle (model.score(X,y)). Entrée model.score(X,Y) Out[7]: 0.9904652159218895 Superposez sur le nuage de points, le modèle prédit en utilisant plt.plot(model.predict, c='r')). [...]
[...] On a un tableau pandas, il va falloir qu'on le divise en deux tableaux X et Y Entrée Y = Titanic["survived"] X = Titanic.drop("survived", axis=1) L'interet de cette écriture est de pouvoir se focaliser sur l'étude d'une colonne en particulier dans le cas de notre apprentissage surpervisé. Ici, par exemple, nous allons chercher à faire une prédiction sur la survie des personnes sur le Titanic. Y représente la colonne des personnes qui ont survécu ou pas. X représente tout le reste des données sauf celui de la survie. En vous appuyant sur Fig sélectionnez le modèle de classification KNeighborsClassifier en faisant appel Entrée from sklearn.neighbors import KNeighborsClassifier model = KNeighborsClassifier(5) Entrainez le modèle (model.fit(X,y)). [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture