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