J'ai deux classificateurs
- A: réseau bayésien naïf
- B: réseau bayésien d'arbre (connecté individuellement)
En termes de précision et d'autres mesures, A fonctionne comparativement moins bien que B. Cependant, lorsque j'utilise les packages R ROCR et AUC pour effectuer une analyse ROC, il s'avère que l'AUC pour A est plus élevée que l'AUC pour B. Pourquoi est-ce événement?
Le vrai positif (tp), le faux positif (fp), le faux négatif (fn), le vrai négatif (tn), la sensibilité (sen), la spécificité (spec), la valeur prédictive positive (ppv), la valeur prédictive négative (npv) et précision (acc) pour A et B sont les suivantes.
+------+---------+---------+
| | 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 |
+------+---------+---------+
À l'exception des sens et des liens (spec et ppv) sur les marginaux (à l'exception de tp, fn, fn et tn), B semble mieux performer que A.
Quand je calcule l'ASC pour sens (axe y) vs 1-spec (axe x)
aucroc <- auc(roc(data$prediction,data$labels));
voici la comparaison AUC.
+----------------+---------+---------+
| | A | B |
+----------------+---------+---------+
| sens vs 1-spec | 0.77540 | 0.64590 |
| sens vs spec | 0.70770 | 0.61000 |
+----------------+---------+---------+
Donc, voici mes questions:
- Pourquoi l'AUC pour A est-elle meilleure que B, alors que B "semble" surpasser A en termes de précision?
- Alors, comment puis-je vraiment juger / comparer les performances de classification de A et B? Je veux dire, dois-je utiliser la valeur AUC? Dois-je utiliser la valeur acc, et si oui, pourquoi?
- De plus, lorsque j'applique des règles de notation appropriées à A et B, B surpasse A en termes de perte de log, de perte quadratique et de perte sphérique (p <0,001). Comment ces éléments influencent-ils le jugement de la performance de la classification par rapport à l'AUC?
- Le graphique ROC pour A semble très lisse (c'est un arc courbe), mais le graphique ROC pour B ressemble à un ensemble de lignes connectées. Pourquoi est-ce?
Comme demandé, voici les tracés du modèle A.
Voici les tracés du modèle B.
Voici les diagrammes d'histogramme de la distribution des probabilités pour A et B. (les ruptures sont fixées à 20).
Voici le nuage de points des probabilités de B vs A.
la source
Réponses:
la source
Pourquoi l'AUC pour A est-elle meilleure que B, alors que B "semble" surpasser A en termes de précision?
La précision est calculée à la valeur seuil de 0,5. Tandis que l'ASC est calculée en ajoutant toutes les «précisions» calculées pour toutes les valeurs de seuil possibles. Le ROC peut être considéré comme une moyenne (valeur attendue) de ces précisions lorsqu'il est calculé pour toutes les valeurs de seuil.
Alors, comment puis-je vraiment juger / comparer les performances de classification de A et B? Je veux dire, dois-je utiliser la valeur AUC? utiliser la valeur acc? et pourquoi?
Ça dépend. Les courbes ROC vous renseignent sur la manière dont votre modèle sépare les deux classes, quelle que soit la valeur seuil. La précision est une mesure qui fonctionne bien généralement lorsque les classes gardent le même équilibre sur les trains et les ensembles de tests, et lorsque les scores sont vraiment des probabilités. ROC vous donne plus d'indices sur la façon dont le modèle se comportera si cette hypothèse est violée (mais ce n'est qu'une idée).
de plus, lorsque j'applique des règles de notation appropriées à A et B, B surpasse A en termes de perte de log, de perte quadratique et de perte sphérique (p <0,001). comment ces éléments influencent-ils le jugement de la performance de la classification par rapport à l'AUC?
Je ne sais pas. Vous devez mieux comprendre en quoi consistent vos données. Ce que chaque modèle est capable de comprendre à partir de vos données. Et décidez plus tard quel est le meilleur compromis. La raison pour laquelle cela se produit est qu'il n'y a pas de métrique universelle sur les performances d'un classificateur.
Le graphique ROC pour A semble très lisse (c'est un arc courbe), mais le graphique ROC pour B ressemble à un ensemble de lignes connectées. Pourquoi est-ce?
C'est probablement parce que le modèle bayésien vous offre des transitions en douceur entre ces deux classes. Cela se traduit par de nombreuses valeurs de seuil. Ce qui signifie de nombreux points sur la courbe ROC. Le deuxième modèle produit probablement moins de valeurs en raison de la prédiction avec la même valeur sur des régions plus grandes de l'espace d'entrée. Fondamentalement, la première courbe ROC est également constituée de lignes, la seule différence est qu'il y a tellement de petites lignes adjacentes que vous la voyez comme une courbe.
la source
Tout d'abord, bien que le seuil (0,5) soit le même, il n'est pas du tout comparable entre A et B. En fait, il semble assez différent de vos histogrammes! Regardez B: toutes vos prédictions sont <0,5.
Deuxièmement, pourquoi B est-il si précis? En raison du déséquilibre de classe. Dans le test B, vous avez 19138 exemples négatifs et 6687 positifs (pourquoi les nombres sont différents en A, cela ne me semble pas clair: des valeurs manquantes peut-être?). Cela signifie qu'en disant simplement que tout est négatif, je peux déjà atteindre une assez bonne précision: précisément 19138 / (19138 + 6687) = 74%. Notez que cela ne nécessite absolument aucune connaissance au-delà du fait qu'il existe un déséquilibre entre les classes: même le modèle le plus stupide peut le faire!
Et c'est exactement ce que fait le test B au seuil de 0,5 ... vous n'obtenez (presque) que des prédictions négatives.
A est plus un sac mixte avec. Bien qu'il ait une précision légèrement inférieure, notez que sa sensibilité est beaucoup plus élevée à ce seuil ...
Enfin, vous ne pouvez pas comparer la précision (une performance à un seuil) avec l'ASC (une performance moyenne sur tous les seuils possibles). Comme ces mesures mesurent des choses différentes, il n'est pas surprenant qu'elles soient différentes.
Vous devez penser: qu'est-ce que vous voulez vraiment faire? Ce qui est important? En fin de compte, vous seul pouvez répondre à cette question en fonction de votre connaissance de la question. Peut-être que l'AUC a du sens (il le fait rarement vraiment quand vous y pensez vraiment, sauf lorsque vous ne voulez pas prendre de décision vous-même mais laissez les autres le faire - c'est très probablement si vous créez un outil pour les autres), peut-être la précision (si vous avez besoin d'une réponse binaire, go-no go), mais peut-être à différents seuils, peut-être d'autres mesures plus continues, peut-être l'une des mesures suggérées par Frank Harrell ... comme déjà indiqué, il n'y a pas de question universelle ici.
Revenons aux prédictions que vous avez montrées sur les histogrammes. A vous donne une prédiction continue ou presque continue. Au contraire, B ne renvoie principalement que quelques valeurs différentes (comme vous pouvez le voir par l'histogramme "hérissé").
Dans une courbe ROC, chaque point correspond à un seuil. En A, vous avez beaucoup de seuils (car les prédictions sont continues), donc la courbe est lisse. En B, vous n'avez que quelques seuils, donc la courbe ressemble à des «sauts» d'un SN / SP à un autre.
Vous voyez des sauts verticaux lorsque la sensibilité ne change que (le seuil fait des différences uniquement pour les cas positifs), des sauts horizontaux lorsque la spécificité ne change que (le seuil fait des différences uniquement pour les exemples négatifs) et des sauts diagonaux lorsque le changement de seuil affecte les deux classes.
la source