Что внутренний ученик настройки вернет во вложенном резюме в MLR? - PullRequest
0 голосов
/ 13 января 2020

В MLR есть метод для реализации вложенной перекрестной проверки. Во вложенном резюме внутренний l oop используется для выбора наилучших параметров настройки, а внешний l oop используется для оценки производительности модели. Когда я комбинирую вложенный cv с процессом выбора функции, я немного запутываюсь в том, что вернет MLR внутренняя настроенная модель. Например, я хочу сначала применить фильтр на основе значения р корреляции с результатом <0,05. Во вложенном резюме (я говорю это в <strong>тренинг , валидация и тест набор), это должно быть: Во внутреннем l oop, для каждого тренировочного набора , примените фильтр, затем настройте интересующий нас параметр и протестируйте в наборе проверки. Во внутреннем l oop мы можем получить лучший параметр настройки и связанный с ним набор функций.

Что мне интересно, так это то, что внутренний лучший настроенный параметр вернет для внешнего обучения l oop Я предполагаю, что есть две возможные модели:

  1. Внутренняя модель с наилучшей настройкой просто возвращает параметр с наилучшей настройкой, а не выбранное подмножество функций. Итак, во внешнем l oop мы сначала применим тот же фильтр, а затем обучаем набор обучения + проверки с наилучшим настроенным параметром.

  2. Внутренняя модель с наилучшими настройками возвращает параметр наилучшей настройки и подмножество выбранных функций Таким образом, во внешнем l oop мы просто обучим набор обучения + проверки с наилучшим настроенным параметром и выбранным подмножеством функций (из внутреннего l oop).

На мой взгляд, я думаю, что первая логика больше c. Часть моего кода, как показано ниже:

svm_learner<-makeLearner("classif.svm",predict.type="prob",fix.factors.prediction = TRUE)
svm_filter<-makeFilterWrapper(learner = svm_learner,
                          fw.method = "t.test.filter", fw.threshold = -0.05)
svm_filter_nested<-makeTuneWrapper(svm_filter,par.set=ps,
                        control=ctrl,resampling=inner)
r=resample(svm_filter_nested,task,resampling=outer,models=TRUE)

1 Ответ

0 голосов
/ 14 января 2020

Вариант 2) верен.

Гиперпары оптимизированы для выбранного подмножества функций. Я бы не имел смысла делать это, если вы снова запустите процесс фильтрации во внешнем l oop.

В каждом внешнем сгибе происходит не более чем тренировка / предсказание с параметрами, поступающими из внутренней оптимизации l oop. Во внешнем l oop.

PS оптимизация не происходит. Возможно, вы захотите задать такие общие вопросы по https://stats.stackexchange.com/, а не по Stackoverflow, поскольку они связаны с общими ( статистические) понятия, а не программирование. Люди будут голосовать, чтобы закрыть такие вопросы, так как они не имеют отношения к программированию. (Обратите внимание, что никто из команды mlr не наблюдает за вопросами stats.stackexchange)

...