Aire sous l'approximation de la courbe ROC
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
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.