API de visualisation de 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

Scikit-learn est une bibliothèque Python populaire qui fournit une API simple et efficace pour les tâches de machine learning. L'une des principales fonctionnalités de scikit-learn est son API de visualisation intégrée, qui facilite la génération de visualisations pour les modèles de machine learning. Dans ce laboratoire, nous allons explorer comment utiliser l'API de visualisation de scikit-learn pour comparer les courbes ROC de deux classifieurs différents.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle 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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/ensemble("Ensemble Methods") sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/svm("Support Vector Machines") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/model_selection("Model Selection") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/metrics("Metrics") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/ensemble -.-> lab-49274{{"API de visualisation de Scikit-Learn"}} sklearn/svm -.-> lab-49274{{"API de visualisation de Scikit-Learn"}} sklearn/model_selection -.-> lab-49274{{"API de visualisation de Scikit-Learn"}} sklearn/metrics -.-> lab-49274{{"API de visualisation de Scikit-Learn"}} sklearn/datasets -.-> lab-49274{{"API de visualisation de Scikit-Learn"}} ml/sklearn -.-> lab-49274{{"API de visualisation de Scikit-Learn"}} end

Charger les données et entraîner un SVC

Nous commencerons par charger l'ensemble de données du vin et le convertir en un problème de classification binaire. Ensuite, nous entraînerons un classifieur à vecteurs de support sur l'ensemble de données d'entraînement.

import matplotlib.pyplot as plt
from sklearn.svm import SVC
from sklearn.metrics import RocCurveDisplay
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split

X, y = load_wine(return_X_y=True)
y = y == 2

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
svc = SVC(random_state=42)
svc.fit(X_train, y_train)

Tracer la courbe ROC

Ensuite, nous allons tracer la courbe ROC à l'aide de la fonction RocCurveDisplay.from_estimator. Cette fonction prend le classifieur entraîné, l'ensemble de données de test et les vraies étiquettes en entrée, et renvoie un objet qui peut être utilisé pour tracer la courbe ROC. Nous appellerons ensuite la méthode show() pour afficher le tracé.

svc_disp = RocCurveDisplay.from_estimator(svc, X_test, y_test)
svc_disp.show()

Entraîner un forêt aléatoire et tracer la courbe ROC

Dans cette étape, nous allons entraîner un classifieur à forêt aléatoire et tracer sa courbe ROC en même temps que la courbe ROC du SVC. Pour ce faire, nous allons créer un nouvel objet RandomForestClassifier, l'ajuster aux données d'entraînement, puis créer un nouvel objet RocCurveDisplay en utilisant ce classifieur. Nous passerons également le paramètre ax à cette fonction pour tracer les courbes sur le même axe. Enfin, nous appellerons la méthode plot() de l'objet svc_disp pour tracer la courbe ROC du SVC.

from sklearn.ensemble import RandomForestClassifier

rfc = RandomForestClassifier(n_estimators=10, random_state=42)
rfc.fit(X_train, y_train)

ax = plt.gca()
rfc_disp = RocCurveDisplay.from_estimator(rfc, X_test, y_test, ax=ax, alpha=0.8)
svc_disp.plot(ax=ax, alpha=0.8)
plt.show()

Sommaire

Dans ce laboratoire, nous avons exploré la manière d'utiliser l'API de visualisation de scikit-learn pour tracer les courbes ROC de deux classifieurs différents. Nous avons commencé par charger l'ensemble de données du vin et entraîner un classifieur à vecteurs de support sur les données d'entraînement. Nous avons ensuite tracé la courbe ROC de ce classifieur à l'aide de la fonction RocCurveDisplay. Enfin, nous avons entraîné un classifieur à forêt aléatoire et tracé sa courbe ROC en même temps que la courbe ROC du SVC. L'API de visualisation de scikit-learn facilite la comparaison de différents classifieurs et la visualisation de leur performance.