2015-10-02 67 views
1

我正在试图绘制2维超平面(线)与e1071的svm分离三级问题。我用默认方法(所以没有参与配方),像这样:在R中绘制支持向量机线性分离器

library('e1071') 
## S3 method for class 'default': 
machine <- svm(x, y, kernel="linear") 

我似乎无法使用plot.svm方法来绘制它:

plot(machine, x) 
Error in plot.svm(machine, x) : missing formula. 

但我没有用公式方法,我用默认之一,如果我通过'~''~.'作为公式参数它会抱怨矩阵x不是data.frame

  • 是否有同时使用默认方法的2D绘图问题的拟合分离器/ s的方式吗?
  • 我该如何做到这一点?

在此先感谢。

+0

你能张贴重复的例子,有一个小的数据帧?谢谢。 –

+0

'x < - prcomp(iris [,1:4])$ x [,1:2]'和'y < - iris [,5]' – mescarra

回答

2

虽然svm()允许您使用默认或公式方法指定输入,但plot.svm()只允许公式方法。另外,通过只给plot.svm输入x,你并没有给出它需要的所有信息。它也需要y。

试试这个:

library(e1071) 

x <- prcomp(iris[,1:4])$x[,1:2] 
y <- iris[,5] 

df <- data.frame(cbind(x[],y[])) 

machine <- svm(y ~ PC1 + PC2, data=df) 
plot(machine, data=df) 

svmplot