在 Matlab 中使用 fitcsvm() 函数存储一个 array/matrix 的 ClassificationSVM 给我一个错误,我该如何解决?
Storing an array/matrix of ClassificationSVM with fitcsvm() function in Matlab gives me an error, how can I resolve it?
我正在尝试使用 Matlab 中的 SVM 库执行多标签分类。使用名为 svmtrain() here 的 "older" SVM 函数可以解决此问题。基于此,我使用 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 中的 SVM 库执行多标签分类。使用名为 svmtrain() here 的 "older" SVM 函数可以解决此问题。基于此,我使用 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