Que função de perda deve-se usar para obter um classificador binário de alta precisão ou alto recall?

11

Estou tentando fazer um detector de objetos que ocorrem muito raramente (em imagens), planejando usar um classificador binário da CNN aplicado em uma janela deslizante / redimensionada. Eu construí conjuntos de teste e treinamento positivo-negativos equilibrados 1: 1 (é a coisa certa a se fazer nesse caso, btw?), E o classificador está indo bem em um conjunto de testes em termos de precisão. Agora eu quero controlar a recuperação / precisão do meu classificador para, por exemplo, não rotular erroneamente demais ocorrências da classe majoritária.

A solução óbvia (para mim) é usar a mesma perda logística que é usada agora, mas ponderar erros do tipo I e tipo II de maneira diferente multiplicando a perda em um dos dois casos em alguma constante, que pode ser ajustada. Está certo?

PS Em um segundo momento, isso equivale a ponderar algumas amostras de treinamento mais do que as outras. Apenas adicionar mais de uma classe alcançará o mesmo, eu acho.

Dzugaru
fonte
você já resolveu isso? Eu tenho um objetivo semelhante. Gostaria de otimizar a precisão (tipo 1) e me preocupar menos com erros do tipo 2, por isso considero o que pode ser feito com relação à função de perda.
Jonathan Shore

Respostas:

6

Construir artificialmente um conjunto de treinamento equilibrado é discutível, na verdade bastante controverso. Se você fizer isso, verifique empiricamente que realmente funciona melhor do que deixar o conjunto de treinamento desequilibrado. Equilibrar artificialmente o conjunto de testes quase nunca é uma boa idéia. O conjunto de teste deve representar novos pontos de dados à medida que entram sem rótulos. Você espera que eles estejam desequilibrados, portanto, você precisa saber se o seu modelo pode lidar com um conjunto de testes desequilibrado. (Se você não espera que novos registros sejam desequilibrados, por que todos os seus registros existentes são desequilibrados?)

Em relação à sua métrica de desempenho, você sempre receberá o que pede. Se a precisão não é o que você mais precisa em um conjunto desequilibrado, porque não apenas as classes, mas também os custos de classificação incorreta são desequilibrados, não a use. Se você usou a precisão como métrica e fez toda a sua seleção de modelo e ajuste do hiperparâmetro, sempre usando o que tiver a melhor precisão, estará otimizando a precisão.

Eu tomo a classe minoritária como a classe positiva, esta é a maneira convencional de nomeá-los. Portanto, precisão e recuperação, conforme discutido abaixo, são precisão e recuperação da classe minoritária.

  • Se a única coisa importante é identificar todos os registros de classe minoritária, você pode se lembrar. Você está, assim, aceitando mais falsos positivos.
  • Otimizar apenas a precisão seria uma ideia muito estranha. Você diria ao seu classificador que não é um problema para sub-detectar a classe minoritária. A maneira mais fácil de ter uma alta precisão é ser cauteloso ao declarar a classe minoritária.
  • Se você precisar de precisão e recall, poderá tomar a medida F. É a média harmônica entre precisão e recall e, portanto, penaliza os resultados onde ambas as métricas divergem.
  • Se você conhece os custos concretos de classificação incorreta em ambas as direções (e os lucros da classificação correta, se forem diferentes por classe), pode colocar tudo isso em uma função de perda e otimizá-la.
David Ernst
fonte
3

Você está fazendo várias suposições. É melhor pensar no objetivo final em termos gerais e formular uma estratégia que atenda a esse objetivo. Por exemplo, você realmente precisa de classificação de escolha forçada e a relação sinal: ruído é grande o suficiente para suportar isso (bons exemplos: reconhecimento de som e imagem)? Ou a relação sinal: ruído é baixa ou você está interessado em tendências ? Para este último, a estimativa de risco é para você. A escolha é a chave e determina a métrica de precisão preditiva escolhida. Para mais informações sobre tudo isso, consulte http://www.fharrell.com/2017/01/classification-vs-prediction.html e http://www.fharrell.com/2017/03/damage-caused-by-classification .html .

A maioria dos problemas diz respeito à tomada de decisões , e as decisões ótimas são provenientes da estimativa de riscos, associada a uma função de perda / custo / utilidade.

Um dos melhores aspectos de uma abordagem de estimativa de risco (probabilidade) é que ele lida com zonas cinzentas, onde seria um erro fazer uma classificação ou decisão sem adquirir mais dados. E existe o fato de que a estimativa de probabilidade não exige (nem mesmo permite) que alguém "balance" os resultados manipulando artificialmente a amostra.

Frank Harrell
fonte
1

j=1Jregistro{1+exp[-f(xj)]}+k=1Kregistro{1+exp[f(xk)]}
jkf()x
j=1Jregistro{1+exp[-f(xj)]}+k=1KWregistro{1+exp[f(xk)]}
W>1WW=2
Travis Gerke
fonte
Mas isso não seria mais um estimador de máxima verossimilhança - um não-não estatística
Frank Harrell
1
Concordo, mas não estou convencido de que isso importe se a inferência estatística nos parâmetros da regressão logística não for o objetivo desejado (a menção do OP de usar a CNN também não é baseada em ML). De fato, a maioria / todos os resultados inferenciais dessa abordagem ponderada seriam melhor ignorados, mas o modelo e as pontuações de risco resultantes ainda poderiam ser aplicados a um conjunto de validação com resultados desejáveis, por exemplo, boa discriminação / calibração.
Travis Gerke
1
Não, você irá atrapalhar a calibração do modelo e obterá estimativas de parâmetros mais ruidosas com a abordagem acima. O MLE existe por algumas boas razões.
precisa saber é o seguinte
Considere o caso trivial de estar muito preocupado com a classificação incorreta de uma maneira, mas não da outra - ou seja, perda zero para uma das direções. O melhor modelo para essa perda preveria apenas a classe de preocupação. Embora fosse um modelo horrível, o objetivo é alcançado. É importante entender o objetivo e não colocar fé cega em um conceito teórico (MLE) sem entender seu objetivo. Como observado por TravisGerke, se a ênfase está na previsão e não na modelagem, sua abordagem é bastante útil. Certamente é melhor do que reduzir a amostra da classe majoritária.
Statseeker