r - 在 R 中绘制 SVM 线性分离器

标签 r plot machine-learning svm

我正在尝试绘制二维超平面(线),用 e1071 的 svm 分隔 3 类问题。我使用了默认方法(因此不涉及公式),如下所示:

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

  • 有没有办法在使用默认方法时绘制二维问题的拟合分隔符?
  • 我怎样才能实现这一目标?

提前致谢。

最佳答案

虽然 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)

svmplot

关于r - 在 R 中绘制 SVM 线性分离器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32910813/

相关文章:

python - 使用 Python,文件

python - 用于精度和召回的 Keras 自定义决策阈值

r - 从 "package::function"形式的字符串中获取函数

R 栅格乘法 - 为什么栅格大小大幅增加

将元素重复随机分配给有限数量的组

r - 帧()错误: figure margins too large

r - 如何将 xpath 传递给 html_nodes()?

python - 在 matplotlib 中清除轴时保留自动缩放

machine-learning - 数据处理 - 随机投影和子采样..执行所有这些操作的正确顺序是什么?

python - 机器学习中测试集需要数据清理吗?