我正在尝试使用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
是不是将数组作为输出标签?
答案 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))