2016-05-26 9 views
2

Rの中でサポートベクトルマシン(SVM、パッケージe1071)を使用して、7因子クラスを予測する分類モデルとサンプル外を構築しています。svm {e1071} predictは予想よりも大きな予測値の配列を作成します

問題は、予測関数を使用すると、検証セット内の行数よりもはるかに大きな配列が得られることです。以下のコードと結果を参照してください。

何が問題になるかについてのご意見はありますか?私は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. 

答えて

2

xは

試し予測では存在しないからです。

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

感謝を!私は実際にその機能を誤解していました。 – Dendrobates

+0

お手伝いします:) – CClaire

関連する問題