Caret的SVM表现得很奇怪

时间:2016-04-12 08:04:05

标签: r r-caret

我想创建一个玩具2D数据集,在其上可视化SVM算法的性能。我制作了一个完全可分离的数据集:

n <- 200;

d<-data.frame(x=runif(n), y=runif(n))

d$class[-1 + 3 * d$x < d$y] <- "1"
d$class[-1 + 3 * d$x > d$y] <- "2"

但是,我不了解运行该行时收到的警告:

library(caret)

train(class~., data=d, method='svmLinear', tuneGrid=data.frame(C=1))

该方法返回大量警告,所有类型:

  23: In data.row.names(row.names, rowsi, i) :
  some row.names duplicated: 3,4,10,12,14,16,18,22,24,27,30,34,35,38,39,45,47,52,54,56,57,64,67,72,74,76,78,81,83,84,87,88,91,92,94,99,103,108,109,111,113,115,117,118,120,121,123,128,129,131,135,137,138,140,141,143,145,146,148,153,164,171,173,178,181,187,189,191,193,194,198 --> row.names NOT used

此外,

有谁可以解释世界上发生了什么?

2 个答案:

答案 0 :(得分:1)

好吧,我不确定导致警告的原因。但是当我使用其他方法来使用火车功能拟合模型时如下:

train(x=d[, c("x", "y")], y=factor(d$class), method='svmLinear', tuneGrid=data.frame(C=1)

我没有得到任何警告。这两种方法的表现非常相似。

答案 1 :(得分:1)

您的模型没有任何问题,并且工作正常。您可以忽略该警告。

此问题已在issue 410下的插入符号github页面上提交。现在已经解决了这个问题,并且当在cran上有新版本(版本高于6.0-70)时将修复此问题。或者您可以从github下载新版本。