Apprentissage supervisé avec Scikit-Learn

Machine LearningMachine LearningBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

En apprentissage supervisé, nous souhaitons apprendre la relation entre deux jeux de données : les données observées X et une variable externe y que nous souhaitons prédire.
Il existe deux principaux types de problèmes d'apprentissage supervisé : la classification et la régression. En classification, le but est de prédire la classe ou la catégorie d'une observation, tandis qu'en régression, le but est de prédire une variable cible continue.

Dans ce laboratoire, nous explorerons les concepts d'apprentissage supervisé et verrons comment les implémenter à l'aide de scikit-learn, une bibliothèque populaire de machine learning en Python. Nous aborderons des sujets tels que la classification par plus proche voisin, la régression linéaire et les machines à vecteurs de support (SVM).

Conseils sur la VM

Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez des commentaires après la session, et nous résoudrons rapidement le problème pour vous.

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 94%. Il a reçu un taux d'avis positifs de 91% de la part des apprenants.

Classification par plus proche voisin

Dans cette étape, nous explorerons le concept de classification par plus proche voisin et comment il peut être implémenté à l'aide de scikit-learn. Nous utiliserons l'ensemble de données iris, qui consiste en des mesures de différentes fleurs d'iris.

Charger l'ensemble de données Iris
import numpy as np
from sklearn import datasets

iris_X, iris_y = datasets.load_iris(return_X_y=True)
Diviser les données en ensembles d'entraînement et de test
np.random.seed(0)
indices = np.random.permutation(len(iris_X))
iris_X_train = iris_X[indices[:-10]]
iris_y_train = iris_y[indices[:-10]]
iris_X_test = iris_X[indices[-10:]]
iris_y_test = iris_y[indices[-10:]]
Créer et ajuster un classifieur par plus proche voisin
from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier()
knn.fit(iris_X_train, iris_y_train)
Faire des prédictions
predictions = knn.predict(iris_X_test)

Régression linéaire

Dans cette étape, nous explorerons le concept de régression linéaire et comment il peut être implémenté à l'aide de scikit-learn. Nous utiliserons l'ensemble de données sur le diabète, qui consiste en des variables physiologiques de patients et en leur évolution maladie après un an.

Charger l'ensemble de données sur le diabète
diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes_y[:-20]
diabetes_y_test = diabetes_y[-20:]
Créer et ajuster un modèle de régression linéaire
from sklearn import linear_model

regr = linear_model.LinearRegression()
regr.fit(diabetes_X_train, diabetes_y_train)
Faire des prédictions et calculer des métriques de performance
predictions = regr.predict(diabetes_X_test)
mse = np.mean((predictions - diabetes_y_test)**2)
variance_score = regr.score(diabetes_X_test, diabetes_y_test)

Machines à vecteurs de support (SVM)

Dans cette étape, nous explorerons le concept de machines à vecteurs de support (SVM) et comment elles peuvent être utilisées pour les tâches de classification. Les SVM ont pour but de trouver un hyperplan qui sépare au maximum les points de données de différentes classes.

Créer et ajuster une SVM linéaire
from sklearn import svm

svc = svm.SVC(kernel='linear')
svc.fit(iris_X_train, iris_y_train)
Créer et ajuster des SVM avec différents noyaux
svc_poly = svm.SVC(kernel='poly', degree=3)
svc_rbf = svm.SVC(kernel='rbf')

svc_poly.fit(iris_X_train, iris_y_train)
svc_rbf.fit(iris_X_train, iris_y_train)

Sommaire

Dans ce laboratoire, nous avons appris à connaître différentes techniques d'apprentissage supervisé et à les implémenter à l'aide de scikit-learn. Nous avons abordé la classification par plus proche voisin, la régression linéaire et les machines à vecteurs de support (SVM). Ces techniques nous permettent de prédire des variables de sortie à partir d'observations à haute dimension et de classifier des données en différentes catégories. En appliquant ces techniques à des ensembles de données du monde réel, nous pouvons obtenir des informations et faire des prédictions dans divers domaines tels que la santé, la finance et les sciences sociales.