Тюнинг ксвм от кернлаб

Я хочу использовать реализацию 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 все поддерживаются) и оценки показателей.

Другие вопросы по тегам