[PYTHON] Indice d'évaluation des performances

Indice d'évaluation des performances

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

Un modèle entraîné construit à l'aide de données d'entraînement Je vais aborder l'indice d'évaluation qui détermine sa qualité.

Premièrement, la matrice de confusion est le résultat de la prédiction du modèle pour chaque donnée de test. Il s'agit d'un tableau qui résume le nombre de résultats de prédiction qui s'appliquent à chacune des quatre perspectives Vrai positif, Vrai négatif, Faux positif et Faux négatif.

«Vrai ou faux» indique si la prédiction est correcte et «Positif ou négatif» indique la classe prédite. En d'autres termes

(1) Le nombre de vrais positifs prédits pour être dans la classe positive et le résultat était également dans la classe positive
(2) Le nombre de vrais négatifs prédits être dans la classe négative et le résultat était également dans la classe négative
③ Le nombre de faux positifs prédits pour être dans la classe positive mais le résultat était dans la classe négative
④ Le nombre de faux négatifs prédits pour être dans la classe négative mais le résultat était dans la classe positive
Sont montrés respectivement.

Le vrai positif et le vrai négatif sont corrects par le modèle d'apprentissage automatique Les faux positifs et les faux négatifs indiquent que le modèle d'apprentissage automatique est devenu incorrect.

image.png

Mettre en œuvre une matrice de confusion

sklearn.Dans le module métrique

confusion_Voyons en fait le numéro de chaque composant de la matrice de confusion en utilisant la fonction de matrice.

La fonction confusion_matrix peut être utilisée comme suit.

from sklearn.metrics import confusion_matrix
confmat = confusion_matrix(y_true, y_pred)

Dans y_true, la classe réelle des données de réponse correcte est stockée sous forme de tableau y_pred contient les classes attendues sous forme de tableau. La façon dont il est stocké est comme indiqué dans la figure confirmée dans la matrice de confusion.

Taux de réponse correct

Si vous pouvez réellement créer un modèle de classification, ce modèle de classification est-il meilleur que les autres modèles de classification? Nous avons besoin d'une norme claire pour évaluer si elle est bonne ou non.

Vérifiez le taux de réponse correct. Le taux de réponse correct signifie que les résultats du diagnostic étaient corrects dans tous les événements. Il s'agit d'un pourcentage du nombre (classé TP / TN) et peut être calculé comme suit.

image.png

Conformité / précision et rappel

La précision / précision est le pourcentage de données qui devraient être positives et qui sont en fait positives. (Taux de réussite de la prédiction) Le rappel représente le pourcentage de données positives réelles qui peuvent être prédites comme positives. (Tarif pratique et fiable)

image.png

image.png

Valeur F

La valeur F est une combinaison de la précision et du rappel (moyenne harmonique). image.png

En gros, vérifiez non seulement le taux de réponse correct, mais également la valeur F, la précision et le taux de rappel. Je vais vérifier s'il est vraiment fiable.

Index d'évaluation des performances mis en œuvre

Utilisons l'indice d'évaluation des performances implémenté dans scikit-learn.

#Taux de conformité, taux de rappel, valeur F
from sklearn.metrics import precision_score, recall_score, f1_score

#Stockez les données. Cette fois, 0 est positif et 1 est négatif
y_true = [0,0,0,1,1,1]
y_pred = [1,0,0,1,1,1]

# y_true est la bonne étiquette, y_Passer chaque étiquette de résultat de prédiction à pred
print("Precision: {:.3f}".format(precision_score(y_true, y_pred)))
print("Recall: {:.3f}".format(recall_score(y_true, y_pred)))
print("F1: {:.3f}".format(f1_score(y_true, y_pred)))

Courbe PR

Relation entre rappel et précision

image.png

La relation entre ces deux indices d'évaluation du rendement est une relation de compromis. La relation de compromis est Si vous essayez d'augmenter le taux de rappel, le taux de précision diminuera. Si vous essayez d'augmenter le taux de précision, cela signifie que le taux de rappel diminuera.

Si de nombreux patients sont positifs lors d'un examen strict lors d'un examen hospitalier Taux de rappel plus élevé, mais précision moindre, etc.

Sélectionnez et utilisez le taux de rappel, la précision et la valeur F en fonction des bases et du contenu à traiter.

image.png

Qu'est-ce qu'une courbe PR?

La courbe PR représente un graphique dans lequel les données sont tracées avec l'axe horizontal comme rappel et l'axe vertical comme précision / précision.

Laisse moi te donner un exemple. Pour 10 patients ayant subi un dépistage du cancer Après avoir calculé la possibilité de cancer pour chacun, envisagez de déclarer le patient positif ou négatif sur cette base.

Dans ce cas, la précision est celle du nombre de patients déclarés positifs au dépistage du cancer. Le pourcentage de patients qui ont vraiment un cancer Le rappel fait partie des patients vraiment cancéreux Le taux de cancer déclaré.

Le problème ici est lorsque 10 patients sont classés par ordre de probabilité élevée de cancer. Le plus grand nombre de personnes à déclarer positives.

En fonction du nombre de personnes déclarées positives Le rappel et la précision / précision changeront tous les deux.

À ce stade, si seule la première personne est positive, si la deuxième personne est positive, et ainsi de suite. Le chiffre qui calcule la précision / rappel et les trace tous Cela peut être appelé une courbe PR. Le processus de traçage est le suivant.

image.png

Le graphique de ces précision / rappel est le suivant. De plus, la forme de la courbe PR change en fonction du résultat.

image.png

D'après la figure ci-dessus, on peut dire que la relation entre rappel et précision / précision est un compromis.

Évaluation du modèle à l'aide de la courbe PR

Considérant l'utilisation efficace maximale en la plaçant sur la courbe PR, examinons d'abord les deux axes.

Il est préférable d'avoir une haute précision / rappel et un rappel élevé. Cependant, en raison de la relation de compromis, si vous essayez d'élever l'un ou l'autre, l'un tombera.

Cependant, il y a un point dans la courbe PR où la précision / rappel correspond. Ce point

Seuil de rentabilité(BEP)Est appelé.

À cet égard, c'est un point important dans les affaires car il est possible d'optimiser les coûts et les profits tout en maintenant une relation bien équilibrée entre précision / précision et rappel. J'ai abordé l'indice d'évaluation appelé valeur F, mais vous devriez garder le seuil de rentabilité comme un concept similaire.

image.png

Évaluons le modèle en utilisant la courbe PR. La supériorité et l'infériorité du modèle basé sur la courbe PR sont les suivantes. En d'autres termes, on peut dire qu'un meilleur modèle a été construit lorsque le BEP est passé en haut à droite. En effet, lorsque le BEP se déplace vers le coin supérieur droit, la précision / précision et le rappel augmentent en même temps.

image.png

Recommended Posts

Indice d'évaluation des performances
Évaluation des performances de base du langage de programmation