Como criar uma matriz de confusão para um classificador multiclasse?

11

Eu tenho um problema com 6 classes. Portanto, construo um classificador multiclasse, da seguinte maneira: para cada classe, tenho um classificador de Regressão Logística, usando Um vs. Todos, o que significa que tenho 6 classificadores diferentes.

Posso relatar uma matriz de confusão para cada um dos meus classificadores. Mas, gostaria de relatar uma matriz de confusão para TODOS os classificadores, como já vi em muitos exemplos aqui.

Como eu posso fazer isso? Preciso alterar minha estratégia de classificação, usando um algoritmo Um contra Um em vez de Um contra Todos? Porque nessas matrizes de confusão, os relatórios dizem os falsos positivos para cada classe.

Exemplo de uma matriz de confusão multiclasse

Matriz de confusão multiclasse

Gostaria de encontrar o número de itens classificados incorretamente. Na primeira linha, existem 137 exemplos da classe 1 que foram classificados como classe 1 e 13 exemplos da classe 1 que foram classificados como classe 2 . Como obter esse número?

Victor Leal
fonte
O número de itens mal classificados é a soma de todos os elementos na matriz menos o traço da matriz ... mas não acho que seja isso que você quer dizer.
11
Mecanicamente, você obtém essa matriz primeiro separando seu conjunto de testes pela classe real (por exemplo, Alvo = 1, Alvo = 2 etc) e, em seguida, aplique seu classificador treinado a cada ponto de cada grupo. Portanto, para Target = 1, você preencheria a linha superior da matriz, com base em quantos membros deste grupo foram designados para cada classe.
É exatamente assim que deve ser feito ... Tão mecânico como você disse. Obrigado!
21415 Victor Leal #
11
sem problemas. Mencionei isso mais formalmente no meu post também, mas às vezes ajuda a ver a receita real.

Respostas:

6

Presumivelmente, você está usando esses classificadores para ajudar a escolher uma classe específica para um determinado conjunto de valores de recursos (como você disse que está criando um classificador multiclasse).

NN×Ni,jij

Esta é apenas uma extensão direta da matriz de confusão de 2 classes.


fonte
Sim! Eu sei disso! Mas, como dizer os falsos positivos? Quero dizer, existem exemplos em que o número de itens classificados incorretamente é mostrado ... e meus classificadores apenas dizem "Ei, existem 60 itens da classe A e 40 são de outra classe (não sei dizer qual deles is ...) "
Victor Leal
11
@ VictorLeal Eu não sigo, uma matriz de confusão dirá falso positivo, verdadeiro positivo, verdadeiros negativos, falsos negativos ... o que está faltando?
11
@VictorLeal veja aqui: en.wikipedia.org/wiki/Confusion_matrix
Conheço as informações que temos em uma Matriz de Confusão. Talvez uma lata de imagem representa melhor o que estou falando: Confusão Matrix Multi
Victor Leal
@VictorLeal Parece uma matriz de confusão normal para mim ... O LHS mostra a classe real, o topo mostra a classe atribuída ... estou faltando alguma coisa? Além disso, você deve adicionar esta imagem para o seu post..it será útil
11

Embora já existam algumas respostas neste fórum, pensei em fornecer as equações explícitas para torná-lo mais definido:

C=ActualClassifedc11...c1ncn1cnn

Os elementos de confusão para cada classe são dados por:

tpi=cii

fpEu=eu=1 1nceuEu-tpEu

fnEu=eu=1 1ncEueu-tpEu

tnEu=eu=1 1nk=1 1nceuk-tpEu-fpEu-fnEu

Josh Albert
fonte
o que eu e eu?
girl101
11
também, o que é o tp, tn, fp, fn para todas as classes juntos
girl101
tp = verdadeiro positivo, fp = falso positivo, fn = falso negativo, tn = verdadeiro negativo. Suponho que o índice i seja referência para cada classe.
albert
1

Usando a matriz anexada na pergunta e considerando os valores no eixo vertical como a classe real e os valores no eixo horizontal como a previsão. Então para a classe 1:

  • Verdadeiro positivo = 137-> amostras da classe 1, classificadas como classe 1
  • Falso positivo = 6-> (1 + 2 + 4) amostras das classes 2, 3 e 4, mas classificadas como classe 1
  • Falso negativo = 18-> (13 + 3 + 1 + 1) amostras da classe 1, mas classificadas como classes 2, 3, 6 e 7
  • Ture Negative = 581-> (55 + 1 + 6 ... + 2 + 26) A soma de todos os valores na matriz, exceto os da coluna 1 e da linha 1
Ignacio Alorre
fonte