Гамма изменена в SVM с радиальным ядром

#r #svm

#r #svm

Вопрос:

Вот этот код:

 library(e1071)
set.seed(1)
x = matrix(rnorm(200 * 2), ncol = 2)
x[1:100, ] = x[1:100, ]   2 
x[101:150, ] = x[101:150, ] - 2 
y = c(rep(1, 150), rep(2, 50))
dat = data.frame(x = x, y = as.factor(y))
head(dat)
plot(x, col = y)
train = sample(200, 100)
svmfit = svm(y ~ ., data = dat[train, ], kernel = "radial", gammma = 1, cost = 1)
plot(svmfit, dat[train, ])
summary(svmfit)
 

Параметр gamma в сводке отличается от того, что я установил:

 Call:
svm(formula = y ~ ., data = dat[train, ], kernel = "radial", gammma = 1, cost = 1)


Parameters:
   SVM-Type:  C-classification 
 SVM-Kernel:  radial 
       cost:  1 
      gamma:  0.5 

Number of Support Vectors:  36

 ( 18 18 )


Number of Classes:  2 

Levels: 
 1 2
 

Что пошло не так?

Ответ №1:

Вы просто неправильно написали параметр, посмотрите внимательно gammma , сколько m s вы видите? Мне потребовалось некоторое время, чтобы увидеть, что их больше, чем 2.

Попробуйте

 library(e1071)
set.seed(1)
x = matrix(rnorm(200 * 2), ncol = 2)
x[1:100, ] = x[1:100, ]   2 
x[101:150, ] = x[101:150, ] - 2 
y = c(rep(1, 150), rep(2, 50))
dat = data.frame(x = x, y = as.factor(y))
head(dat)
plot(x, col = y)
train = sample(200, 100)
svmfit = svm(y ~ ., data = dat[train, ], kernel = "radial", gamma = 1, cost = 1)
plot(svmfit, dat[train, ])
summary(svmfit)
 

Позор авторам e1071 за то, что они не создали исключение из-за указания неправильных параметров…