[modifié le 21.7.15 à 8 h 31 CEST]
Je suppose que vous avez utilisé RF pour la classification. Parce que dans ce cas, l'algorithme produit des arbres entièrement développés avec des nœuds terminaux purs d'une seule classe cible.
predict(model, data=X_train)
Cette ligne de codage est comme un chien chassant [~ 66% de] sa propre queue. La prédiction de tout échantillon d'apprentissage est la classe de l'échantillon d'apprentissage lui-même. Pour la régression, RF s'arrête si le nœud contient 5 échantillons ou moins ou si le nœud est pur. Ici, l'erreur de prédiction sera faible mais pas 0%.
Dans l'apprentissage automatique, nous travaillons souvent avec de grands espaces d'hypothèses. Cela signifie qu'il y aura toujours de nombreuses hypothèses / explications / modèles non encore falsifiés sur la structure des données de notre ensemble de formation. Dans les statistiques classiques, l'espace d'hypothèse est souvent petit et, par conséquent, l'ajustement direct du modèle est informatif en fonction d'une théorie des probabilités supposée. Dans l'apprentissage automatique, le manque d'ajustement direct est-il lié au biais du modèle. Le biais est "l'inflexibilité" du modèle. Ce ne est pasde toute façon fournir une approximation de la puissance de généralisation (la capacité de prédire de nouveaux événements). Pour les modèles algorithmiques, la validation croisée est le meilleur outil pour approximer la puissance de généralisation, car aucune théorie n'est formulée. Cependant, si les hypothèses du modèle d'échantillonnage indépendant échouent, le modèle peut être de toute façon inutile, même lorsqu'une validation croisée bien effectuée suggère le contraire. En fin de compte, la preuve la plus solide est de prédire de manière satisfaisante un certain nombre de jeux de tests externes de diverses origines.
Retour au CV: La sortie du sac est souvent un type de CV accepté. Je dirais personnellement que OOB-CV fournit des résultats similaires à 5 fois CV, mais c'est une très petite nuisance. Si pour comparer disons RF à SVM, alors OOB-CV n'est pas utile car nous éviterions normalement de mettre SVM en sac. Au lieu de cela, SVM et RF seraient intégrés dans le même schéma de validation croisée, par exemple 10 fois 10 répétitions avec des partitions correspondantes pour chaque répétition. Toutes les étapes d'ingénierie des fonctionnalités devraient souvent également être validées de manière croisée. Si pour garder les choses propres, l'ensemble du pipeline de données pourrait être intégré dans le CV.
Si vous ajustez votre modèle avec votre ensemble de tests (ou validation croisée), vous gonflez à nouveau votre espace d'hypothèse et les performances de prédiction validées sont probablement trop optimistes. Au lieu de cela, vous aurez besoin d'un ensemble d'étalonnage (ou boucle CV d'étalonnage) à régler et d'un ensemble de validation de test (ou boucle CV de validation) pour évaluer votre modèle optimal final.
Dans le sens extrême, votre score de validation ne sera impartial que si vous n'agissez jamais sur ce résultat, lorsque vous le voyez. C'est le paradoxe de la validation, car pourquoi obtiendrions-nous une connaissance qui n'est vraie que si vous n'y agissez pas. Dans la pratique, la communauté accepte volontiers certains biais de publication, où les chercheurs qui ont obtenu au hasard une validation trop optimiste sont plus susceptibles de publier que ceux qui ont malheureusement réussi une validation trop pessimiste. Par conséquent, parfois, pourquoi ne peut pas reproduire d'autres modèles.