Acabei de ler esta discussão. Eles argumentam que a AUC do PR é melhor que a AUC do ROC no conjunto de dados desequilibrados.
Por exemplo, temos 10 amostras no conjunto de dados de teste. 9 amostras são positivas e 1 é negativa. Temos um modelo terrível que prevê tudo de positivo. Assim, teremos uma métrica que TP = 9, FP = 1, TN = 0, FN = 0.
Então, Precisão = 0,9, Recuperação = 1,0. A precisão e o recall são muito altos, mas temos um classificador ruim.
Por outro lado, TPR = TP / (TP + FN) = 1,0, FPR = FP / (FP + TN) = 1,0. Como o FPR é muito alto, podemos identificar que esse não é um bom classificador.
Claramente, o ROC é melhor que o PR em conjuntos de dados desequilibrados. Alguém pode explicar por que PR é melhor?
machine-learning
model-selection
roc
unbalanced-classes
precision-recall
machineLearner
fonte
fonte
Respostas:
Primeiro, a alegação no post Kaggle é falsa. O artigo que eles referenciam, " A Relação entre Precision-Recall e ROC Curves ", nunca afirma que a PR AUC é melhor que a ROC AUC. Eles simplesmente comparam suas propriedades, sem julgar seu valor.
Às vezes, as curvas ROC podem ser enganosas em algumas aplicações muito desequilibradas. Uma curva ROC ainda pode parecer muito boa (ou seja, melhor que aleatória) enquanto classifica incorretamente a maioria ou a totalidade da classe minoritária.
Por outro lado, as curvas de relações públicas são especificamente adaptadas para a detecção de eventos raros e são bastante úteis nesses cenários. Eles mostrarão que seu classificador tem um desempenho baixo se estiver classificando incorretamente a maioria ou a totalidade da classe minoritária. Mas eles não se traduzem bem em casos mais equilibrados, ou casos em que negativos são raros.
Além disso, por serem sensíveis à probabilidade de linha de base de eventos positivos, eles não generalizam bem e se aplicam apenas ao conjunto de dados específico em que foram construídos ou aos conjuntos de dados com o mesmo equilíbrio exato. Isso significa que geralmente é difícil comparar curvas de RP de diferentes estudos, limitando sua utilidade.
Como sempre, é importante entender as ferramentas disponíveis e selecionar a correta para a aplicação correta. Sugiro ler a pergunta ROC vs curvas de precisão e recall aqui no CV.
fonte
Seu exemplo está definitivamente correto.
No entanto, acho que, no contexto da aplicação Kaggle de competição / vida real, um conjunto de dados inclinado geralmente significa um conjunto de dados com amostras muito menos positivas do que amostras negativas. Somente neste caso, a AUC do PR é mais "significativa" que a AUC do ROC.
Considere um detector com TP = 9, FN = 1, TN = 900, FP = 90, onde existem 10 amostras positivas e 990 negativas. TPR = 0,9, FPR = 0,1, que indica uma boa pontuação ROC, no entanto Precisão = 0,1, que indica uma pontuação PR ruim.
fonte
Você está no meio do caminho.
Normalmente, quando faço modelos desequilibrados, até modelos equilibrados, olho para PR para TODAS as minhas aulas.
No seu exemplo, sim, sua classe positiva tem P = 0,9 e R = 1,0. Mas o que você deve olhar são TODAS as suas aulas. Portanto, para sua classe negativa, seu P = 0 e seu R = 0. E você geralmente não olha apenas as pontuações de RP individualmente. Você deseja examinar a pontuação F1 (macro F1 ou F1 micro, dependendo do seu problema), que é uma média harmônica de suas pontuações PR para a classe 1 e a classe 0. Sua pontuação PR da classe 1 é super boa, mas combine isso com sua pontuação PR de classe 0, sua pontuação F1 será TERRÍVEL, que é a conclusão correta para o seu cenário.
TL, DR: observe as pontuações de relações públicas para TODAS as suas classes e combine-as com uma métrica como a pontuação F1 para obter uma conclusão realista sobre o desempenho do seu modelo. A pontuação F1 para o seu cenário será TERRÍVEL, que é a conclusão correta para o seu cenário.
fonte