Classification de chiffres à l'aide 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

Ce laboratoire est un tutoriel étape par étape sur la manière d'utiliser des techniques de classification sur le jeu de données Digits à l'aide de scikit-learn. Dans ce laboratoire, nous allons charger le jeu de données, prétraiter les données, diviser le jeu de données en ensembles d'entraînement et de test, puis utiliser deux techniques de classification différentes (K Plus Proches Voisins et Régression Logistique) pour classifier les chiffres. Enfin, nous comparerons la précision des deux techniques.

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 limites 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églerons 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"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/linear_model("Linear Models") sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/neighbors("Nearest Neighbors") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/model_selection("Model Selection") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/linear_model -.-> lab-49106{{"Classification de chiffres à l'aide de Scikit-Learn"}} sklearn/neighbors -.-> lab-49106{{"Classification de chiffres à l'aide de Scikit-Learn"}} sklearn/model_selection -.-> lab-49106{{"Classification de chiffres à l'aide de Scikit-Learn"}} ml/sklearn -.-> lab-49106{{"Classification de chiffres à l'aide de Scikit-Learn"}} end

Charger le jeu de données Digits

Nous allons commencer par charger le jeu de données Digits à l'aide de la fonction load_digits de scikit-learn. Cette fonction renvoie deux tableaux : X_digits contenant les données d'entrée et y_digits contenant les étiquettes cibles.

from sklearn import datasets

X_digits, y_digits = datasets.load_digits(return_X_y=True)

Prétraiter les données

Nous allons ensuite prétraiter les données en mettant à l'échelle les caractéristiques dans une plage de [0, 1] en utilisant la valeur maximale des données. Cela peut être fait en divisant les données d'entrée par la valeur maximale des données d'entrée.

X_digits = X_digits / X_digits.max()

Diviser le jeu de données en ensembles d'entraînement et de test

Ensuite, nous allons diviser le jeu de données en ensembles d'entraînement et de test à l'aide de la fonction train_test_split de scikit-learn. Nous utiliserons 90 % des données pour l'entraînement et 10 % pour les tests.

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X_digits, y_digits, test_size=0.1, random_state=42)

Entraîner et tester le classifieur K Plus Proches Voisins

Nous allons maintenant entraîner un classifieur K Plus Proches Voisins (KNN) à l'aide de la fonction KNeighborsClassifier de scikit-learn et le tester sur l'ensemble de test. Nous allons ensuite afficher le score de précision du classifieur.

from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
knn_score = knn.score(X_test, y_test)

print("KNN score: %f" % knn_score)

Entraîner et tester le classifieur de Régression Logistique

Nous allons maintenant entraîner un classifieur de Régression Logistique à l'aide de la fonction LogisticRegression de scikit-learn et le tester sur l'ensemble de test. Nous allons ensuite afficher le score de précision du classifieur.

from sklearn.linear_model import LogisticRegression

logistic = LogisticRegression(max_iter=1000)
logistic.fit(X_train, y_train)
logistic_score = logistic.score(X_test, y_test)

print("Logistic Regression score: %f" % logistic_score)

#Comparer la précision des deux classifieurs

Enfin, nous allons comparer la précision des deux classifieurs en affichant les scores de précision des deux classifieurs.

print("KNN score: %f" % knn_score)
print("Logistic Regression score: %f" % logistic_score)

Sommaire

Dans ce laboratoire, nous avons appris à utiliser des techniques de classification sur le jeu de données Digits à l'aide de scikit-learn. Nous avons chargé le jeu de données, prétraité les données, divisé le jeu de données en ensembles d'entraînement et de test, puis entraîné et testé deux classifieurs différents (K Plus Proches Voisins et Régression Logistique) sur l'ensemble de test. Enfin, nous avons comparé la précision des deux classifieurs.