[PYTHON] [Apprentissage automatique] Vérifiez les performances du classificateur à l'aide de données de caractères manuscrites

Bonjour. Il s'agit de Hayashi @ Ienter.

Dans le précédent Blog, l'image a été décolorée à l'aide de l'algorithme de calcul de la moyenne k de scikit-learn et d'OpenCV.

Cette fois, en utilisant l'exemple de données de caractères manuscrites préparé dans scikit-learn Faisons une simple vérification des performances de plusieurs classificateurs.

Lecture des données de caractères manuscrites

Un échantillon de données de caractères manuscrites est préparé dans les ensembles de données de scikit-learn, alors chargez-le. shot1.png

La variable explicative X est un tableau de données d'image de 0 à 9, et la variable objectif Y est un tableau de nombres de 0 à 9 correspondant à chaque image.

Les premières données des données X sont un tel tableau numérique de 64. shot2.png

En fait, ce tableau contient des données d'image de taille 8x8 en tant qu'image, donc Traitons le tableau et affichons les 20 premières données. L'image est affichée sous la forme d'une image en pixels en niveaux de gris.

shot3.png

Vérification d'intersection en K

Cette fois, nous évaluerons la précision du classifieur en utilisant la «vérification d'intersection de K pli». La "vérification d'intersection de plis K" divise un groupe d'échantillons en K blocs et évalue K-1 blocs en tant que données d'apprentissage et le bloc restant en tant que données de test. De plus, le bloc de test sera évalué lors du passage du 1er au Kth. L'image est la suivante. shot4.png scikit-learn fournit K-fold pour cross_validation. Cette fois, nous allons préparer un pli K qui divise les données de l'échantillon en 10. shot5.png

Classificateur à évaluer

