Тюнинг ксвм от кернлаб
Я хочу использовать реализацию SVM в R, чтобы сделать некоторую регрессию. Я пытался с помощью svm
от e1071
уже, но я ограничен функциями ядра там. Итак, я перешел к ksvm
от kernlab
, Но у меня есть главный недостаток, что функция настройки не была предоставлена в kernlab
(лайк tune.svm
в e1071
). Может кто-нибудь объяснить, как мне там настроить параметры для разных ядер?
PS. Я хочу особенно использовать rbfdot
ядро. Так что если хотя бы кто-нибудь сможет помочь мне понять, как настроить сигму, я был бы чрезвычайно благодарен.
PPS. Я полностью осознаю, что "automatic"
Значение для kpar можно использовать "для расчета хорошей сигмы". Но мне нужно что-то более осязаемое и более похожее на tune.svm
,
1 ответ
Либо вы пишете свою собственную оболочку (не сложно, если честно), либо вы можете попробовать уже проверенные реализованные решения, такие как mlr
а также caret
,
mlr
в учебнике есть пример по этому поводу.
ps = makeParamSet(
makeDiscreteParam("C", values = 2^(-2:2)),
makeDiscreteParam("sigma", values = 2^(-2:2))
)
ctrl = makeTuneControlGrid()
rdesc = makeResampleDesc("CV", iters = 3L)
res = tuneParams("classif.ksvm", task = iris.task, resampling = rdesc, par.set = ps, control = ctrl)
Это выполнит 3-кратную перекрестную проверку для выбора параметров из сетки и оценки точности в наборе данных радужной оболочки. Вы, конечно, можете изменить стратегии передискретизации (увольнение, монте-карло CV, CV, повторное CV, проверка начальной загрузки и удержание - все реализовано), стратегия поиска (поиск по сетке, случайный поиск, обобщенный моделируемый отжиг и повторный F-race все поддерживаются) и оценки показателей.