Pourquoi l'AUC est-elle plus élevée pour un classificateur moins précis que pour un classificateur plus précis?

29

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.

modèle Un filet de bayes naïf

Voici les tracés du modèle B.

modèle B filet régulier bayes

Voici les diagrammes d'histogramme de la distribution des probabilités pour A et B. (les ruptures sont fixées à 20).

tracé d'histogramme

Voici le nuage de points des probabilités de B vs A.

nuage de points

Jane Wayne
la source
1
Vos tableaux n'ont pas de sens: comment avez-vous choisi le point auquel vous calculez ces valeurs de performances?
Calimo
3
N'oubliez pas que l'AUC mesure la performance au- dessus de tous les seuils possibles . Cela vous aiderait (vous aussi) si vous pouviez montrer les courbes (idéalement sur le même tracé).
Calimo
@Calimo désolé, j'ai oublié d'inclure ces informations, mais le seuil utilisé pour créer cette matrice de confusion était de 50%.
Jane Wayne
Tu veux dire 0,5? Les valeurs prédites de A et B semblent clairement différentes, et si vous ne l'avez pas encore compris, vous devriez certainement tracer les histogrammes côte à côte ...
Calimo
@Calimo pourriez-vous s'il vous plaît clarifier les histogrammes de quoi côte à côte?
Jane Wayne

Réponses:

27

cXy

Frank Harrell
la source
6
cc
1
@alto, 0,5 est extrêmement arbitraire, coïncidant avec une fonction utilitaire / perte / coût la plus inhabituelle dans laquelle deux types d'erreurs sont également mauvais. C'est rarement le cas. En pensant de manière probabiliste, ce qui est la façon dont je crois croire au fonctionnement de la nature, il n'y a rien de tel qu'une "erreur", mais plutôt un degré de méchanceté d'une prédiction des risques. Par exemple, prédire une probabilité de 0,6 puis observer un événement est pire que prédire une probabilité de 0,9 puis observer un événement. Mais aucune prédiction n'est "fausse". Vous pouvez utiliser des scores de précision de probabilité qui ne nécessitent aucun seuil.
Frank Harrell
3
Un modèle illimité tel que la logistique n'entraîne pas plus de sur-ajustement que toute autre approche. La transformation logistique garantit que les estimations de probabilité se comportent bien. Le seul inconvénient d'une règle de notation logarithmique est que vous prédisez une probabilité extrêmement proche de 0 ou 1 et que vous vous trompez. Il est vrai que l'on prend finalement une décision mais il ne s'ensuit pas du tout que l'analyste doive prendre la décision en utilisant un seuil. La décision doit être renvoyée au décideur. Le livre de Nate Silver, Signal and Noise, décrit les grands avantages de la pensée probabiliste.
Frank Harrell
1
@FrankHarrell, il est frustrant que vous continuiez à mal interpréter mon opinion. Je n'ai jamais préconisé une approche de boîte noire. Je pense simplement que votre déclaration "x est inutile, utilisez uniquement y" est trop forte.
alto
4
@alto qui est perspicace. Je pense que la reconnaissance des formes en temps réel n'a pas le temps pour les utilitaires. Ce n'est pas le monde dans lequel je travaille. Mais il y a quand même des cas en temps réel où vous préférez qu'une boîte noire vous dise "incertain" plutôt que de forcer le choix entre "c'est un tank qui vient à vous" ou "c'est un voiture de voyageurs".
Frank Harrell
16
  1. 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.

  2. 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).

  3. 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.

  4. 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.

rapaio
la source
1
La précision peut être calculée à des valeurs de seuil autres que 0,5.
Calimo
Bien sûr, vous avez raison. C'est pourquoi j'ai utilisé des «précisions» dans la proposition suivante. Cependant, lorsque l'on parle de précision, sans autre information de contexte, la meilleure estimation pour la valeur de seuil est 0,5.
rapaio
2
Il est facile de voir à quel point un tel processus est arbitraire. Peu d'estimateurs dans les statistiques qui nécessitent un binning ou des choix arbitraires ont survécu sans critique sévère. Et je n'appellerais jamais une proportion classée correcte comme "précision".
Frank Harrell
@unreasonablelearner vous avez raison sur votre hypothèse .. la matrice de confusion ci-dessus a été calculée au seuil 0,5. y a-t-il un avantage à un seuil différent?
Jane Wayne
1
@JaneWayne La formule est en effet pour la proportion de classées correctes. La précision est le terme le plus souvent utilisé pour cela. Cependant, la précision signifie beaucoup plus, et à la lumière de ce que Frank Harrell a dit, je pense maintenant que la précision n'est de loin pas le meilleur terme pour cela. Maintenant, je pense que son utilisation pourrait nuire, même si elle est populaire. Voilà comment je me trompais.
rapaio
4

Pourquoi l'AUC pour A est-elle meilleure que B, alors que B "semble" surpasser A en termes de précision?

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.

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?

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?

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.

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?

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.

Calimo
la source
+1, cependant, ce n'est pas le cas que l'AUC est seulement pour "quand vous ne voulez pas prendre une décision vous-même mais laissez les autres le faire". Voir: Comment calculer l'aire sous la courbe (AUC), ou la statistique c, à la main .
gung - Rétablir Monica