Pourquoi y a-t-il un coude pointu dans mes courbes ROC?

8

J'ai quelques ensembles de données EEG que je teste contre deux classes. Je peux obtenir un taux d'erreur décent de LDA (les distributions conditionnelles de classe ne sont pas gaussiennes, mais ont des queues similaires et une séparation suffisamment bonne), et donc je veux tracer le ROC du prédicteur LDA par rapport aux ensembles de données d'autres sujets.

Voici un graphique typique du prédicteur testé par rapport à un seul essai: entrez la description de l'image ici

J'ai essayé quelques packages différents (pROC et ROCR), et les résultats sont cohérents. Ma question est, qu'est-ce que le coude pointu? Est-ce juste un artefact de la projection produite par le LDA, c'est-à-dire qu'il se trouve qu'il y a une «falaise» où les performances du classificateur s'effondrent?

étoile brillante
la source

Réponses:

4

Une "courbe" ROC parfaite sera formée avec un virage serré. Les performances que vous avez là-bas sont très proches de la séparation parfaite. De plus, il semble que vous ayez une rareté de points faisant la courbe.

John
la source
Oui, chacun de ces éléments ne représente qu'environ 7500 échantillons de temps en 14 dimensions (espace non projeté). Cela dit, si j'avais un tas d'essais de différents sujets, le bruit ne finirait-il pas par lisser la courbe autour du point d'inflexion?
étoile brillante
Quand vous dites "chacun d'eux", je ne sais pas ce que vous voulez dire. On ne sait pas combien de points composent réellement la courbe. Oui, peut-être que cela se courberait s'il y avait une variabilité entre les sujets, mais s'il n'y en a pas alors ce ne sera pas le cas. Il est possible que vous ayez un problème de codage des données ou que vous ne traitez que quelques échantillons, mais il est impossible de distinguer ce que vous avez publié.
John
Désolé, je voulais dire chaque série temporelle individuelle (essai expérimental). Il y a beaucoup de variabilité entre les sujets, mais le ROC résultant pour chaque test d'un seul prédicteur sur un essai a un coin pointu comme l'image ci-dessus, juste situé à un endroit légèrement différent. J'ai revérifié la taille de mes entrées de prédicteur et de réponse à la commande roc (); les deux sont des étiquettes de classe de longueur 7500.
étoile brillante
6

Bien que cette question ait été posée il y a environ 3 ans, je trouve utile d'y répondre ici après l'avoir rencontrée et avoir été perplexe pendant un certain temps. Lorsque votre sortie de vérité au sol est 0,1 et votre prédiction est 0,1, vous obtenez un coude en forme d'angle. Si votre prédiction ou vérité au sol sont des valeurs de confiance ou des probabilités (disons dans l'intervalle [0,1]), alors vous obtiendrez un coude incurvé.

user3545810
la source
5

Je suis d'accord avec John, dans la mesure où la courbe prononcée est due à une rareté des points. Plus précisément, il semble que vous ayez utilisé les prédictions binaires de votre modèle (ie 1/0) et les étiquettes observées (ie 1/0). Pour cette raison, vous avez 3 points, on suppose une coupure de Inf, on suppose une coupure de 0 et la dernière suppose une coupure de 1 qui vous est donnée par le TPR et le FPR de votre modèle et qui est située à l'angle votre graphique.

Au lieu de cela, vous devez utiliser les probabilités de la classe prédite (valeurs comprises entre 0 et 1) et les étiquettes observées (c.-à-d. 1/0). Cela vous donnera alors un nombre de points sur le graphique qui est égal au nombre de probabilités uniques que vous avez (plus un pour Inf). Donc, si vous avez 100 probabilités uniques, vous aurez alors 101 points sur le graphique pour chacun des différents seuils.

Tyler
la source
Malheureusement, je ne me souviens pas du calcul ou des données spécifiques que j'utilisais, donc je ne peux pas y revenir. Cela semble cependant être un excellent conseil.
étoile brillante