Comment construire une matrice de confusion pour un classifieur multiclasse?

12

J'ai un problème avec 6 cours. Je construis donc un classificateur multiclasse, comme suit: pour chaque classe, j'ai un classificateur de régression logistique, en utilisant One vs. All, ce qui signifie que j'ai 6 classificateurs différents.

Je peux signaler une matrice de confusion pour chacun de mes classificateurs. Mais, je voudrais signaler une matrice de confusion pour TOUS les classificateurs, comme je l'ai vu dans de nombreux exemples ici.

Comment puis-je le faire? Dois-je changer ma stratégie de classification, en utilisant un algorithme un contre un au lieu d'un contre tous? Parce que sur ces matrices de confusion, le rapport indique les faux positifs pour chaque classe.

Exemple d'une matrice de confusion multiclasse

Matrice de confusion multiclasse

Je voudrais trouver le nombre d'articles mal classés. Dans la première rangée, il y a 137 exemples de classe 1 qui ont été classés en classe 1 et 13 exemples de classe 1 qui ont été classés en classe 2 . Comment obtenir ce numéro?

Victor Leal
la source
Le nombre d'éléments mal classés est la somme de tous les éléments de la matrice moins la trace de la matrice ... mais je ne pense pas que c'est ce que vous voulez dire.
1
Mécaniquement, vous obtenez cette matrice en séparant d'abord votre ensemble de tests par leur classe réelle (disons, Target = 1, Target = 2, etc.), puis appliquez votre classificateur formé à chaque point de chaque groupe. Ainsi, pour Target = 1, vous remplissez la ligne supérieure de la matrice, en fonction du nombre de membres de ce groupe affectés à chaque classe.
C'est exactement la façon dont cela devrait être fait ... Donc, mécanique comme vous l'avez dit. Merci!
Victor Leal
1
aucun problème. Je l'ai également mentionné plus formellement dans mon article, mais il est parfois utile de voir la recette réelle.

Réponses:

6

Vraisemblablement, vous utilisez ces classificateurs pour vous aider à choisir une classe particulière pour un ensemble donné de valeurs d'entités (comme vous l'avez dit, vous créez un classificateur multiclasse).

Donc, supposons que vous ayez classes, alors votre matrice de confusion serait une matrice , avec l'axe gauche montrant la vraie classe (telle que connue dans le jeu de test) et l'axe supérieur montrant la classe attribuée à un élément avec cette vraie classe. Chaque élément de la matrice serait le nombre d'items de vraie classe qui ont été classés comme appartenant à la classe .NN×Ni,jij

Ceci est juste une extension simple de la matrice de confusion à 2 classes.


la source
Oui! Je sais ça! Mais comment dire les faux positifs? Je veux dire, il y a des exemples où le nombre d'articles mal classés est montré .... et mes classificateurs disent simplement "Hé, il y a 60 articles de classe A, et 40 sont d'une autre classe (je ne peux pas dire lequel est ...) "
Victor Leal
1
@VictorLeal Je ne suis pas, une matrice de confusion vous dira de faux positifs, de vrais positifs, de vrais négatifs, de faux négatifs ... qu'est-ce qui manque?
1
@VictorLeal voir ici: en.wikipedia.org/wiki/Confusion_matrix
Je connais les informations que nous avons dans une matrice de confusion. Peut-être qu'une image peut mieux représenter ce dont je parle: Confusion Matrix Multiclass
Victor Leal
@VictorLeal Cela ressemble à une matrice de confusion normale pour moi ... LHS montre la classe réelle, le haut montre la classe assignée ... est-ce que je manque quelque chose? En outre, vous devez ajouter cette image à votre message. Elle vous sera utile
12

Bien qu'il y ait déjà quelques réponses sur ce forum, j'ai pensé donner les équations explicites pour le rendre plus précis:

En supposant que vous ayez une matrice de confusion multi-classes de la forme,

C=ActualClassifedc11...c1ncn1cnn

Les éléments de confusion pour chaque classe sont donnés par:

tpi=cii

fpi=l=1nclitpi

fni=l=1nciltpi

tni=l=1nk=1nclktpifpifni

Josh Albert
la source
qu'est-ce que l et L?
girl101
1
aussi, quel est le tp, tn, fp, fn pour toutes les classes ensemble
girl101
tp = vrai positif, fp = faux positif, fn = faux négatif, tn = vrai négatif. Je suppose que l'index i fait référence à chaque classe.
albert
1

En utilisant la matrice jointe à la question et en considérant les valeurs dans l'axe vertical comme la classe réelle, et les valeurs dans l'axe horizontal la prédiction. Alors pour la classe 1:

  • Vrai positif = 137-> échantillons de classe 1, classés en classe 1
  • Faux positif = 6-> (1 + 2 + 4) échantillons des classes 2, 3 et 4, mais classés en classe 1
  • Faux négatifs = 18-> (13 + 3 + 1 + 1) échantillons de classe 1, mais classés en classes 2, 3, 6 et 7
  • Ture Negative = 581-> (55 + 1 + 6 ... + 2 + 26) La somme de toutes les valeurs de la matrice sauf celles de la colonne 1 et de la ligne 1
Ignacio Alorre
la source