我想创建一个玩具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
此外,
有谁可以解释世界上发生了什么?
答案 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下载新版本。