Caret 的 SVM 表现异常
Caret's SVM behaving strangely
我想创建一个玩具二维数据集,以可视化 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))
方法returns很多警告,全部类型:
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
此外,
谁能解释一下这世界上到底发生了什么?
嗯,我不确定是什么导致了这些警告。但是当我使用其他方法使用如下训练函数来拟合模型时:
train(x=d[, c("x", "y")], y=factor(d$class), method='svmLinear', tuneGrid=data.frame(C=1)
我没有收到任何警告。这两种方法的性能非常相似。
您的模型没有任何问题并且工作正常。您可以忽略该警告。
此问题已在插入符号 github 页面的 issue 410 下提交。这个问题现在已经解决,当 cran 上有新版本(高于 6.0-70 的版本)时将得到修复。或者您可以从 github 下载新版本。
我想创建一个玩具二维数据集,以可视化 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))
方法returns很多警告,全部类型:
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
此外,
谁能解释一下这世界上到底发生了什么?
嗯,我不确定是什么导致了这些警告。但是当我使用其他方法使用如下训练函数来拟合模型时:
train(x=d[, c("x", "y")], y=factor(d$class), method='svmLinear', tuneGrid=data.frame(C=1)
我没有收到任何警告。这两种方法的性能非常相似。
您的模型没有任何问题并且工作正常。您可以忽略该警告。
此问题已在插入符号 github 页面的 issue 410 下提交。这个问题现在已经解决,当 cran 上有新版本(高于 6.0-70 的版本)时将得到修复。或者您可以从 github 下载新版本。