Мне недавно сказали, что процесс, которому я следовал (компонент тезиса MS), мог быть замечен как переоснащение. Я хочу лучше понять это и посмотреть, согласны ли другие.
Целью этой части статьи является
Сравните производительность деревьев градиентной ускоренной регрессии со случайными лесами в наборе данных.
Посмотрите на производительность последней выбранной модели (GBM или RF).
В gbm
и randomForest
пакеты в R используются, наряду с
caret
.
Последовавший процесс был следующим:
- Предварительная предварительная обработка данных (например, добавление пропущенных значений номинальных предикторов в отдельную категорию под названием «Пропущенные»). Целевая переменная не рассматривалась в отношении какой-либо предварительной обработки (которая была очень минимальной).
- Создайте сетку значений для мета-параметров каждого алгоритма (например, количество итераций для GBM).
- Создайте 25 случайных разбиений набора данных (65% обучения и 35% теста).
Повторите 25 раз следующее для GBM (Каждый раз, используя одно из случайных разделений поезда / теста. Каждый раз, когда набор обучения и теста является "текущим" из изменений курса - это повторная перекрестная проверка в группе с отъездом):
- Используйте 5-кратную перекрестную проверку, чтобы найти «оптимальные» параметры настройки алгоритма по сетке поиска. Ничего из предыдущих прогонов вообще не использовалось в текущем прогоне.
- После определения поместите модель в полный «текущий» обучающий набор и спрогнозируйте «текущий» набор тестов. Отложите показатель производительности этого прогона.
После того, как таким образом получено 25 показателей эффективности (на самом деле это показатель, относящийся к конкретной области, но воспринимайте его как точность), выполните точно такой же процесс, используя точно такие же независимые образцы обучения и тестирования, для RF (один и тот же процесс, только с разными сетка поиска конечно).
Теперь у меня есть 25 показателей производительности из тогдашних «текущих» тестовых наборов для GBM и RF. Я сравниваю их с помощью критерия Уилкоксона со знаком и теста перестановки. Я обнаружил, что GBM лучше. Я также утверждал, что распределение показателя производительности из этих 25 прогонов для GBM является ожидаемой производительностью окончательного классификатора GBM.
Чего я не сделал, так это с самого начала вытащил случайный набор тестов и отложил его для сравнения с окончательной моделью GBM, построенной из всех данных обучения. Я утверждаю, что то, что я сделал, на самом деле было намного лучше, поскольку я повторил процесс разделения данных / настройки / теста на задержку 25 раз, а не один раз.
Здесь есть перетяжка? Поскольку 25 прогонов были использованы для выбора GBM по сравнению с RF, означает ли это, что показатели производительности, полученные в результате процесса, нельзя использовать в качестве оценки производительности для полной модели?
РЕДАКТИРОВАТЬ В ответ на комментарий Уэйна, вот что было сделано во время каждого из 25 прогонов:
- Данные, выбранные для i-го обучающего набора (i = 1, .., 25), были разбиты на 5 групп одинакового размера. Модель была подобрана с использованием 4 из 5 групп, установив параметры GBM (например, количество итераций) равными значениям в j-й (j = 1, .., 18) сетке.
- Производительность в 5-й группе была рассчитана с использованием этой модели.
- Шаги 1 и 2 повторяли еще 4 раза (обычное старое CV-кратное CV с k = 5). Производительность была усреднена из 5 подпроцессов, и это составило ожидаемую производительность GBM с этим определенным набором значений параметров.
- Шаги 1 -3 были повторены для 17 других «строк» в сетке.
После завершения были определены лучшие значения параметров из вышеприведенного упражнения, и GBM был подобран с использованием этих значений параметров и полного набора тренировок. Его производительность была оценена на i-м тестовом наборе.
После того, как весь этот процесс был выполнен 25 раз, для GBM было доступно 25 показателей производительности. Затем их собрали в РФ точно так же.
После сравнения и выбора GBM я посмотрел на эти 25 показателей производительности и взял среднее значение и Stnd Error, чтобы определить доверительный интервал для модели GBM на этих данных.
Ответы:
Представьте себе, вместо того, чтобы просто выбирать GBM против RF, вы вместо этого выбирали среди 100 различных классификаторов GBM (при условии, что для обучения GBM используется какая-то случайность, и вы назначаете им случайные начальные числа от 1 до 100). Тогда вы бы выбрали один из этих 100 GBM как лучший GBM. Но это почти наверняка тот случай, когда одной из 100 выбранных вами моделей повезло побить своих 99 братьев и сестер, и поэтому ваша оценка производительности будет оптимистичной.
Вы использовали только двух учеников, и они не были обучены по одинаковому алгоритму, поэтому ваш единственный GBM, вероятно, не испытывал особого давления при выборе (особенно, если он значительно превосходил RF), но ваша оценка ошибки все еще будет немного оптимистично
источник
Похоже, вы пытались смешать два метода, каждый из которых является законным, но при этом вы чувствуете, что в результате вы получаете утечку данных между делами.
На нижнем уровне вы, кажется, правильно используете CV. Что предполагает, что верхним уровнем также должно быть резюме, в результате чего получается вложенное резюме, но ваш верхний уровень не является резюме.
На верхнем уровне это звучит так, как будто вы, возможно, хотели выполнить проверку начальной загрузки, и в этом случае двойной загрузчик будет работать для верхнего и нижнего уровней, но ваш верхний уровень не является правильным начальным загрузчиком.
Возможно, вы захотите посмотреть на эту статью stackexchange. и статьи, на которые он ссылается, и, возможно, реструктурировать ваш верхний уровень, чтобы стать резюме. Кроме того, обратите внимание, что никто иной, как Фрэнк Харрелл, публикует сообщения в этой теме и предлагает повторять резюме много раз. (Я был шокирован, думая, что одно повторение должно сделать это.)
источник