Eu tenho dois classificadores
- A: rede bayesiana ingênua
- B: rede bayesiana em árvore (conectada individualmente)
Em termos de precisão e outras medidas, A tem um desempenho comparativamente pior que B. No entanto, quando eu uso os pacotes R ROCR e AUC para realizar análises ROC, verifica-se que a AUC para A é maior que a AUC para B. Por que isso acontecendo?
O positivo verdadeiro (tp), falso positivo (fp), falso negativo (fn), negativo verdadeiro (tn), sensibilidade (sen), especificidade (especificação), valor preditivo positivo (ppv), valor preditivo negativo (npv) e precisão (acc) para A e B são os seguintes.
+------+---------+---------+
| | A | B |
+------+---------+---------+
| tp | 3601 | 769 |
| fp | 0 | 0 |
| fn | 6569 | 5918 |
| tn | 15655 | 19138 |
| sens | 0.35408 | 0.11500 |
| spec | 1.00000 | 1.00000 |
| ppv | 1.00000 | 1.00000 |
| npv | 0.70442 | 0.76381 |
| acc | 0.74563 | 0.77084 |
+------+---------+---------+
Com exceção dos sens e laços (spec e ppv) nos marginais (excluindo tp, fn, fn e tn), B parece ter um desempenho melhor que A.
Quando eu calculo a AUC para sens (eixo y) vs 1 especificação (eixo x)
aucroc <- auc(roc(data$prediction,data$labels));
aqui está a comparação da AUC.
+----------------+---------+---------+
| | A | B |
+----------------+---------+---------+
| sens vs 1-spec | 0.77540 | 0.64590 |
| sens vs spec | 0.70770 | 0.61000 |
+----------------+---------+---------+
Então, aqui estão as minhas questões:
- Por que a AUC para A é melhor que B, quando B "parece" superar A em relação à precisão?
- Então, como eu realmente julgo / comparo os desempenhos de classificação de A e B? Quero dizer, eu uso o valor da AUC? Uso o valor acc e, se sim, por quê?
- Além disso, quando aplico regras de pontuação adequadas a A e B, B supera A em termos de perda de log, perda quadrática e perda esférica (p <0,001). Como eles avaliam o desempenho da classificação em relação à AUC?
- O gráfico ROC para A parece muito suave (é um arco curvo), mas o gráfico ROC para B se parece com um conjunto de linhas conectadas. Por que é isso?
Conforme solicitado, aqui estão os gráficos para o modelo A.
Aqui estão os gráficos para o modelo B.
Aqui estão os gráficos de histograma da distribuição das probabilidades para A e B. (as quebras são definidas como 20).
Aqui está o gráfico de dispersão das probabilidades de B vs A.
fonte
Respostas:
fonte
Por que a AUC para A é melhor que B, quando B "parece" superar A em relação à precisão?
A precisão é calculada no valor limite de 0,5. Enquanto a AUC é calculada adicionando todas as "precisões" calculadas para todos os valores limite possíveis. O ROC pode ser visto como uma média (valor esperado) dessas precisões quando são calculados para todos os valores limite.
Então, como eu realmente julgo / comparo os desempenhos de classificação de A e B? Quero dizer, eu uso o valor da AUC? eu uso o valor acc? e porque?
Depende. As curvas ROC informam sobre o quão bem o seu modelo separa as duas classes, não importa onde esteja o valor limite. A precisão é uma medida que funciona bem normalmente quando as classes mantêm o mesmo equilíbrio nos conjuntos de trens e testes e quando as pontuações são realmente probabilidades. O ROC fornece mais dicas sobre como o modelo se comportará se essa suposição for violada (no entanto, é apenas uma ideia).
além disso, quando aplico regras de pontuação adequadas a A e B, B supera A em termos de perda de log, perda quadrática e perda esférica (p <0,001). como eles avaliam o desempenho da classificação em relação à AUC?
Eu não sei. Você precisa entender melhor sobre o que são seus dados. O que cada modelo é capaz de entender com seus dados. E decida depois qual é o melhor compromisso. A razão pela qual isso acontece é que não há métrica universal sobre o desempenho de um classificador.
O gráfico ROC para A parece muito suave (é um arco curvo), mas o gráfico ROC para B se parece com um conjunto de linhas conectadas. por que é isso?
Isso provavelmente ocorre porque o modelo bayesiano oferece transições suaves entre essas duas classes. Isso é traduzido em muitos valores limite. O que significa muitos pontos na curva ROC. O segundo modelo provavelmente produz menos valores devido à previsão com o mesmo valor em regiões maiores do espaço de entrada. Basicamente, também a primeira curva ROC é feita por linhas, a única diferença é que existem tantas pequenas linhas adjacentes que você a vê como uma curva.
fonte
Primeiro, embora o ponto de corte (0,5) seja o mesmo, ele não é comparável entre A e B. De fato, parece bem diferente dos seus histogramas! Veja B: todas as suas previsões são <0,5.
Segundo, por que B é tão preciso? Por causa do desequilíbrio de classe. No teste B, você tem 19138 exemplos negativos e 6687 positivos (por que os números são diferentes em A não é claro para mim: valores ausentes talvez?). Isso significa que, simplesmente dizendo que tudo é negativo, já posso obter uma precisão muito boa: precisamente 19138 / (19138 + 6687) = 74%. Observe que isso não exige absolutamente nenhum conhecimento além do fato de que há um desequilíbrio entre as classes: até o modelo mais estúpido pode fazer isso!
E é exatamente isso que o teste B faz no limite 0,5 ... você obtém (quase) apenas previsões negativas.
A é mais um saco misturado com. Embora tenha uma precisão um pouco menor, observe que sua sensibilidade é muito maior neste ponto de corte ...
Finalmente, você não pode comparar a precisão (um desempenho em um limite) com a AUC (um desempenho médio em todos os limites possíveis). Como essas métricas medem coisas diferentes, não é de surpreender que sejam diferentes.
Você tem que pensar: o que você realmente quer fazer? O que é importante? Por fim, somente você pode responder a essa pergunta com base no seu conhecimento. Talvez a AUC faça sentido (raramente faz realmente quando você pensa sobre isso, exceto quando você não quer tomar uma decisão, mas deixa que outras pessoas o façam - isso é mais provável se você estiver fazendo uma ferramenta para que outras pessoas usem), talvez a precisão (se você precisar de uma resposta binária, vai-não-vai), mas talvez em limites diferentes, talvez algumas outras medidas mais contínuas, talvez uma das medidas sugeridas por Frank Harrell ... como já foi dito, não há uma pergunta universal Aqui.
Volte para as previsões que você mostrou nos histogramas. A fornece uma previsão contínua ou quase contínua. Pelo contrário, B retorna principalmente apenas alguns valores diferentes (como você pode ver no histograma "pontudo").
Em uma curva ROC, cada ponto corresponde a um limite. Em A, você tem muitos limites (porque as previsões são contínuas), portanto a curva é suave. Em B, você tem apenas alguns limites, portanto a curva parece "saltar" de um SN / SP para outro.
Você vê saltos verticais quando a sensibilidade muda apenas (o limiar faz diferença apenas para casos positivos), saltos horizontais quando a especificidade muda (o limiar faz diferenças apenas para exemplos negativos) e saltos diagonais quando a alteração do limiar afeta as duas classes.
fonte