Pourquoi la fonction d'amorçage scikit-learn rééchantillonne-t-elle l'ensemble de test?

15

Lors de l'utilisation du bootstrap pour l'évaluation de modèles, j'ai toujours pensé que les échantillons hors sac étaient directement utilisés comme ensemble de test. Cependant, cela ne semble pas être le cas pour l' approche obsolète de scikit-learnBootstrap , qui semble construire l'ensemble de test à partir d'un dessin avec remplacement du sous-ensemble de données hors sac. Quel est le raisonnement statistique derrière cela? Y a-t-il des scénarios spécifiques où cette technique est meilleure que l'évaluation sur l'échantillon hors sac ou vice versa?

gibberfish
la source
validation croisée? rééchantillonnage?
EngrStudent
Si vous faites référence à la balise, celle-ci n'a pas été ajoutée par moi. En fait, je démarre comme alternative au CV.
gibberfish
Je pense que vous vous méprenez. En validation croisée, ils vont répéter le processus plusieurs fois sur un sous-ensemble de données et examiner la variation des résultats ou des paramètres du modèle. Dans ce cas, la variation des paramètres elle-même informe la qualité de l'ajustement, et pas nécessairement l'erreur OOB. Je ne connais pas la bibliothèque en particulier, je viens donc de laisser un commentaire avec l'idée.
EngrStudent

Réponses:

3

Les échantillons de bootstrap sont utilisés pour évaluer les performances de l'algorithme par de nombreuses itérations. Ce faisant, les performances des ensembles modifiés de manière aléatoire sont évaluées.

En revanche, lorsque vous effectuez par exemple 10 fois la validation croisée, vous effectuez seulement 10 itérations sur différents trains et ensembles de données de test.

n=20je=dix,000

Le lien que vous publiez est en panne, j'ai donc ajouté la description de la fonction dans la version actuelle (0.14) de sklearn

Description de la méthode

Échantillonnage aléatoire avec itérateur de validation croisée de remplacement Fournit des indices de train / test pour diviser les données en ensembles de test de train tout en rééchantillonnant les n_iter fois d'entrée: chaque fois qu'un nouveau fractionnement aléatoire des données est effectué, puis des échantillons sont prélevés (avec remplacement) de chaque côté de la scission pour construire les ensembles de formation et de test. Remarque: contrairement à d'autres stratégies de validation croisée, l'amorçage permettra à certains échantillons de se produire plusieurs fois dans chaque fractionnement. Cependant, un échantillon qui se produit dans la division de train ne se produira jamais dans la division de test et vice-versa. Si vous souhaitez que chaque échantillon se produise au plus une fois, vous devriez probablement utiliser la validation croisée ShuffleSplit à la place.

MaxBenChrist
la source
2

Vous étiez peut-être sur quelque chose. Il semble que d'autres aient tiré sur ce même fil et ont Bootstrapété dépréciés en faveur d'une utilisation plus intentionnelle de la resampleméthode avec les sklearn.cross_validationapproches éprouvées comme StratifiedKFold.

plaques de cuisson
la source