1

Matlab の SVM ライブラリを使用してマルチラベル分類を実行しようとしています。svmtrain() hereと呼ばれる「古い」SVM関数を使用して、これに利用できる1つの解決策がありました。それに基づいて、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;

これについての助け、またはまったく別の方法で問題を解決するための提案があれば、それが進むべき道であれば幸いです。

4

1 に答える 1

1

fitcsvm数値配列に格納できないオブジェクトを出力するため、次のようにセル配列 (中括弧) を使用する必要があります。

SVMModel{i} = SVMModelHolder
于 2015-04-09T11:16:08.627 に答える