以下代码应使用包中的ksvm
函数创建支持向量分类器(具有线性内核的 SVM) kernlab
:
library(kernlab)
set.seed(1)
x <- rbind(matrix(rnorm(10 * 2, mean = 0), ncol = 2),
matrix(rnorm(10 * 2, mean = 2), ncol = 2))
y <- c(rep(-1, 10), rep(1, 10))
svc <- ksvm(x, y, type = "C-svc", kernel = "vanilladot")
plot(svc, data = x)
结果图:
如果我的理解是正确的,黑色的形状是支持向量,它们是位于边距内部或边界上的数据点。
那么最上面的黑点是怎么回事?有三个更接近决策边界的空心点(因此不是支持向量)。(两个在附近,很容易看到。除非放大图片,否则很难看到第三个,但它是最右边的那个。)
要么这里的实现中有一个错误,要么我错过了一些关于它应该如何工作的概念。有什么见解吗?