Почему функция начальной загрузки scikit-learn пересчитывает набор тестов?

15

При использовании начальной загрузки для оценки модели я всегда думал, что образцы из пакета были непосредственно использованы в качестве тестового набора. Однако, похоже, что это не относится к устаревшему подходу scikit-learnBootstrap , который, похоже, строит тестовый набор из чертежа с заменой из подмножества данных из пакета. Что за статистическое обоснование этого? Существуют ли конкретные сценарии, в которых этот метод лучше, чем просто оценка на выборке из пакета или наоборот?

gibberfish
источник
перекрестная проверка? передискретизации?
EngrStudent
Если вы ссылаетесь на тег, он не был добавлен мной. Вообще-то, я загружаюсь как альтернатива CV.
gibberfish
Я думаю, что вы не поняли. При перекрестной проверке они собираются повторить процесс несколько раз на подмножестве данных и посмотреть на изменение результатов или параметров модели. В этом случае изменение самого параметра информирует о качестве соответствия, а не обязательно об ошибке OOB. Я не знаком с конкретной библиотекой, поэтому я просто оставил комментарий с идеей.
EngrStudent

Ответы:

3

Образцы начальной загрузки используются для оценки производительности алгоритма по многим итерациям. При этом оценивается производительность на случайно измененных наборах.

В отличие от этого, например, при выполнении 10-кратной перекрестной проверки вы выполняете только 10 итераций для различных наборов данных поезда и теста.

Теперь, когда размер вашей выборки мал, скажем, а число итераций начальной загрузки велико, давайте выберем , и вы не будете пересчитывать свои тестовые данные, как при работе с набором данных о поездах, у вас будут ситуации, когда Алгоритм видит один и тот же или очень похожий тест более одного раза. Ситуация, которую вы изначально хотели избежать с помощью начальной загрузки.n=20i=10,000

Ссылка, которую вы постете, недоступна, поэтому я добавил описание функции в текущей (0.14) версии sklearn

Описание метода

Случайная выборка с заменой итератора перекрестной проверки Предоставляет индексы поезда / теста для разделения данных в наборах тестов поездов при повторной дискретизации входных значений n_iter: каждый раз, когда выполняется новое случайное разделение данных, а затем отбираются образцы (с заменой) на каждой стороне из раскола, чтобы построить учебные и тестовые наборы. Примечание: в отличие от других стратегий перекрестной проверки, начальная загрузка позволит некоторым выборкам встречаться несколько раз в каждом разделении. Однако выборка, которая происходит в разделении поезда, никогда не будет происходить в тестовом разделении и наоборот. Если вы хотите, чтобы каждый образец появлялся не более одного раза, вам, вероятно, следует использовать перекрестную проверку ShuffleSplit.

MaxBenChrist
источник
2

Возможно, вы были на что-то. Похоже, что другие потянулись за тем же потоком и Bootstrapбыли признаны устаревшими в пользу более преднамеренного использования resampleметода с проверенными и истинными sklearn.cross_validationподходами, такими как StratifiedKFold.

варочные панели
источник