J'ai un petit ensemble de données déséquilibrées (70 positives, 30 négatives), et j'ai joué avec la sélection de modèle pour les paramètres SVM en utilisant BAC (précision équilibrée) et AUC (zone sous la courbe). J'ai utilisé différents poids de classe pour le paramètre C dans libSVM pour compenser les données asymétriques en suivant les conseils ici ( Formation d'un arbre de décision contre les données asymétriques ).
Il semble que l'erreur de validation croisée k-fold soit très sensible au type de mesure de performance. Il comporte également une erreur en soi car les ensembles de formation et de validation sont choisis au hasard. Par exemple, si je répète deux fois BAC avec des graines aléatoires différentes, j'obtiendrai des erreurs différentes, et par la suite différentes valeurs de paramètres optimales. Si je fais la moyenne des scores BAC répétés, une moyenne de 1000 fois me donnera des valeurs de paramètres optimales différentes de la moyenne de 10000 fois. De plus, changer le nombre de plis me donne différentes valeurs optimales de paramètres.
Les mesures de précision pour la validation croisée peuvent être trop optimistes. Habituellement, tout ce qui dépasse une double validation croisée me donne une précision de 100%. De plus, le taux d'erreur est discrétisé en raison de la petite taille de l'échantillon. La sélection du modèle me donne souvent le même taux d'erreur pour toutes ou la plupart des valeurs de paramètres.
Lors de la rédaction d'un rapport, comment saurais-je qu'une classification est «bonne» ou «acceptable»? Sur le terrain, il semble que nous n'ayons pas quelque chose comme une qualité d'ajustement ou un seuil de valeur p qui soit communément accepté. Puisque j'ajoute des données de manière itérative, je voudrais savoir quand arrêter - qu'est-ce qu'un bon N où le modèle ne s'améliore pas de manière significative?
Compte tenu des problèmes décrits ci-dessus, il semble que la précision ne puisse pas être facilement comparée entre les publications alors que l'AUC a été décrite comme un mauvais indicateur de performance (voir ici , ou ici , par exemple).
Des conseils sur la façon de résoudre l'un de ces 3 problèmes?
la source
Réponses:
Je pense que vous avez découvert la grande variance des mesures de performance qui sont des proportions de décomptes tels que . Vous essayez d'estimer, par exemple, la probabilité que votre classificateur renvoie une réponse correcte. D'un point de vue statistique, cela est décrit comme un essai de Bernoulli, conduisant à une distribution binomiale. Vous pouvez calculer les intervalles de confiance pour les distributions binomiales et vous constaterez qu'ils sont très larges. Cela limite bien sûr votre capacité à comparer les modèles.# correct predictions# test cases
Avec les schémas de validation de rééchantillonnage tels que la validation croisée, vous avez une source de variation supplémentaire: l'instabilité de vos modèles (lorsque vous construisez modèles de substitution à chaque exécution de CV)k
Il faut s'y attendre en raison de la variance. Vous pouvez avoir un effet supplémentaire ici: libSVM ne divise les données qu'une seule fois si vous utilisez leur validation croisée intégrée pour le réglage. En raison de la nature des SVM, si vous avez construit le SVM avec des données d'entraînement identiques et modifiez lentement les paramètres, vous constaterez que les vecteurs de support (et par conséquent la précision) sautent: tant que les paramètres du SVM ne sont pas trop différents, il restera choisissez les mêmes vecteurs de support. Ce n'est que lorsque les paraters sont suffisamment modifiés que des vecteurs de support différents apparaissent soudainement. Ainsi, l'évaluation de la grille de paramètres SVM avec exactement les mêmes répartitions de validation croisée peut masquer la variabilité, que vous voyez entre les différentes exécutions.
À mon humble avis, le problème de base est que vous effectuez une recherche dans la grille, qui est une optimisation qui repose sur un comportement raisonnablement fluide de votre fonction cible (précision ou autre que vous utilisez). En raison de la grande variance de vos mesures de performances, cette hypothèse est violée. La dépendance "nerveuse" du modèle SVM viole également cette hypothèse.
Il faut s'y attendre compte tenu des problèmes généraux de l'approche.
Cependant, il est généralement possible de choisir des valeurs de paramètres vraiment extrêmes où le classificateur tombe en panne. À mon humble avis, les plages de paramètres où les SVM fonctionnent bien sont des informations importantes.
Dans tous les cas, vous avez absolument besoin d'une validation externe (double / imbriquée) des performances du modèle que vous choisissez comme «le meilleur».
Je ferais probablement un certain nombre d'exécutions / répétitions / itérations d'une validation croisée externe ou d'une validation externe hors bootstrap et donner la distribution de
La différence entre les deux derniers est un indicateur de sur-ajustement (par exemple en raison de "l'écrémage" de la variance).
(Qu'ajoutez-vous? Cas ou variantes / fonctionnalités?)
Tout d'abord, si vous effectuez une modélisation itérative, vous devez soit signaler qu'en raison de votre procédure d'ajustement, vos performances ne doivent pas être prises au sérieux car elles sont soumises à un biais optimiste. La meilleure alternative est de faire une validation du modèle final. Cependant, les données de test de cela doivent être indépendantes de toutes les données qui ont jamais été utilisées pour la formation ou de votre processus de décision pour la modélisation (il se peut donc que vous n'ayez plus de telles données).
la source
Les règles de notation logarithmique ou quadratique (Brier) sont plus simples que le BIR. Ce sont des scores corrects qui, contrairement à la proportion correctement classée, ne donneront pas lieu à un faux modèle lors de l'optimisation.
la source
Comme vous l'avez souligné, la précision prédictive et l'AUC sont limitées à certains égards. Je donnerais un coup de pouce à la Bayesian Information Reward (BIR), qui devrait donner une évaluation plus sensible de la façon dont votre classificateur fonctionne bien ou mal et comment cela change lorsque vous ajustez vos paramètres (nombre de plis de validation, etc.).
L'intuition du BIR est la suivante: un parieur est récompensé non seulement pour identifier les gagnants et les perdants ultimes (0 et 1), mais plus important encore pour identifier les cotes appropriées. De plus, il va de l'avant et compare toutes les prévisions aux probabilités antérieures.
Disons que vous avez une liste de 10 matchs d'Arsenal (équipe de football en Angleterre) avec des résultats possibles: ou . La formule de classification binaire gratifiante par partie est:Win Lose
où, est la prédiction de votre modèle pour un jeu d'Arsenal particulier, et est la probabilité antérieure d'Arsenal de gagner un jeu. Le point critique est: si je sais au préalable que , et que mon modèle prédictif a produit , même si sa prédiction était correcte, il est récompensé de 0 car il ne transmet aucune nouvelle information. Remarque: vous traitez les classifications correctes et incorrectes différemment, comme indiqué dans les équations. Par conséquent, selon que la prédiction est correcte ou incorrecte, le BIR pour une seule prédiction peut prendre une valeur comprise entre .p p′ p′=0.6 p=0.6 (−inf,1]
Le BIR n'est pas limité aux classifications binaires, mais est également généralisé pour les problèmes de classification multinomiale.
la source