Como medir o desempenho de um classificador quando perto de 100% dos rótulos de classe pertencem a uma classe?

9

Em meus dados, eu tenho uma variável de classe, denominado . Os valores desta variável de classe são (binário). Quase todas as observações de são 0 (perto de 100%, mais precisamente, 97%). Eu gostaria de fazer um teste de "desempenho" em diferentes modelos de classificação (pode ser precisão). O que tenho medo de acontecer é que, se eu tiver um modelo de classificação que sempre classifique qualquer observação na classe 0, esse modelo será 97% exato (mesmo que nunca considere outras variáveis).0 , 1 CC0,1C

Existem testes de desempenho bem conhecidos para modelos de classificação em dados que lidam com eventos muito raros?

Jane Wayne
fonte

Respostas:

3

Algumas possibilidades vêm à minha mente.

Observar a taxa geral de acertos geralmente não é uma idéia muito boa, pois dependerá da composição do conjunto de testes se o desempenho das diferentes classes for diferente. Portanto, no mínimo, você deve especificar (e justificar) a frequência relativa das classes nos seus dados de teste para obter um valor significativo.

Em segundo lugar, como o @Shorack já disse, especifique quais tipos de erro são importantes. Freqüentemente, o classificador precisa atender a certos critérios de desempenho para ser útil (e a precisão geral raramente é a medida adequada). Existem medidas como sensibilidade, especificidade, valor preditivo positivo e negativo que levam em consideração as diferentes classes e os diferentes tipos de classificação incorreta. Você pode dizer que essas medidas respondem a perguntas diferentes sobre o classificador:

  • sensibilidade: Que fração dos casos que pertencem verdadeiramente à classe C é reconhecida como tal?
  • especificidade: Que fração dos casos que verdadeiramente não pertencem à classe C é reconhecida como tal?
  • valor preditivo positivo: dado o classificador prediz a classe C, qual é a probabilidade de que esta predição esteja correta?
  • valor preditivo negativo: dado que o classificador prevê que o caso não é da classe C, qual é a probabilidade de que essa previsão esteja correta?

Essas perguntas geralmente permitem formular especificações que o classificador precisa para ser útil.

Os valores preditivos geralmente são mais importantes do ponto de vista da aplicação prática do classificador: eles são condicionados à previsão, que é a situação em que você se aplica ao aplicar o classificador (um paciente geralmente não está interessado em saber a probabilidade de O teste consiste em reconhecer casos de doenças, mas com que probabilidade o diagnóstico indicado está correto). No entanto, para calculá-los adequadamente, você precisa conhecer as frequências relativas das diferentes classes na população em que o classificador é usado (parece que você tem essas informações - então não há nada que o impeça de olhar para isso).

Você também pode observar o ganho de informações que uma previsão positiva ou negativa fornece. Isso é medido pela razão de verossimilhança positiva e negativa, LR⁺ e LR⁻. Resumidamente, eles dizem quanto a previsão altera as probabilidades em relação à classe em questão. (veja minha resposta aqui para uma explicação mais detalhada)

Para o seu classificador trivial, as coisas são assim: vou usar a classe "0" como a classe em questão, então "positivo" significa classe "0". Dos 100 casos, 100 são previstos positivos (pertencer à classe 0). 97 deles realmente fazem, 3 não. A sensibilidade para a classe 0 é 100% (todos os 97 casos pertencentes à classe 0 foram reconhecidos), a especificidade é 0 (nenhum dos outros casos foi reconhecido). o valor preditivo positivo (assumindo que a frequência relativa de 97: 3 é representativa) é de 97%, o valor preditivo negativo não pode ser calculado, pois nenhuma previsão negativa ocorreu.

LR+=sensitivity1specificity=1
LR=1sensitivityspecificity=00


Direção de pensamento completamente diferente: você menciona que deseja avaliar diferentes classificadores. Isso soa um pouco como comparação ou seleção de classificadores. A ressalva das medidas discutidas acima é que elas estão sujeitas a uma incerteza aleatória muito alta (o que significa que você precisa de muitos casos de teste) se você os avaliar em rótulos de classe "rígidos". Se sua previsão for primariamente contínua (métrica, por exemplo, probabilidade posterior), você poderá usar medidas relacionadas que analisem o mesmo tipo de pergunta, mas não usem frações de casos, mas medidas contínuas, veja aqui . Eles também serão mais adequados para detectar pequenas diferenças nas previsões.

(@FrankHarrell dirá que você precisa de "regras de pontuação adequadas", portanto esse é outro termo de pesquisa a ser lembrado.)

cbeleites descontentes com o SX
fonte
3

Primeiro de tudo: todos os hits são igualmente importantes e todas as perdas são igualmente importantes? Nesse caso, não há nada de errado em sua pontuação de modelo nulo ser boa: simplesmente é uma excelente solução.

Se você acha importante ter um bom desempenho na previsão de 1, você pode usar a medida F. É basicamente a média harmônica de recordação (que parte dos 1s reais foram previstos como 1) e precisão (qual porção dos 1s previstos era realmente um 1). Para um modelo ter uma pontuação alta nessa medida, ele precisa:

  1. Encontre a maioria dos 1s.
  2. Não costuma prever um 1 quando na verdade é 0.

E precisa fazer as duas coisas simultaneamente. Mesmo que seu modelo faça apenas um dos 2 de maneira quase perfeita, ele terá uma pontuação baixa se não for executado no outro requisito. https://en.wikipedia.org/wiki/F1_score

mvherweg
fonte
Essa é uma regra de pontuação inadequada que usa apenas 1 bit de informação das previsões. Regras de pontuação inadequadas são otimizadas por modelos falsos.
Frank Harrell
2

cYY=1YR2χ2 para conseguir isso) e não é sensível o suficiente para ser usado para comparar dois modelos, é um bom resumo de um único modelo.

Frank Harrell
fonte
1

A Curva de Operação do Receptor (ROC) http://en.wikipedia.org/wiki/Receiver_operating_characteristic e os cálculos associados (ou seja, Área Sob Curva-AUC) são comumente usados. basicamente, você imagina que seu classificador dá uma resposta contínua (por exemplo, entre 0 e 1) e plota a sensibilidade versus taxa de alarme falso (1-especificidade), pois o limiar de decisão varia entre 0 e 1. Eles foram projetados especificamente para eventos raros (detectando inimigos aviões?).

seanv507
fonte
1

Quando você lida com dados fortemente desequilibrados, a curva Precision-Recall é uma ferramenta muito boa, melhor do que seu primo mais comum na curva ROC .

Davis et. al. mostraram que um algoritmo que otimiza a área sob a curva ROC não é garantido para otimizar a área sob a curva PR.

Marc Claesen
fonte