Como obter uma matriz de confusão agregada de n classificações diferentes

8

Eu quero testar a precisão de uma metodologia. Eu o executei ~ 400 vezes e recebi uma classificação diferente para cada execução. Eu também tenho a verdade básica, ou seja, a classificação real a ser testada.

Para cada classificação, calculei uma matriz de confusão. Agora, quero agregar esses resultados para obter a matriz de confusão geral. Como posso conseguir isso?

Posso somar todas as matrizes de confusão para obter a matriz geral?

gc5
fonte

Respostas:

4

Não sei uma resposta padrão para isso, mas pensei nisso algumas vezes atrás e tenho algumas idéias para compartilhar.

Quando você tem uma matriz de confusão, tem mais ou menos uma imagem de como o modelo de classificação confunde (classifica incorretamente) as classes. Ao repetir os testes de classificação, você terá várias matrizes de confusão. A questão é como obter uma matriz de confusão agregada significativa. A resposta depende de qual é o significado de significativo (trocadilho intencional). Eu acho que não existe uma única versão significativa.

Uma maneira é seguir a idéia aproximada de vários testes. Em geral, você testa algo várias vezes para obter resultados mais precisos. Como princípio geral, pode-se argumentar que a média dos resultados dos testes múltiplos reduz a variação das estimativas e, consequentemente, aumenta a precisão das estimativas. É possível prosseguir dessa maneira, é claro, somando posição por posição e depois dividindo pelo número de testes. Você pode ir além e, em vez de estimar apenas um valor para cada célula da matriz de confusão, também pode calcular alguns intervalos de confiança, valores t e assim por diante. Tudo bem do meu ponto de vista. Mas conta apenas um lado da história.

O outro lado da história que pode ser investigado é a estabilidade dos resultados para as mesmas instâncias. Para exemplificar que vou dar um exemplo extremo. Suponha que você tenha um modelo de classificação para 3 classes. Suponha que essas classes estejam na mesma proporção. Se o seu modelo for capaz de prever uma classe perfeitamente e as outras 2 com desempenho aleatório, você terá 0,33 + 0,166 + 0,166 = 0,66 de taxa de classificação incorreta. Isso pode parecer bom, mas mesmo se você der uma olhada em uma única matriz de confusão, não saberá que seu desempenho nas duas últimas aulas varia muito. Vários testes podem ajudar. Mas calcular a média das matrizes de confusão revelaria isso? Minha crença não é. A média fornecerá o mesmo resultado mais ou menos, e a realização de vários testes diminuirá apenas a variação da estimativa.

Portanto, outra maneira de compor as matrizes de confusão envolveria melhor uma densidade de previsão para cada instância. Pode-se construir essa densidade contando para cada instância o número de vezes que foi prevista uma determinada classe. Após a normalização, você terá para cada instância uma densidade de previsão e não um único rótulo de previsão. Você pode ver que um único rótulo de previsão é semelhante a uma densidade degenerada, onde você tem probabilidade de 1 para a classe prevista e 0 para as outras classes para cada instância separada. Agora, com essas densidades, é possível construir uma matriz de confusão adicionando as probabilidades de cada instância e classe prevista à célula correspondente da matriz de confusão agregada.

Pode-se argumentar que isso daria resultados semelhantes ao método anterior. No entanto, acho que esse pode ser o caso algumas vezes, geralmente quando o modelo apresenta baixa variação, o segundo método é menos afetado pela maneira como as amostras dos testes são coletadas e, portanto, mais estável e mais próximo da realidade.

Além disso, o segundo método pode ser alterado para obter um terceiro método, onde é possível atribuir como previsão o rótulo com maior densidade a partir da previsão de uma determinada instância.

Eu não implementei essas coisas, mas pretendo estudar mais porque acredito que vale a pena gastar algum tempo.

rapaio
fonte
O que você quer dizer com relação à classificação incorreta no quarto parágrafo?
GC5
taxa de classificação incorreta = (número de instâncias classificadas corretamente) / (número total de instâncias); nesse parágrafo, temos 0,33 = proporção de cada classe (vamos nomear rótulos como c1, c2, c3); temos 0,33 * 1,0 (c1 são todos classificados corretamente), + 0,33 * 0,5 (c2 são classificados aleatoriamente como c2 ou c3) + 0,33 * 0,5 (c3 são classificados aleatoriamente como c2 ou c3) = 0,33 + 0,166 + 0,166 = 0,66 ( casos classificados corretamente / número total de casos)
rapaio
4

Existem algumas maneiras de obter sua "matriz principal de confusão".

  1. Soma todas as matrizes de confusão: Como você sugeriu, somar isso resulta em uma matriz de confusão. O problema é que você não pode interpretar totais.

  2. Média das entradas. Esse método é igual ao número um, mas você divide cada entrada pelo número de tentativas (~ 400 no seu caso). Esse seria o meu método preferido, porque então você pode traduzir cada categoria para uma (média) + - (uma medição de erro) e realmente ver quais categorias são as mais voláteis ou estáveis. Cuidado com a interpretação dessa 'medição de erro'.

  3. Relate um problema específico de medição dos números de confusão. Por exemplo, se seus números tiverem valores discrepantes, as medianas preferem as médias.

Também há outras estatísticas que podem ser relatadas. Você pode refazer o método para acompanhar as classificações individuais. Podemos dizer outras estatísticas importantes, como '% de classificações que permanecem iguais e precisas', etc ...

nfmcclure
fonte
1
Quando você diz que, quando soma resultados, você não pode interpretar totais, você quer dizer que cada classificação pode ter um peso diferente e sua contribuição pode ser super / subestimada no total? Se eu suponho executar, por exemplo, 4 testes independentes, posso assumir que cada classificação tem o mesmo peso e interpretar (sem dor) os totais? Espero que esteja claro ..
GC5
1
O que eu pretendia transmitir é que perdemos a noção do que os números reais significam. Por exemplo, se eu tiver 4 em uma entrada específica na execução 1 e receber 5 nessa mesma entrada na execução 2, é difícil dizer exatamente o que 4 + 5 = 9 significa. Prefiro olhar para uma distribuição (% 's) ou médias de onde os indivíduos se enquadram na matriz. Parece muito mais intuitivo.
Nfmcclure