svm {e1071} 预测创建比预期更大的预测值数组
svm {e1071} predict creates larger array of predicted values than expected
我在 R 中使用支持向量机(SVM,包 e1071)来构建 class化模型和样本外预测 7 因子 class。
问题是,当使用预测函数时,我得到一个数组,比验证集中的行数大得多。请参阅下面的代码和结果。
对出了什么问题有什么建议吗?我是否误解了 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.
因为预测中没有x
尝试:
svmPred <- predict(svmModel, validationset)
length(svmPred)
我在 R 中使用支持向量机(SVM,包 e1071)来构建 class化模型和样本外预测 7 因子 class。
问题是,当使用预测函数时,我得到一个数组,比验证集中的行数大得多。请参阅下面的代码和结果。
对出了什么问题有什么建议吗?我是否误解了 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.
因为预测中没有x
尝试:
svmPred <- predict(svmModel, validationset)
length(svmPred)