gpt4 book ai didi

matlab - 在 Matlab 中使用 fitcsvm() 函数存储 ClassificationSVM 的数组/矩阵给我一个错误,我该如何解决它?

转载 作者:行者123 更新时间:2023-11-30 09:12:37 25 4
gpt4 key购买 nike

我正在尝试使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com