![](/img/trans.png)
[英]What does this error mean while running the ksvm of kernlab package in R
[英]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.