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.
Un échantillon de données de caractères manuscrites est préparé dans les ensembles de données de scikit-learn, alors chargez-le.
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.
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.
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. 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.
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)) AdaBoostClassifier(AdaBoost) KNeighborsClassifier ([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.
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.
Le résultat suivant a été produit.
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