我正在尝试使用 Matlab 中的 SVM 库执行多标签分类。有一种解决方案可用,使用名为 svmtrain() 的“旧”SVM 函数 here 。基于此,我使用 fitcsvm() 创建了自己的函数。 但是,当我尝试存储 SVM 训练模型时,出现以下错误:
Error using classreg.learning.internal/DisallowVectorOps/subsasgn (line 28)
You cannot assign to an object of class double using () indexing.
Error in multiClassSVM>(parfor body) (line 16)
SVMModel(i) = SVMModelHolder;
Error in multiClassSVM (line 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;
如果有任何帮助,或者以完全不同的方式解决问题的任何建议(如果这是可行的方法),我将不胜感激。
最佳答案
fitcsvm
输出一个无法存储在数值数组中的对象,因此您必须使用元胞数组(即大括号),如下所示:
SVMModel{i} = SVMModelHolder
关于matlab - 在 Matlab 中使用 fitcsvm() 函数存储 ClassificationSVM 的数组/矩阵给我一个错误,我该如何解决它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29508909/