本文介绍了在R中绘制支持向量机线性分离器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试用e1071的支持向量机绘制分隔三类问题的二维超平面(线)。我使用了默认方法(因此不涉及公式),如下所示:
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问题绘制适合的分隔符?
- 如何实现此目标?
提前谢谢。
推荐答案
虽然svm()
允许您使用默认或公式方法指定输入,但plot.svm()
仅允许公式方法。此外,只将x
提供给plot.svm()
,并没有给它所需的所有信息。还需要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)
这篇关于在R中绘制支持向量机线性分离器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!