Comment déterminer le seuil optimal pour un classificateur et générer une courbe ROC?

27

Disons que nous avons un classificateur SVM, comment générer une courbe ROC? (Comme théoriquement) (car on génère TPR et FPR avec chacun des seuils). Et comment déterminer le seuil optimal pour ce classificateur SVM?

RockTheStar
la source
2
Cela aidera probablement stackoverflow.com/questions/28719067/…
prashanth

Réponses:

14

Utilisez le classificateur SVM pour classer un ensemble d'exemples annotés, et "un point" sur l'espace ROC basé sur une prédiction des exemples peut être identifié. Supposons que le nombre d'exemples soit de 200, comptez d'abord le nombre d'exemples des quatre cas.

labeledtruelabeledfalsepredictedtrue7128predictedfalse5744


Ensuite, calculez TPR (True Positive Rate) et FPR (False Positive Rate). , et F P R = 28 / ( 28 + 44 ) = 0,3888 Sur l'espace ROC, l'axe x est FPR et l'axe y est TPR. Le point ( 0.3889 , 0.5547 ) est donc obtenu. Pour dessiner une courbe ROC, juste (1) Ajustez une valeur de seuil qui contrôle le nombre d'exemples étiquetés vrai ou fauxTPR=71/(71+57)=0.5547FPR=28/(28+44)=0.3889(0.3889,0.5547)



Par exemple, si la concentration de certaines protéines au-dessus de α% signifie une maladie, différentes valeurs de α donnent différentes valeurs finales de TPR et de FPR. Les valeurs de seuil peuvent être simplement déterminées d'une manière similaire à la recherche dans la grille; étiqueter des exemples d'apprentissage avec différentes valeurs de seuil, former des classificateurs avec différents ensembles d'exemples étiquetés, exécuter le classificateur sur les données de test, calculer les valeurs FPR et sélectionner les valeurs de seuil qui couvrent le FPR faible (proche de 0) et élevé (proche de 1) valeurs, c'est-à-dire proches de 0, 0,05, 0,1, ..., 0,95, 1

(2) Générer de nombreux ensembles d'exemples annotés
(3) Lancer le classificateur sur les ensembles d'exemples
(4) Calculer un point (FPR, TPR) pour chacun d'eux
(5) Tracer la courbe ROC finale

Certains détails peuvent être vérifiés sur http://en.wikipedia.org/wiki/Receiver_operating_characteristic .

De plus, ces deux liens sont utiles pour déterminer un seuil optimal. Une méthode simple consiste à prendre celui avec la somme maximale des taux vrais positifs et faux négatifs. D'autres critères plus précis peuvent inclure d'autres variables impliquant différents seuils comme les coûts financiers, etc.
http://www.medicalbiostatistics.com/roccurve.pdf
http://www.kovcomp.co.uk/support/XL-Tut/life-ROC -courbes-récepteur-caractéristique-de-fonctionnement.html

À M
la source
5
Merci pour votre explication, qu'en est-il du seuil optimal?
RockTheStar
1
Désolé, j'ai appris que le seuil optimal est un terme spécial juste avant. Après la recherche, j'ai trouvé que le chapitre "3.5 Sélection d'un seuil optimal" du livre "Analyse des courbes de caractéristiques de fonctionnement du récepteur avec SAS" sur Google Book contient des explications détaillées sur la sélection du seuil optimal. Les deux méthodes largement utilisées décrites ici sont de choisir le seuil qui rendra la prédiction binaire résultante (1) aussi proche que possible d'un prédicteur parfait. (2) aussi loin que possible d'un prédicteur non informatif
Tom
Cool, où puis-je trouver la référence? Merci!
RockTheStar
2
Oui, que signifie «loin d'un prédicteur non informatif»? Veuillez ajouter la référence.
Simone
1
D'ailleurs, je viens aussi de lire qu'il existe de nombreux critères pour déterminer un seuil optimal. Par exemple, un critère simple est que parmi tous les seuils, choisissez celui avec la somme maximale des valeurs vrai-positif et faux-négatif. Il existe également d'autres critères plus sophistiqués.
Tom
3

Un moyen très simple de choisir un seuil est de prendre les valeurs médianes prédites des cas positifs pour un ensemble de tests. Cela devient votre seuil.

Le seuil est relativement proche du même seuil que vous obtiendriez en utilisant la courbe roc où le vrai taux positif (tpr) et 1 - le taux de faux positifs (fpr) se chevauchent. Ce croisement tpr (croix) 1-fpr maximise le vrai positif tout en minimisant les faux négatifs.

Ish Mitch
la source
Je vois. Valeur médiane prévue. Merci pour la suggestion.
RockTheStar
2
Existe-t-il une source pour cette méthode?
JEquihua
1
Cela revient à choisir le point avec TPR = 0,5 dans la courbe ROC, ce qui semble vraiment arbitraire.
Bananin
Valeur médiane prévue? Et que se passe-t-il si vous avez un déséquilibre de classe de 1000: 1?
ldmtwo
3

Choisissez le point le plus proche du coin supérieur gauche de votre espace ROC. Maintenant, le seuil utilisé pour générer ce point doit être optimal.

dr_rk
la source
2
Comment faire cela automatiquement?
ldmtwo
1

Le choix d'un seuil dépend de l'importance du problème de classification TPR et FPR. Par exemple, si votre classificateur décide quels criminels suspects seront condamnés à mort, les faux positifs sont très mauvais (des innocents seront tués!). Ainsi, vous choisiriez un seuil qui donne un FPR faible tout en gardant un TPR raisonnable (donc vous attrapez en fait de vrais criminels). S'il n'y a pas de préoccupation externe concernant un TPR faible ou un FPR élevé, une option consiste à les pondérer également en choisissant le seuil qui maximiseTPR-FPR.

Bananin
la source