Come costruire una matrice di confusione per un classificatore multiclasse?


12

Ho un problema con 6 classi. Quindi costruisco un classificatore multiclasse, come segue: per ogni classe, ho un classificatore di regressione logistica, usando One vs. All, il che significa che ho 6 classificatori diversi.

Posso segnalare una matrice di confusione per ciascuno dei miei classificatori. Ma vorrei segnalare una matrice di confusione per TUTTI i classificatori, come ho visto in molti esempi qui.

Come posso farlo? Devo cambiare la mia strategia di classificazione, usando un algoritmo One vs. One invece di One vs. All? Perché su queste matrici di confusione, i rapporti indicano i falsi positivi per ogni classe.

Esempio di matrice di confusione multiclasse

Matrice di confusione multiclasse

Vorrei trovare il numero di articoli classificati erroneamente. Nella prima riga, ci sono 137 esempi di classe 1 classificati come classe 1 e 13 esempi di classe 1 classificati come classe 2 . Come ottenere questo numero?


Il numero di elementi classificati erroneamente è la somma di tutti gli elementi nella matrice meno la traccia della matrice ... ma non penso che questo significhi.

1
Meccanicamente, ottieni questa matrice separando prima il tuo set di test per la loro classe effettiva (diciamo, Target = 1, Target = 2 ecc.), Quindi applica il tuo classificatore addestrato a ciascun punto di ciascun gruppo. Quindi, per Target = 1, riempiresti la riga superiore della matrice, in base al numero di membri di questo gruppo assegnati a ciascuna classe.

Questo è esattamente il modo in cui dovrebbe essere fatto ... Così meccanico come hai detto. Grazie!
Victor Leal,

1
nessun problema. L'ho menzionato in modo più formale anche nel mio post, ma a volte aiuta a vedere la ricetta reale.

Risposte:


6

Presumibilmente, stai usando questi classificatori per aiutarti a scegliere una particolare classe per un determinato set di valori di funzionalità (come hai detto che stai creando un classificatore multiclasse).

Quindi, supponiamo che tu abbia classi, quindi la tua matrice di confusione sarebbe una matrice N × N , con l'asse sinistro che mostra la vera classe (come noto nel set di test) e l'asse superiore che mostra la classe assegnata a un oggetto con quella vera classe. Ogni elemento della matrice sarebbe il numero di elementi con vera classe che sono stati classificati come appartenenti alla classe .NN×Nio,jioj

Questa è solo un'estensione semplice della matrice di confusione di classe 2.


Sì! Lo so! Ma come dire i falsi positivi? Voglio dire, ci sono esempi in cui viene mostrato il numero di elementi classificati in modo errato .... e i miei classificatori dicono semplicemente "Ehi, ci sono 60 articoli di classe A e 40 sono di un'altra classe (non riesco proprio a dire quale è ...) "
Victor Leal,

1
@VictorLeal Non seguo, una matrice di confusione ti dirà falsi positivi, veri positivi, veri negativi, falsi negativi ... cosa manca?


Conosco le informazioni che abbiamo in una matrice di confusione. Forse un'immagine può rappresentare meglio di cosa sto parlando: Confusion Matrix Multiclass
Victor Leal

@VictorLeal Mi sembra una normale matrice di confusione ... LHS mostra la classe effettiva in cima mostra la classe assegnata ... mi sto perdendo qualcosa? Inoltre, dovresti aggiungere questa immagine al tuo post ... sarà utile

12

Mentre ci sono già alcune risposte su questo forum, ho pensato di fornire le equazioni esplicite per renderlo più definito:

C=Effettivoclassifedc11...c1ncn1cnn

Gli elementi di confusione per ogni classe sono dati da:

tpio=cioio

fpio=Σl=1nclio-tpio

fnio=Σl=1nciol-tpio

tnio=Σl=1nΣK=1nclK-tpio-fpio-fnio


cosa sono L e L?
girl101,

1
inoltre, qual è il tp, tn, fp, fn per tutte le classi insieme
girl101,

tp = vero positivo, fp = falso positivo, fn = falso negativo, tn = vero negativo. Suppongo che l'indice i sia riferimento a ciascuna classe.
Albert

1

Utilizzando la matrice allegata alla domanda e considerando i valori nell'asse verticale come la classe effettiva, e i valori nell'asse orizzontale la previsione. Quindi per la Classe 1:

  • Vero positivo = 137-> campioni di classe 1, classificati come classe 1
  • Falso positivo = 6-> (1 + 2 + 4) campioni delle classi 2, 3 e 4, ma classificati come classe 1
  • Falso negativo = 18-> (13 + 3 + 1 + 1) campioni di classe 1, ma classificati come classi 2, 3, 6 e 7
  • Ture Negative = 581-> (55 + 1 + 6 ... + 2 + 26) La somma di tutti i valori nella matrice tranne quelli nella colonna 1 e riga 1
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.