Intervalle de confiance pour l'exactitude de la classification validée de façon croisée

11

Je travaille sur un problème de classification qui calcule une métrique de similitude entre deux images radiographiques d'entrée. Si les images sont de la même personne (étiquette de «droite»), une métrique plus élevée sera calculée; les images d'entrée de deux personnes différentes (étiquette de «mauvais») entraîneront une mesure inférieure.

J'ai utilisé une validation croisée stratifiée de 10 fois pour calculer la probabilité de mauvaise classification. Ma taille d'échantillon actuelle est d'environ 40 correspondances correctes et 80 correspondances incorrectes, où chaque point de données est la métrique calculée. Je reçois une probabilité de mauvaise classification de 0,00, mais j'ai besoin d'une sorte d'analyse d'intervalle de confiance / d'erreur à ce sujet.

Je cherchais à utiliser un intervalle de confiance de proportion binomiale (où j'utiliserais les résultats de la validation croisée comme un étiquetage correct ou un étiquetage incorrect pour mon nombre de succès). Cependant, l'une des hypothèses sous-jacentes à l'analyse binomiale est la même probabilité de succès pour chaque essai, et je ne sais pas si la méthode derrière la classification du «bien» ou du «mal» dans la validation croisée peut être considérée comme ayant la même probabilité de succès.

La seule autre analyse à laquelle je peux penser est de répéter les X fois de validation croisée et de calculer l'écart moyen / standard de l'erreur de classification, mais je ne suis pas sûr que ce soit même approprié car je réutiliserais les données de mon taille d'échantillon relativement petite plusieurs fois.

Des pensées? J'utilise MATLAB pour toutes mes analyses et j'ai la boîte à outils Statistiques. J'apprécierais toute aide!

Sean
la source
Une probabilité de classification erronée de 0,00 signifie que vous obtenez une précision de classification de 100% sur chacun des 10 plis de validation croisée?
Amoeba dit Reinstate Monica
Oui, c'est correct. Chacun des plis n'a entraîné aucune erreur de classification; le 0,00 que j'ai rapporté représente le nombre total de mauvaises classifications (0) sur le nombre total de cas de test (120).
Sean
BTW, qu'entendez-vous exactement par validation croisée "stratifiée"? Pour chaque pli CV, vous avez 120/10 = 12 échantillons de test, avec toujours 4 correspondances et 8 non-correspondances?
Amoeba dit Reinstate Monica
Oui, c'est exactement ça - du moins c'est ainsi que je comprends comment cela se fait au sein de MATLAB. Chaque pli doit contenir la même proportion d'étiquettes de classe «bonnes» / «mauvaises», qui est 1: 2.
Sean

Réponses:

7

Influence de l'instabilité dans les prédictions de différents modèles de substitution

Cependant, l'une des hypothèses sous-jacentes à l'analyse binomiale est la même probabilité de succès pour chaque essai, et je ne sais pas si la méthode derrière la classification du «bien» ou du «mal» dans la validation croisée peut être considérée comme ayant la même probabilité de succès.

Eh bien, généralement, cette équivalence est une hypothèse qui est également nécessaire pour vous permettre de regrouper les résultats des différents modèles de substitution.

En pratique, votre intuition que cette hypothèse peut être violée est souvent vraie. Mais vous pouvez mesurer si c'est le cas. C'est là que je trouve la validation croisée itérée utile: la stabilité des prédictions pour le même cas par différents modèles de substitution vous permet de juger si les modèles sont équivalents (prédictions stables) ou non.

Voici un schéma de validation croisée itérative (aka répétée) pli:k
validation croisée k-fold itérée

Les classes sont rouges et bleues. Les cercles à droite symbolisent les prédictions. À chaque itération, chaque échantillon est prédit exactement une fois. Habituellement, la moyenne générale est utilisée comme estimation de la performance, en supposant implicitement que la performance des modèles de substitution est égale. Si vous recherchez pour chaque échantillon les prédictions faites par différents modèles de substitution (c'est-à-dire à travers les colonnes), vous pouvez voir la stabilité des prédictions pour cet échantillon.ik

Vous pouvez également calculer les performances pour chaque itération (bloc de 3 lignes dans le dessin). Tout écart entre ces deux moyens signifie que l'hypothèse que les modèles de substitution sont équivalents (les uns aux autres et en outre au "grand modèle" construit sur tous les cas) n'est pas remplie. Mais cela vous indique également combien d'instabilité vous avez. Pour la proportion binomiale, je pense que tant que la véritable performance est la même (c'est-à-dire indépendante, que toujours les mêmes cas soient mal prédits ou si le même nombre mais différents cas sont mal prédits). Je ne sais pas si l'on pourrait raisonnablement supposer une distribution particulière pour les performances des modèles de substitution. Mais je pense que c'est en tout cas un avantage par rapport à la déclaration courante des erreurs de classification si vous signalez cette instabilité.kk


nkje

Le dessin est une version plus récente de la fig. 5 dans cet article: Beleites, C. & Salzer, R .: Évaluation et amélioration de la stabilité des modèles chimiométriques dans des situations de petite taille d'échantillon, Anal Bioanal Chem, 390, 1261-1271 (2008). DOI: 10.1007 / s00216-007-1818-6
Notez que lorsque nous avons écrit le document, je n'avais pas encore pleinement compris les différentes sources de variance que j'ai expliquées ici - gardez cela à l'esprit. Je pense donc que l' argumentationpour une estimation efficace de la taille de l'échantillon, il n'est pas correct, même si la conclusion de l'application selon laquelle différents types de tissus au sein de chaque patient contribuent à autant d'informations globales qu'un nouveau patient avec un type de tissu donné est probablement toujours valable (j'ai un type de des preuves qui le montrent également). Cependant, je ne suis pas encore complètement sûr de cela (ni comment le faire mieux et donc pouvoir vérifier), et ce problème n'est pas lié à votre question.


