Мне недавно сказали, что процесс, которому я следовал (компонент тезиса 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 на этих данных.