SVM в R для регрессии - PullRequest
       4

SVM в R для регрессии

4 голосов
/ 04 ноября 2011

У меня есть 4 измерения данных.В R я использую plot3d с 4-м измерением, являющимся цветом.Я хотел бы теперь использовать SVM, чтобы найти лучшую линию регрессии, чтобы дать мне лучшую корреляцию.По сути, наилучшая посадка гиперплоскости зависит от цветового измерения.Как я могу это сделать?

Ответы [ 2 ]

10 голосов
/ 04 ноября 2011

Это основная идея (конечно, конкретная формула будет меняться в зависимости от ваших имен переменных и которая зависит):

library(e1071)

data = data.frame(matrix(rnorm(100*4), nrow=100))

fit = svm(X1 ~ ., data=data)

Затем вы можете использовать обычные функции summary, plot, predict и т. Д. Для подходящего объекта. Обратите внимание, что в SVM гиперпараметры обычно необходимо настраивать для достижения наилучших результатов. Вы можете сделать это с помощью оболочки tune. Также ознакомьтесь с пакетом caret, который я считаю отличным.

5 голосов
/ 05 ноября 2011

Посмотрите на функцию svm в пакете e1071. Вы также можете рассмотреть пакеты kernelab, klaR или svmpath.

РЕДАКТИРОВАТЬ: @CodeGuy, Джон предоставил вам пример. Я предполагаю, что ваши 4 измерения - это функции, которые вы используете для классификации ваших данных, и что у вас есть еще одна другая переменная, которая является реальным классом.

y  <- gl(4, 5)
x1 <- c(0,1,2,3)[y]
x2 <- c(0,5,10,15)[y]
x3 <- c(1,3,5,7)[y]
x4 <- c(0,0,3,3)[y]

d <- data.frame(y,x1,x2,x3,x4)

library(e1071)
svm01 <- svm(y ~ x1 + x2 + x3 + x4, data=d)
ftable(predict(svm01), y)  # Tells you how your svm performance
...