Vérifiez les performances des classificateurs suivants. LogisticRegression (LogisticRegression) GaussianNB ([Naive Bayes](https://ja.wikipedia.org/wiki/Simple Bayes Classifier)) SVC ([Support Vector Machine](https://ja.wikipedia.org/wiki/Support Vector Machine) ))) DecisionTreeClassifier ([Arbre de décision](https://ja.wikipedia.org/wiki/Decision Tree)) RandomForestClassifier ([Random Forest](https://ja.wikipedia.org/wiki/Random Forest)) AdaBoostClassifierAdaBoostKNeighborsClassifier ([Méthode de voisinage K](https://ja.wikipedia.org/wiki/K méthode de voisinage) )))

Pour SVC, vérifiez les types de noyau avec trois types: "rbf (noyau gaussien)", "linear (noyau linéaire)" et "poly (noyau polypoly)".

Préparez un tableau dont les éléments sont l'instance et le nom du classificateur comme indiqué ci-dessous. shot6.png

À propos du contrôle des performances

Les contrôles de performance sont évalués en fonction de la précision et de la vitesse d'analyse de chaque classificateur. Pour plus de précision, 10 tests de prédiction dans K-fold sont notés et moyennés avec precision_score dans sklearn.metrics. De plus, la vitesse d'analyse mesure le temps nécessaire entre l'apprentissage (ajustement) et la prédiction (prédire). Prenez la moyenne. shot7.png

Le résultat suivant a été produit. shot8.png

Les trois types de noyaux, "SVC" (support vector machine) et "K Neighbours Classifier" (méthode K-voisinage), donnent de bonnes valeurs numériques.

La précision la plus élevée est SVC-rbf, mais le temps d'analyse semble prendre un certain temps. KNeighborsClassifier est le deuxième nombre en précision, mais la vitesse d'analyse est 4 fois plus rapide que SVC-rbf.

Évaluant de manière exhaustive la précision et la vitesse, le classificateur K-NeighboursClassifier est probablement le classificateur le plus performant dans ce test.

C'est tout pour cette histoire!

Recommended Posts

[Apprentissage automatique] Vérifiez les performances du classificateur à l'aide de données de caractères manuscrites
Prédire le sexe des utilisateurs de Twitter grâce à l'apprentissage automatique
Résumé du flux de base de l'apprentissage automatique avec Python
Bilan du premier défi du machine learning avec Keras
Alignez le nombre d'échantillons entre les classes de données pour l'apprentissage automatique avec Python
Prédire le temps objectif d'un marathon complet avec l'apprentissage automatique-③: j'ai essayé de visualiser les données avec Python-
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de régression
Vérification des performances du prétraitement des données pour l'apprentissage automatique (données numériques) (partie 2)
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de classification
Vérification des performances du prétraitement des données pour l'apprentissage automatique (données numériques) (partie 1)
Une histoire coincée avec l'installation de la bibliothèque de machine learning JAX
Sklearn de données déséquilibrées avec apprentissage automatique k-NN
Vérifier l'existence du fichier avec python
Ingénierie des fonctionnalités pour l'apprentissage automatique à partir de la partie 1 Google Colaboratory - Validation et discrimination des données de comptage
L'histoire de l'apprentissage profond avec TPU
Vérifiez la date du devoir de drapeau avec Python
À propos du contenu de développement de l'apprentissage automatique (exemple)
J'ai commencé l'apprentissage automatique avec le prétraitement des données Python
Convertir le code de caractère du fichier avec Python3
Vérifiez l'état des données à l'aide de pandas_profiling
Vérifions la transition démographique de la ville de Matsue, préfecture de Shimane avec des données ouvertes
Points clés de «Machine learning avec Azure ML Studio»
La première étape de l'apprentissage automatique ~ Pour ceux qui veulent essayer l'implémentation avec python ~
À propos du prétraitement des données des systèmes utilisant l'apprentissage automatique
Impressions d'avoir obtenu le nano-diplôme Udacity Machine Learning Engineer
À propos des tests dans la mise en œuvre de modèles d'apprentissage automatique
J'ai mesuré les performances d'un million de documents avec mongoDB
Calculer le produit des matrices avec une expression de caractère?
J'ai créé une API avec Docker qui renvoie la valeur prédite du modèle d'apprentissage automatique
Essayez de gratter les données COVID-19 Tokyo avec Python
Un diagramme de réseau a été créé avec les données du COVID-19.
Introduction à l'apprentissage automatique avec scikit-learn - De l'acquisition de données à l'optimisation des paramètres
Le résultat de l'apprentissage automatique des ingénieurs Java avec Python www
Enquête sur l'utilisation du machine learning dans les services réels
Prédire la présence ou l'absence d'infidélité par l'apprentissage automatique
Vérifiez l'état de la mémoire du serveur avec la commande gratuite Linux
Vérifiez l'état de fonctionnement du serveur avec la commande Linux top
L'histoire du rubyiste aux prises avec Python :: Dict data with pycall
[Homologie] Comptez le nombre de trous dans les données avec Python
Comment augmenter le nombre d'images de jeux de données d'apprentissage automatique
[Apprentissage automatique] J'ai essayé de résumer la théorie d'Adaboost
Essayez d'extraire les caractéristiques des données de capteur avec CNN
Bases de l'apprentissage automatique (mémoire)
Apprentissage automatique avec Python! Préparation
Démineur d'apprentissage automatique avec PyTorch
Vérifiez le code avec flake8
Importance des ensembles de données d'apprentissage automatique
Commencer avec l'apprentissage automatique Python
Essayez le machine learning à la légère avec Kaggle
J'ai essayé de créer Othello AI avec tensorflow sans comprendre la théorie de l'apprentissage automatique ~ Introduction ~
Pour vous qui regardez soudainement le journal tout en apprenant avec l'apprentissage automatique ~ Entraînement musculaire avec LightGBM ~
J'ai essayé de créer Othello AI avec tensorflow sans comprendre la théorie de l'apprentissage automatique ~ Implémentation ~
Enregistrez le résultat de l'exploration avec Scrapy dans Google Data Store
À propos de la méthode d'apprentissage avec les données originales de CenterNet (Objects as Points)
Vérifiez la protection de la mémoire de Linux Kerne avec le code pour ARM
Comment utiliser l'apprentissage automatique pour le travail? 01_ Comprendre l'objectif de l'apprentissage automatique
[Introduction au style GAN] Apprentissage unique de l'animation avec votre propre machine ♬
Je veux vérifier la position de mon visage avec OpenCV!