[PYTHON] À propos de la matrice de confusion

Qu'est-ce qu'une matrice de confusion?

Une matrice qui représente le nombre qui a été correctement déterminé et le nombre qui a été déterminé par erreur entre le résultat prédit passé à travers un modèle et la valeur réelle.

Quand la matrice de confusion est-elle utilisée?

Généralement, classification binaire.

Pourquoi la matrice de confusion est-elle utilisée?

Par exemple, lorsque vous souhaitez prédire si vous avez un cancer ou non à partir d'une image donnée, La valeur réelle est 98/100 pour les personnes non cancéreuses (0) 2/100 pour les personnes atteintes de cancer (1) Supposons que c'était le cas.

À ce stade, si les prédictions sont toutes à 0, le taux de réponse correct est de 98%. Cela semble être un bon nombre vu en termes de taux de réponse correct, Est-ce vraiment une bonne évaluation? Les deux personnes qui l'ont raté ne sont-elles pas une erreur fatale?

Même dans de tels cas, la matrice de confusion est utilisée pour réussir une évaluation.

Utilisons une matrice de confusion

En général, l'axe horizontal est le résultat de la prédiction du modèle et l'axe vertical est la valeur réelle. スクリーンショット 2020-08-09 21.02.50.png

Vrai: résultats qui peuvent être prédits correctement Faux: résultat mal prédit positif: résultat de la détermination de l'existence d'une maladie (= 1) négatif: résultat de l'absence de maladie (= 0)

matrix.py



from sklearn.metrics import confusion_matrix

#Créer une matrice de confusion
cm = confusion_matrix(y_true=y_test, y_pred=y_pred)

# y_Passer à vrai est la donnée variable objective pour l'évaluation
# y_X pour passer à pred_prédire avec test()Résultat prédit à l'aide de la fonction

#Dataframe la matrice de confusion
df_cm = pd.DataFrame(np.rot90(cm, 2), index=["actual_Positive", "actual_Negative"], columns=["predict_Positive", "predict_Negative"])
print(df_cm)

#Visualisation de la matrice de confusion par heatmap
sns.heatmap(df_cm, annot=True, fmt="2g", cmap='Blues')
plt.yticks(va='center')
plt.show()
スクリーンショット 2020-08-09 21.10.48.png

Considérez l'indice d'évaluation qui mesure les performances du modèle à partir d'ici

Solution / précision

Tout d'abord, vérifiez à quel point vous pouvez classer correctement toutes les données

Accuracy = \dfrac{TP + TN}{TP + FP + FN + TN}

Précision

Après avoir obtenu un résultat positif (1), vérifiez si vous avez effectivement répondu correctement

Presision=\dfrac{TP}{TP + FP}

Rappel, taux vraiment positif

Les données réelles sont positives (1), combien Les données prédites sont-elles correctement estimées positives? Plus cette valeur est élevée, meilleures sont les performances et moins de faux positifs sont émis.

Recall=\dfrac{TP}{TP + FN}

Taux vraiment négatif

Les données réelles sont négatives (0), combien Les données prédites sont-elles correctement estimées négatives? Plus cette valeur est élevée, meilleures sont les performances et moins les jugements négatifs sont faux.

Recall=\dfrac{TN}{FP + TN}

Taux de faux négatifs

Les données réelles sont positives (1), combien Les données prédites ont-elles été présumées à tort négatives? Plus cette valeur est basse, meilleures sont les performances et moins le jugement positif est erroné.

False\ Negative\ Rate=\dfrac{FN}{TP + FN}

Taux de faux positifs

Les données réelles sont négatives (0), combien Les données prévues ont-elles été présumées à tort positives? Plus cette valeur est basse, meilleure est la performance et il y a peu de mauvais jugements négatifs.

False\ Positive\ Rate=\dfrac{FP}{FP + TN}

Mesurez le taux vrai positif et le taux vrai négatif dans l'exemple traité dans le chapitre "Pourquoi la matrice de confusion est-elle utilisée?"

Résultat de prédiction positif Résultat de prédiction négatif
Résultat positif réel 98 0
Résultat négatif réel 2 0

Accuracy = \dfrac{98 + 0}{98 + 2 + 0 + 0}=0.98

98% de taux de réponse correcte

Recall=\dfrac{98}{98 + 0}=1

100% => Ceci détermine que tous les positifs sont correctement classés

Recall=\dfrac{0}{2 + 0}=0

0% => Cela détermine que tous les négatifs ont été classés de manière incorrecte

Résumé

Pour utiliser un modèle d'apprentissage automatique de classification binaire en entreprise, calculez un index pour mesurer les performances, Il est important de comprendre et d'utiliser la valeur d'index qui convient à l'objectif

Recommended Posts

À propos de la matrice de confusion
À propos de Confusion Matrix
À propos du test
À propos de la file d'attente
À propos de la fonction Déplier
À propos du modèle de visiteur
À propos de scatter_matrix
À propos du module Python venv
À propos de la fonction enumerate (python)
À propos du problème du voyageur de commerce
À propos de la compréhension du lecteur en 3 points [...]
À propos des composants de Luigi
À propos des fonctionnalités de Python
Obtenez l'index de chaque élément de la matrice de confusion en Python
Pensez au problème de changement minimum
À propos du problème du vendeur de patrouille commandé
[Python] Qu'est-ce que @? (À propos des décorateurs)
À propos de la valeur de retour de pthread_mutex_init ()
À propos de la valeur de retour de l'histogramme.
À propos du type de base de Go
À propos de la limite supérieure de threads-max
À propos de l'option moyenne de sklearn.metrics.f1_score
À propos du comportement de yield_per de SqlAlchemy
À propos de la taille des points dans matplotlib
À propos de la liste de base des bases de Python
Pensez grossièrement à la fonction de perte
[Python Kivy] À propos de la modification du thème de conception
A propos du comportement de enable_backprop de Chainer v2
À propos de l'environnement virtuel de Python version 3.7
Exécutez la matrice sur le terminal de votre patron!
Notes diverses sur le framework Django REST
Contrôlez le panneau LED Matrix depuis ROS
Pensez grossièrement à la méthode de descente de gradient
[Python] Résumez les éléments rudimentaires du multithreading
À propos de l'environnement de développement que vous utilisez
A propos des arguments de la fonction setup de PyCaret
Qu'en est-il de 2017 autour du langage Crystal? (Illusion)
À propos de la relation entre Git et GitHub
À propos de l'équation normale de la régression linéaire
Un mémo que j'ai essayé le tutoriel Pyramid
La matrice de confusion exige-t-elle également le rapport de chaque élément à la ligne totale?