SVM

3 views
Skip to first unread message

Anton Korobeynikov

unread,
Mar 31, 2010, 5:15:59 AM3/31/10
to r-spri...@statmod.ru
Добрый день

Как я и обещал, небольшое разъяснение по поводу SVM.

1. Параметр для C действительно называется cost
2. Функция tune вызывается несколько иначе. Список переменных, по
которым надо оптимизировать задается в аргументе range в виде
именованного списка. В tune.control задаются параметры самого перебора
(например, количество компонент для кросс-валидации).

Пример:
o <- tune(svm, Species~., data = iris,
ranges = list(gamma = 2^(-1:1), cost = 2^(2:4)),
tunecontrol = tune.control(k=2))

--
With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University

Tonytonov

unread,
Apr 6, 2010, 2:01:56 PM4/6/10
to Anton Korobeynikov
Всем доброго вечера,
в приложении к задаче 4 (task4.pdf) обнаружена небольшая ошибка.
А именно, строку
y <- seq(min(d[,2]), min(d[,2]), by=.1)
следует читать
y <- seq(min(d[,2]), max(d[,2]), by=.1)
Также, хочется заметить, что параметр by лучше задавать как, к
примеру, сотую часть размаха в признаке, потому что в противном случае
перебор сетки при таком фиксированном малом шаге может длиться
чрезвычайно долго. Если, к примеру, по первому измерению минимум 1, а
максимум 2, а по второму -- 1 и 101 соответственно, то сетка будет
перекошена: 10 промежутков против 1000; к тому же, счёт займет около
минуты.
Best regards,
Tonytonov.

Tonytonov

unread,
Apr 6, 2010, 3:21:54 PM4/6/10
to Anton Korobeynikov
Ещё раз добрый вечер.

> Пример:
> o <- tune(svm, Species~., data = iris,
> ranges = list(gamma = 2^(-1:1), cost = 2^(2:4)),
> tunecontrol = tune.control(k=2))
Справка говорит, что параметр количества разбиений носит название
cross, а не k.
Спасибо за внимание.
Tonytonov


Reply all
Reply to author
Forward
0 new messages