Comment générez-vous des courbes ROC pour une validation croisée sans intervention?

10

Lors d'une validation croisée 5 fois (par exemple), il est typique de calculer une courbe ROC distincte pour chacun des 5 plis et souvent une courbe ROC moyenne avec std. dev. montré comme épaisseur de courbe.

Cependant, pour la validation croisée LOO, où il n'y a qu'un seul point de données de test dans chaque pli, il ne semble pas sensé de calculer une "courbe" ROC pour ce point de données unique.

J'ai pris tous mes points de données de test (avec leurs valeurs de p calculées séparément) et les ai regroupés dans un grand ensemble pour calculer une seule courbe ROC, mais est-ce la chose statistiquement casher à faire?

Quelle est la bonne façon d'appliquer l'analyse ROC lorsque le nombre de points de données dans chaque pli est un (comme dans le cas de la validation croisée LOO)?

user1121
la source
Pourquoi? Que voulez-vous accomplir avec une telle créature?
J'ai besoin d'analyser les performances globales de prédiction sur une gamme de seuils de valeur p, et les courbes ROC sont ce que j'ai traditionnellement utilisé pour tous les autres types de validation croisée. Donc, fondamentalement, les mêmes raisons pour lesquelles l'analyse ROC est utile pour toute validation croisée k-fold. S'il existe une approche différente et analogue pour LOO xval, il serait également intéressant de le savoir. De plus, je ferais à la place quelque chose comme 10 fois xval si j'avais suffisamment de données et ce ne serait pas un problème.
user1121
1
Je dirais que vous le faites raisonnablement, créez simplement une seule courbe ROC en utilisant le véritable libellé et la valeur prédite pour chaque cas (où ce cas était le maintien)
B_Miner

Réponses:

15

Si le classificateur génère des probabilités, alors la combinaison de toutes les sorties du point de test pour une seule courbe ROC est appropriée. Sinon, mettez à l'échelle la sortie du classificateur d'une manière qui le rendrait directement comparable entre les classificateurs. Supposons, par exemple, que vous utilisez l'analyse discriminante linéaire. Former le classificateur, puis mettre les données de formation à travers le classificateur. Apprenez deux poids: un paramètre d'échelle (l'écart type des sorties du classificateur, après soustraction des moyennes de classe), et un paramètre de décalage (la moyenne de la première classe). Utilisez ces paramètres pour normaliser la sortie brute de chaque classificateur LDA viaσμrn=(r-μ)/σ, puis vous pouvez créer une courbe ROC à partir de l'ensemble des sorties normalisées. Cela a la mise en garde que vous estimez plus de paramètres, et donc les résultats peuvent différer légèrement que si vous aviez construit une courbe ROC sur la base d'un ensemble de tests séparé.

S'il n'est pas possible de normaliser les sorties du classificateur ou de les transformer en probabilités, une analyse ROC basée sur LOO-CV n'est pas appropriée.

benhamner
la source