在R中使用来自e1071的SVM

时间:2015-12-27 08:40:43

标签: r svm

我正在尝试使用svm工具包中的e1071模型, 就像

一样
  

model< - svm(train_set,set_label,scale = FALSE)

并且每个实例的原始标签形式都是数组 [0,0,0,0,0,1,0,0,0]

然而,我会得到错误

 Error in predict.svm(ret, xhold, decision.values = TRUE) : 
 test data does not match model !

然后,如果每个标签都转换为一个整数,那就没问题。 那么函数svm是不是将数组作为输出标签?

1 个答案:

答案 0 :(得分:1)

来自e1071文档:

y - a response vector with one label for each row/component of x. Can 
be either a factor (for classification tasks) or a numeric vector (for  
regression).

这意味着e1071的svm需要每个实例的一个标签。看起来你有9个类,表示为0-1矩阵。具有9个级别的因子向量应该起作用。这可以这样做:

labels <- as.factor(max.col(labels))