2015-10-02 66 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