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.
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
De plus, changer le nombre de plis me donne différentes valeurs optimales de paramètres.
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.
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.
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
- hyperparamètres pour le "meilleur" modèle
- performances rapportées du réglage
- performances observées de validation externe
La différence entre les deux derniers est un indicateur de sur-ajustement (par exemple en raison de "l'écrémage" de la variance).
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?
(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).