En jouant avec le Boston Housing Dataset et RandomForestRegressor
(avec les paramètres par défaut) dans scikit-learn, j'ai remarqué quelque chose d'étrange: le score moyen de validation croisée a diminué lorsque j'ai augmenté le nombre de plis au-delà de 10. Ma stratégie de validation croisée était la suivante:
cv_met = ShuffleSplit(n_splits=k, test_size=1/k)
scores = cross_val_score(est, X, y, cv=cv_met)
... où num_cvs
était varié. Je me suis mis test_size
à 1/num_cvs
refléter le comportement de taille fractionnée train / test du CV k-fold. Fondamentalement, je voulais quelque chose comme CV k-fold, mais j'avais aussi besoin de hasard (d'où ShuffleSplit).
Cet essai a été répété plusieurs fois, et les scores moyens et les écarts-types ont ensuite été tracés.
(Notez que la taille de k
est indiquée par l'aire du cercle; l'écart-type est sur l'axe Y.)
De manière cohérente, une augmentation k
(de 2 à 44) entraînerait une brève augmentation du score, suivie d'une diminution régulière au fur et à mesure de l' k
augmentation (au-delà de ~ 10 fois)! Si quoi que ce soit, je m'attendrais à ce que plus de données d'entraînement entraînent une augmentation mineure du score!
Mise à jour
Changer les critères de notation pour signifier une erreur absolue entraîne un comportement que j'attendrais: la notation s'améliore avec un nombre accru de plis dans K-fold CV, plutôt que d'approcher de 0 (comme avec la valeur par défaut, `` r2 ''). La question demeure de savoir pourquoi la métrique de notation par défaut entraîne des performances médiocres dans les métriques moyennes et STD pour un nombre croissant de plis.