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

标签 matlab machine-learning svm multilabel-classification matrix-storage

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

相关文章:

java - org.rosuda.REngine.Rserve.RserveException : eval failed while running R script from java

machine-learning - 支持向量机距超平面的距离和确定性

matlab - 在Matlab中将阴影区域添加到plotyy

matlab - 高档 whatershed 输出以匹配原始图像大小

machine-learning - 计算卷积层的输出大小

python - 如何避免 Theano 计算梯度趋向于 NaN

matlab - MATLAB 中 10 倍 SVM 分类的示例

matlab - 在矩阵上画一条直线

c - 动态内存分配和 NETCDF

python - Scikit 管道参数 - fit() 得到一个意外的关键字参数 'gamma'