Je me demande comment calculer la précision et se rappeler en utilisant une matrice de confusion pour un problème de classification multi-classes. Plus précisément, une observation ne peut être affectée qu'à sa classe / étiquette la plus probable. Je voudrais calculer:
- Précision = TP / (TP + FP)
- Rappel = TP / (TP + FN)
pour chaque classe, puis calculez la F-mesure micro-moyennée.
Réponses:
Dans un cas à 2 hypothèses, la matrice de confusion est généralement:
où j'ai utilisé quelque chose de similaire à votre notation:
À partir des données brutes, les valeurs de la table seraient généralement les comptes de chaque occurrence sur les données de test. À partir de cela, vous devriez pouvoir calculer les quantités dont vous avez besoin.
Modifier
La généralisation aux problèmes multi-classes consiste à additionner les lignes / colonnes de la matrice de confusion. Étant donné que la matrice est orientée comme ci-dessus, c'est-à-dire qu'une ligne donnée de la matrice correspond à une valeur spécifique pour la "vérité", nous avons:
Autrement dit, la précision est la fraction d'événements où nous avons correctement déclaré parmi toutes les instances où l'algorithme a déclaré . Inversement, le rappel est la fraction d'événements où nous avons correctement déclaré parmi tous les cas où le vrai de l'état du monde est .i i i i
la source
i
n'est pas définie s'il n'y a aucune instance déclarée par l'algorithmei
. Le rappel de la classei
n'est pas défini si l'ensemble de tests n'inclut pas la classei
.Bon document de synthèse, examinant ces métriques pour des problèmes multi-classes:
Le résumé se lit comme suit:
la source
Utilisation de sklearn et numpy:
Pour obtenir des mesures globales de précision et de rappel, utilisez ensuite
la source