Aire sous l'approximation de la courbe ROC

Sep 09 2020

Je voulais calculer l'aire sous la courbe ROC pour un modèle de régression logistique dans le cadre d'une classification binaire. Pour cela, j'ai calculé, pour une liste de seuils, disons 0,1 0,2 ... 0,9, le TPR et le FPR. J'ai ainsi

 (TPR_threshold1, ... TPR_thresholdN)
 (FPR_threshold1, ... FPR_thresholdN)

Puis-je juste faire

TPR_threshold1*FPR_threshold1 + ... + TPR_thresholdN*FPR_thresholdN 

afin de calculer l'aire sous la courbe roc ou ai-je besoin d'une modélisation mathématique plus élaborée?

Merci beaucoup!

Réponses

1 SeanOwen Sep 08 2020 at 23:58

Les seuils n'ont pas d'importance; ce qui compte, ce sont les valeurs (FPR, TRP) à ces seuils, car ce sont des points sur la courbe. Triez-les par FPR croissant. Pour que cela fonctionne, vous voudrez inclure les points (0,0) et (1,1) dans votre liste, correspondant aux seuils 1 et 0.

Vous pouvez utiliser une approximation trapézoïdale, car chaque paire successive de points définit un trapèze d'aire sous la courbe. Vous allez simplement additionner les zones.

Prenons deux points successifs (FPR1, TPR1) et (FPR2, TPR2). L'aire est (FPR2 - FPR1) * (TPR1 + TPR2) / 2. Additionnez simplement cela sur toutes les paires de points successives.

Bien sûr, la plupart des bibliothèques peuvent calculer cela pour vous à partir de cette entrée, comme scikit-learn.