模型为空,e1071包中的SVM

时间:2014-06-11 12:46:08

标签: r classification svm

我有一个N个例子x 765特征的矩阵。为此,每个例子都有一个N个标签的矢量。

我正在尝试使用SVM对它们进行分类并进行预测。当我使用手动半分割将整个数据分成训练和验证时,它在一个实例中工作:

indicator<-1:(length(idx)/2)
training <- idx[indicator]
test<-idx[-indicator]

但是,如果我尝试使用以下方法将循环中每个类的一半随机化:

indicator<-sample(idx, trunc(length(idx)/2))
training <- idx[indicator]
test<-idx[-indicator]

调用时出现以下错误:

svm.model <- svm(x=training,y=trainlabels)

Error in predict.svm(ret, xhold, decision.values = TRUE) : Model is empty!

矩阵的尺寸和标签的长度非常精细,svm()调用是停止工作的原因。

trainlabels是标签的“因素”,svmTraining是矩阵的一个子集。

1 个答案:

答案 0 :(得分:5)

我曾经遇到过这个错误,原因是所有的标签都是一样的,如果没有的话 如果指定,svm会尝试执行两级分类。 如果,比如90%的标签是A而你随机选择了一半,你可能只会获得 如。