繁体   English   中英

使用kernlab包的ksvm进行预测有错误

[英]using ksvm of kernlab package for predicting has an error

我使用 ksvm 函数来训练数据,但在预测时出现错误,代码如下:

 svmmodel4 <- ksvm(svm_train[,1]~., data=svm_train,kernel = "rbfdot",C=2.4,
               kpar=list(sigma=.12),cross=5)

警告消息:在 .local(x, ...) 中:变量`'常量。 无法缩放数据。

pred <- predict(svmmodel4, svm_test[,-1])

eval(expr,envir, enclos) 中的错误:未找到对象“res_var”。

如果我添加响应变量,它会起作用:

pred <- predict(svmmodel4, svm_test)

但是如果加上响应变量,怎么可能是“预测”呢? 我的代码有什么问题? 谢谢你的帮助!

完整代码:

library(kernlab)
svmData <- read.csv("svmData.csv",header=T,stringsAsFactors = F)
svmData$res_var <- as.factor(svmData$res_var)
svm_train <- svmData1[1:2110,]
svm_test <- svmData1[2111:2814,]
svmmodel4 <- ksvm(svm_train[,1]~.,data = svm_train,kernel = "rbfdot",C=2.4, 
              kpar=list(sigma=.12),cross=5)
pred1 <- predict(svmmodel4,svm_test[,-1])

您无法从测试数据集中删除响应列。 您只需水平划分数据,这意味着响应列必须在您的训练和测试数据集中,或者甚至是验证数据集中(如果有)。

你的职能

pred <- predict(svmmodel4, svm_test)

工作正常,预测函数将获取您的数据,知道您的因子列,并根据模型测试其余部分。 您的训练和测试数据集必须具有相同的列数,但行数可以不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM