我正在尝试使用Matlab中的SVM库执行多标签分类。有一种解决方案可以使用"较旧的" SVM函数名为svmtrain()here。基于此,我使用fitcsvm()创建了自己的函数。 但是,当我尝试存储受SVM训练的模型时,我收到以下错误:
使用classreg.learning.internal / DisallowVectorOps / subsasgn(第28行)时出错
使用()索引不能分配给double类的对象。
multiClassSVM中的错误>(parfor body)(第16行)
SVMModel(i)= SVMModelHolder;
multiClassSVM中的错误(第8行)
parfor i = 1:9
如何在变量中存储多个ClassificationSVM模型?
如果有帮助,则会给出代码:
parfor i=1:9
label = (labels==i);
label = i * label;
disp(size(label));
disp(size(trainSet));
SVMModelHolder = fitcsvm(trainSet, label);
disp(class(SVMModelHolder))
SVMModel(i) = SVMModelHolder;
end;
如果您有任何帮助,我将不胜感激,或者以完全不同的方式解决问题的任何建议,如果这样的话。
答案 0 :(得分:0)
fitcsvm
输出一个无法存储在数值数组中的对象,因此您必须使用单元格数组(即花括号),如下所示:
SVMModel{i} = SVMModelHolder