[PYTHON] Quelle est la courbe ROC? Pourquoi ne devrait-il pas être utilisé pour des données déséquilibrées? Explication facile à comprendre

table des matières#

  1. Qu'est-ce que la courbe ROC?
  2. Comprendre les termes
  3. (Encore une fois) Quelle est la courbe ROC?
  4. Qu'est-ce que ROC-AUC?
  5. ROC-AUC et données de déséquilibre

Connaissances préalables

  1. Comprendre ce qu'est une matrice mixte
  2. Ce que vous savez sur la régression logistique.

1. Qu'est-ce que la courbe ROC?

Selon Wikipedia «La caractéristique de fonctionnement du récepteur (ROC) est un concept de traitement du signal, qui est une caractéristique standard pour déterminer l'existence de quelque chose à partir d'un signal observé.

La partie supérieure de la figure montre la distribution des résultats d'un test spécifique pour une certaine maladie par des personnes négatives et positives. Dans cet exemple, la personne négative affiche une valeur avec un résultat global plus petit. Le critère (critère, point de coupure) y est introduit, et s'il est supérieur à cette valeur, il est positif, sinon il est négatif. Maintenant, si B est adopté comme point de coupure ..... "

(゜ ∀ ゜) Fa?

Wikipedia explique plus en détail, alors lisons-le plus tard, mais commençons par comprendre simplement la courbe ROC.

La courbe ROC est "une courbe créée en montrant TPR et FPR pour chaque point de coupure du classificateur" </ b>.

Pour comprendre cela, il faut d'abord connaître la signification des termes (TPR, FPR, seuils).

Glossaire

TP (vrai positif)

Pour comprendre TPR, vous devez d'abord comprendre TP. C'est le nombre d'échantillons qui étaient positifs sur le classificateur et qui étaient vrais </ b>.

FN (faux négatif)

Il s'agit du nombre d'échantillons pour lesquels le classifieur était négatif (négatif) et il était faux (faux) </ b>.

FP (faux positif)

Il s'agit du nombre d'échantillons positifs sur le classificateur et faux (False) </ b>.

TN (vrai négatif)

Il s'agit du nombre d'échantillons qui étaient négatifs pour le classificateur et qui étaient vrais </ b>.

TPR (taux vraiment positif)

Il s’agit du pourcentage de vrais positifs par rapport au nombre total de positifs </ b>.

Vrai positif (TP) - Nombre d'échantillons qui ont été jugés positifs par le classificateur et qui étaient vrais

TPR = \frac{TP}{TP+FN} = \frac{TP}{Nombre total de positifs}

FPR (taux de faux positifs)

Il s'agit du pourcentage de faux positifs sur le total des négatifs </ b>.

Faux positifs (FP) - Nombre d'échantillons jugés négatifs par le classifieur et faux

FPR = \frac{FP}{FP+TN} = \frac{FP}{Nombre total de négatifs}

Voici une matrice mixte de TP, FP, TN, FN.

Untitled(3).png

Point de coupure

Le point de coupure ici est la limite entre le fait que le classifieur juge positif ou négatif </ b>. Par exemple, s'il y a un patient avec 58% de chances d'avoir un cancer et que le seuil du classificateur est de 50%, le patient est jugé positif parce qu'il est de 50% ou plus. S'il est de 50% ou moins, il sera jugé négatif.

Alors, comment le classificateur peut-il réellement le montrer? Ce qui suit montre un seuil de 75% en utilisant la régression logistique comme exemple. (À propos, la signification est la même que vous appeliez le seuil de 25% de gauche ou de 75% de droite, mais ici nous comptons à partir de la droite.)

Untitled(1) (3).png

Vous pouvez voir que le classificateur juge que toutes les probabilités (axe Y) supérieures à 0,25 sont positives.

(Encore une fois) Qu'est-ce que la courbe ROC?

La courbe ROC est "une courbe créée en montrant TPR et FPR pour chaque point de coupure du classificateur" </ b>.

TPR est représenté sur l'axe X et FPR sur l'axe Y. En outre, le point de coupure est de 0% à 100%. </ b>

Untitled (6).png

En utilisant le classificateur de régression logistique comme exemple, j'ai illustré pourquoi le TPR et le FPR augmentent à mesure que le seuil se déplace vers le côté négatif.

Untitled(1) (2).png

Lorsque le seuil est de 0% (lorsque toutes les données sont jugées négatives), le classificateur ne juge pas comme positif en premier lieu, on peut donc voir que TPR et FPR sont tous deux à zéro </ b>.

cutoff-0 (1).png

Lorsque la courbe ROC est droite en diagonale, vous pouvez voir que le classificateur prend une décision aléatoire (P (X) = 0,5). Ceci est dû au fait que le TPR et le FPR augmentent au même rythme à chaque fois que la coupure se déplace. </ b>

Untitled(2).png

Qu'est-ce que ROC-AUC

ROC-AUC est l'aire sous la courbe.

Untitled(5).png

Quand ROC-AUC ne doit pas être utilisé

Lorsque les données sont déséquilibrées

ROC-AUC donne un score élevé quelle que soit la qualité du modèle au moment des données déséquilibrées. Parce que le FPR a tendance à être faible. </ b> À titre d'exemple extrême, supposons que vous ayez 10000 lignes de données (10 lignes sont des données positives et 9990 lignes sont des données négatives). Ensuite, le nombre total de négatifs, qui est le dénominateur de FPR, est de 9990, et FPR est proche de 0 </ b>. Au contraire, TPR ne change pas grand-chose. Par conséquent, même lorsque le FPR est faible, le TPR est élevé et le score ROC-AUC est élevé.

TPR = \frac{TP}{TP+FN} = \frac{TP}{Nombre total de positifs}
FPR = \frac{FP}{FP+TN} = \frac{FP}{Nombre total de négatifs}

En outre, ROC-AUC ne doit pas être utilisé pour les données déséquilibrées comme un index pour voir la différence entre les deux scores du modèle. </ b>

Dans l'exemple précédent, supposons que le modèle 1 détermine que 1 000 des 10 000 lignes sont positives. Dans ce cas, le nombre total de positifs est de 10 lignes, donc le FP est de 990 lignes. Disons que le modèle 2 détermine 100 lignes comme positives. Ensuite, le nombre total de positifs est les mêmes 10 lignes, donc le FP est de 90 lignes.

Il s'avère que le modèle 2 est clairement le meilleur modèle du modèle 1 et du modèle 2. Cependant, en considérant FPR comme un indice, le modèle 1 est 90/9990 = 0,0001 et le modèle 2 est 990/9990 = 0,001 (TPR est la même valeur pour les deux modèles). On peut voir qu'il n'y a pratiquement pas de différence dans les scores ROC-AUC et la différence de performance entre le modèle 1 et le modèle 2 ne peut pas être beaucoup exprimée </ b>.

Référence

Precision-Recall AUC vs ROC AUC for class imbalance problems https://www.kaggle.com/general/7517

The Relationship Between Precision-Recall and ROC Curves http://pages.cs.wisc.edu/~jdavis/davisgoadrichcamera2.pdf