2014-10-20 3 views
3

Я хочу использовать реализацию SVM в R, чтобы сделать некоторую регрессию. Я пробовал использовать svm от e1071, но я ограничен функциями ядра там. Поэтому я перешел на ksvm от kernlab. Но у меня есть главный недостаток: функция настройки не была предоставлена ​​в kernlab (например, tune.svm в e1071). Может кто-нибудь объяснить, как мне настроить параметры для разных ядер?Tuning ksvm from kernlab

PS. Я хочу, в частности, использовать ядро ​​rbfdot. Поэтому, если хотя бы кто-то может помочь мне понять, как настроить сигму, я был бы чрезвычайно благодарен.

PPS. Я полностью знаю, что значение "automatic" для kpar можно использовать «для расчета хорошей сигмы». Но мне нужно что-то более осязаемое и больше по линиям tune.svm.

ответ

0

Либо вы пишете свою собственную упаковку (не так уж сложно быть честным), либо вы можете попробовать уже зарекомендовавшие себя реализованные решения, такие как mlr и caret.


mlr учебник имеет an example about it.

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) 

Это будет выполнять трехкратную перекрестную проверку для выбора параметров из сетки и оценки точности набора данных диафрагмы. Разумеется, вы можете изменить стратегии передискретизации (все остальное, CV-CV, CV, повторное CV, бутстрап-проверка и аудит), стратегия поиска (поиск в сетке, случайный поиск, обобщенный имитируемый отжиг и повторный F -race поддерживаются) и оценочные показатели.

Смежные вопросы