svm e1071 predict 创建的预测值数组比预期的要大

Posted

技术标签:

【中文标题】svm e1071 predict 创建的预测值数组比预期的要大【英文标题】:svm e1071 predict creates larger array of predicted values than expectedsvm e1071 predict 创建的预测值数组比预期的要大 【发布时间】:2016-09-24 02:49:12 【问题描述】:

我在 R 中使用支持向量机(SVM,包 e1071)来构建分类模型和样本外预测 7 因子类。

问题是,当使用预测函数时,我得到一个数组,比验证集中的行数大得多。请参阅下面的代码和结果。

关于哪里出了问题有什么建议吗?我是否误解了 SVM 包中的预测函数?

install.packages("e1071","caret")
library(e1071)
library(caret)

data <- data.frame(replicate(10,sample(0:6,1000,rep=TRUE)))

trainIndex <- createDataPartition(data[,1], p = 0.8,
                                  list = FALSE,
                                  times = 1)

trainset <- data[trainIndex,2:10]
validationset <- data[-trainIndex,2:10]

trainlabel <- data[trainIndex,1]
validationlabel <- data[-trainIndex,1]

svmModel <- svm(x = trainset, 
                y = trainlabel, 
                type = "C-classification", 
                kernel = "radial")

# Predict
svmPred <- predict(svmModel, x = validationset)

length(svmPred)
# 800, expected 200 since validationset has nrow = 200.

【问题讨论】:

【参考方案1】:

这是因为预测中不存在x

试试:

svmPred <- predict(svmModel, validationset)
length(svmPred)

【讨论】:

谢谢!我确实误解了函数。

以上是关于svm e1071 predict 创建的预测值数组比预期的要大的主要内容,如果未能解决你的问题,请参考以下文章

R e1071 预测与 libsvm 不同

predict.svm 中的错误:测试数据与模型不匹配

R(e1071)中奇怪的 svm 行为

R语言e1071包中的支持向量机:螺旋线型线性不可分数据集RBF核函数支持向量机SVM(验证模型在测试集上的表现可视化模型预测的结果添加超平面区域与原始数据标签进行对比分析)

R 中的 SVM (e1071):赋予最近的数据更高的影响力(支持向量机的权重?)

scikit.svm.SRV.predict(X) 的复制