R 使用相同结果值时与e1071中的SVM不一致
我有一个数据帧testdf dput(testdf) 当我使用漏掉一个交叉验证将其放入e1071时,我会得到不一致的结果,这取决于我是否这样做R 使用相同结果值时与e1071中的SVM不一致,r,R,我有一个数据帧testdf dput(testdf) 当我使用漏掉一个交叉验证将其放入e1071时,我会得到不一致的结果,这取决于我是否这样做 kernelfn <- "linear" y.svm <- rep(NA, nrow(testdf)) for (i in 1:nrow(testdf)) { testset <- testdf[i, ] trainset <- testdf[-i, ] model.svm <- sv
kernelfn <- "linear"
y.svm <- rep(NA, nrow(testdf))
for (i in 1:nrow(testdf)) {
testset <- testdf[i, ]
trainset <- testdf[-i, ]
model.svm <-
svm(
**trainset$status**~.,
data = trainset,
type = "C-classification",
kernel = kernelfn
)
y.svm[i] <- as.character(predict(model.svm, testset))
}
> table(testdf$status, y.svm)
y.svm
0 1
0 17 9
1 10 21
在预测中,为什么会出现这种不一致?我做厕所的时候做错什么了吗
谢谢无论哪种情况,您都没有正确指定型号。第一个调用以某种方式通过,但第二个调用没有按预期通过。要查看我说的内容,请在这两种情况下都使用
as.character(predict(model.svm,testset[,1:21])
。第二个模型使用status
作为功能。在这两种情况下,您都没有正确指定模型。第一个调用以某种方式通过,但第二个调用没有按预期通过。要查看我说的内容,请使用as.character(predict(model.svm,testset[,1:21])
在这两种情况下。第二个模型使用状态
作为特征。
kernelfn <- "linear"
y.svm <- rep(NA, nrow(testdf))
for (i in 1:nrow(testdf)) {
testset <- testdf[i, ]
trainset <- testdf[-i, ]
model.svm <-
svm(
**trainset$status**~.,
data = trainset,
type = "C-classification",
kernel = kernelfn
)
y.svm[i] <- as.character(predict(model.svm, testset))
}
> table(testdf$status, y.svm)
y.svm
0 1
0 17 9
1 10 21
kernelfn <- "linear"
y.svm <- rep(NA, nrow(testdf))
for (i in 1:nrow(testdf)) {
testset <- testdf[i, ]
trainset <- testdf[-i, ]
model.svm <-
svm(
**trainset[,22]**~.,
data = trainset,
type = "C-classification",
kernel = kernelfn
)
y.svm[i] <- as.character(predict(model.svm, testset))
}
> table(testdf$status, y.svm)
y.svm
0 1
0 26 0
1 0 31
> identical(testdf$status, testdf[,22])
[1] TRUE