簡體   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