Как построить график классификации SVM в R - PullRequest
11 голосов
/ 17 июля 2009

У меня есть SVM в R, и теперь я хотел бы построить классификационное пространство для этой машины. Я нашел несколько примеров в Интернете, но я не могу понять их.

Мой R скрипт выглядит следующим образом:

library(e1071)
day_of_week <- c(0,1,2,3,4,5,6)
holiday <- factor( c(T, F, F, F, F, F, T) )
model <- svm(day_of_week, holiday)
plot(model, day_of_week, holiday)

Я не могу заставить команду заговора работать. Я хотел бы график примерно так http://bm2.genes.nig.ac.jp/RGM2/R_current/library/e1071/man/images/plot.svm_001.png

Ответы [ 2 ]

17 голосов
/ 17 июля 2009

Прежде всего, функция plot.svm предполагает, что данные изменяются в двух измерениях. Данные, которые вы использовали в вашем примере, являются только одномерными, и поэтому граница решения должна быть нанесена на линию, что не поддерживается. Во-вторых, похоже, что для этой функции необходим фрейм данных, и вы работаете с векторами.

Это должно работать ...

library(e1071)

day = c(0,1,2,3,4,5,6)
weather = c(1,0,0,0,0,0,0)
happy = factor(c(T,F,F,F,F,F,F))

d = data.frame(day=day, weather=weather, happy=happy)
model = svm(happy ~ day + weather, data = d)
plot(model, d)
12 голосов
/ 26 июля 2009

Кроме того, вы можете использовать пакет kernlab :

library(kernlab)

model.ksvm = ksvm(happy ~ day + weather, data = d, type="C-svc")
plot(model.ksvm, data=d)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...