Quelles performances utiliser pour l'intervalle de confiance binomial?

Jusqu'à présent, j'ai utilisé les performances moyennes observées. Vous pouvez également utiliser la pire performance observée: plus la performance observée est proche de 0,5, plus la variance est grande et donc l'intervalle de confiance. Ainsi, les intervalles de confiance des performances observées les plus proches de 0,5 vous donnent une "marge de sécurité" conservatrice.

Notez que certaines méthodes de calcul des intervalles de confiance binomiaux fonctionnent également si le nombre de succès observé n'est pas un entier. J'utilise «l'intégration de la probabilité postérieure bayésienne» comme décrit dans
Ross, TD: intervalles de confiance précis pour la proportion binomiale et l'estimation du taux de Poisson, Comput Biol Med, 33, 509-531 (2003). DOI: 10.1016 / S0010-4825 (03) 00019-2

(Je ne sais pas pour Matlab, mais dans R, vous pouvez utiliser les binom::binom.bayesdeux paramètres de forme définis sur 1).


n

Voir aussi: Bengio, Y. et Grandvalet, Y .: No Unbias Estimator of the Variance of K-Fold Cross-Validation, Journal of Machine Learning Research, 2004, 5, 1089-1105 .

(Penser plus à ces choses est sur ma liste de tâches de recherche ..., mais comme je viens de la science expérimentale, j'aime compléter les conclusions théoriques et de simulation avec des données expérimentales - ce qui est difficile ici car j'aurais besoin d'un grand ensemble de cas indépendants pour les tests de référence)


Mise à jour: est-il justifié de supposer une distribution biomiale?

k

n

npn

cbeleites mécontents de SX
la source
Salut @cbeleites, je viens de commenter que mon analyse CV donne 2 valeurs uniques pour cet ensemble de données particulier (certains autres ensembles de données ont N valeurs uniques, avec N généralement moins de 5), tout comme l'amibe décrite ci-dessus. Compte tenu de cela, comment puis-je montrer que mes prévisions sont stables en utilisant uniquement mon ensemble de données et mon CV? Concernant une distribution binomiale, je considérais l'intervalle Agresti-Coull (peut fonctionner pour un taux de réussite élevé / 100% sans pépin). Il semble que vous disiez que je peux utiliser une distribution binomiale, mais je ne sais toujours pas comment je peux justifier cette hypothèse de même probabilité de succès.
Sean
p
1
@amoeba: Je ne sais pas comment combiner la distribution binomiale avec la distribution inconnue en raison de l'instabilité dans un intervalle de confiance. Je rapporte donc les percentiles observés pour la stabilité (in) et le binôme ci pour la taille d'échantillon de test fini. Comment les combiner est l'une des questions de recherche que je garde en tête, mais jusqu'à présent, je n'ai trouvé aucune solution ni rencontré quelqu'un qui en a. Je suppose que nous sommes arrivés à la pointe de la recherche ...
cbeleites mécontents de SX
1
@Sean: Avez-vous vu ma récente question sur des problèmes connexes? Il y a une discussion très intéressante (pour moi) en cours dans les commentaires, et je travaille actuellement sur quelques simulations moi-même. J'en suis venu à croire que l'hypothèse binomiale est vraiment fausse! Vous pourriez également être intéressé par plusieurs références fournies qui revendiquent la même chose.
amibe dit Réintégrer Monica
1
@Sean: J'essaierai de garder ces deux fils à jour, ce qui signifie qu'après (et si) le problème est clarifié, j'essaierai de résumer la situation là-bas et aussi de fournir une nouvelle réponse ici. Pour l'instant, avez-vous remarqué ce papier lié dans l'autre fil? Les auteurs discutent exactement de votre question et fournissent une procédure d'amorçage qui, selon eux, fonctionne bien. Si je devais écrire une réponse à votre question dès maintenant, je recommanderais leur procédure. Mais il serait logique de vérifier d'abord 24 documents qui citent ce document.
amibe dit Réintégrer Monica
3

Je pense que votre idée de répéter la validation croisée plusieurs fois est juste.

Répétez votre CV, disons 1000 fois, chaque fois en divisant vos données en 10 parties (pour un CV 10 fois) d'une manière différente (ne mélangez pas les étiquettes). Vous obtiendrez 1000 estimations de la précision de la classification. Bien sûr, vous réutiliserez les mêmes données, donc ces 1000 estimations ne seront pas indépendantes. Mais cela s'apparente à la procédure de bootstrap: vous pouvez prendre l' écart-type sur ces précisions comme l' erreur standard de la moyenne de votre estimateur de précision globale. Ou un intervalle de 95% comme intervalle de confiance à 95%.

Alternativement, vous pouvez combiner la boucle de validation croisée et la boucle de bootstrap, et sélectionner simplement au hasard (peut-être stratifié au hasard) 10% de vos données comme ensemble de test, et faites-le 1000 fois. Le même raisonnement que ci-dessus s'applique également ici. Cependant, cela entraînera une plus grande variance par rapport aux répétitions, donc je pense que la procédure ci-dessus est meilleure.

Si votre taux de classification erronée est de 0,00, votre classificateur ne fait aucune erreur et si cela se produit à chaque itération d'amorçage, vous n'aurez aucun intervalle de confiance large. Mais cela signifierait simplement que votre classificateur est à peu près parfait, donc bon pour vous.

amibe dit réintégrer Monica
la source
Bonjour @amoeba, merci pour votre réponse. Pourriez-vous expliquer un peu plus votre première suggestion en répétant le CV 1000 fois en permutant au hasard les échantillons? Devrait-il y avoir une proportion préétablie de jeu de tests: jeu de formation (par exemple 10:90 pour la validation croisée 10 fois)? Je suppose que je ne suis pas certain de savoir comment répéter la validation 10 fois augmenterait la variance au fil du temps.
Sean
1
J'ai peur que la deuxième procédure suggérée par @amoeba soit trop optimiste: un classificateur non parfait peut avoir une performance parfaite sur un ensemble de données donné (par exemple, supposons que vous n'avez que 4 échantillons - c'est un 1: 8 pour les classer tous correctement par hasard). Comme l'a noté l'amibe, la mesure de la variance sur différentes allocations de plis d'essai de train produira un intervalle de confiance de largeur 0, ce qui est clairement incorrect dans ce cas.
Trisoloriansunscreen
1
Je pense qu'en fin de compte, ce problème revient à trouver la probabilité d'observer des données différentes de ce que je n'ai pas déjà observé. Obtenir des intervalles de confiance pour mon échantillon est ce que @amoeba a suggéré pour ma question d'origine (j'ai utilisé des plis aléatoires pour chaque itération de CV), et le résultat semble plus réaliste (IC à 95%: [0,0028, 0,0033]). Cependant, je ne sais pas s'il existe une autre technique qui serait meilleure pour la prévision des données futures. Peut-être une sorte d'approche basée sur un modèle où j'ajuste des courbes à mes données et calcule leur chevauchement?
Sean
3
@amoeba: Merci pour la clarification, je suppose que je n'ai pas lu votre réponse suffisamment attentivement. Pourtant, je suis toujours préoccupé par un biais optimiste de cette approche (les deux procédures). En mesurant la précision tout en essayant différentes répartitions CV, vous estimez la variabilité causée par la répartition arbitraire. Pourtant, vous ignorez le fait que toutes vos données sont un échantillon aléatoire d'une plus grande population d'observations (que vous n'avez pas collectées). Si vous disposez d'un petit ensemble de données qui, par hasard, atteint des performances parfaites (indépendamment des répartitions de CV), votre intervalle de confiance est nul et cela est incorrect.
Trisoloriansunscreen
1
@amoeba: C'est délicat, car vous ne pouvez pas amorcer les observations elles-mêmes (considérez un classificateur de voisin le plus proche dans ce cas). Je me bats avec ce problème moi-même, voyons si quelqu'un d'autre a une idée.
Trisoloriansunscreen
2

L'erreur de classification est à la fois discontinue et une règle de notation incorrecte. Il a une faible précision et l'optimisation sélectionne les mauvaises caractéristiques et leur donne les mauvais poids.

Frank Harrell
la source
Cela peut difficilement être un problème pour l'OP s'il obtient une précision de classification validée de 99 à 100%.
amibe dit Réintégrer Monica
1
@amoeba: Cela peut également être un problème si des proportions correctes proches de 100 ou 0% sont observées: contrairement aux mesures de performance qui reposent sur des scores continus, tout type de performance mesuré après dichotomisation (durcissement), le score de classification continue ne peut pas indiquer les prévisions se rapprochent de la frontière de décision tant qu'elles sont toujours du bon côté. Cependant, à mon humble avis, il existe des raisons valables de signaler les mesures de performance de type proportionnel (par exemple, si vos lecteurs / collaborateurs les comprennent, mais ne comprennent pas, par exemple, les scores Brier). Je ne voulais pas ouvrir ça ...
cbeleites mécontents de SX
... ligne de discussion car il n'y avait aucune indication d'optimisation dans la question (c'est là que cela devient vraiment important).
cbeleites mécontents de SX
Si vous calculez une proportion classée «correctement», vous devez le faire pour une raison, par exemple, pour porter un jugement ou prendre une mesure. La proportion est trompeuse à ces fins.
Frank Harrell
1
@FrankHarrell: Eh bien, je suppose que la raison est de le signaler dans un document. Pensez-vous que les gens devraient cesser de signaler les précisions de classification?
amibe dit Réintégrer Monica