Matlab:使用 SVM 对多类分类问题进行预测
Matlab: make predictions with SVM for multiclass classification problems
我正在尝试使用支持向量机 class在 3 classes 内验证我的数据。我使用这个 Matlab 函数来训练和交叉验证 SVM:
Mdl = fitcecoc(XTrain, yTrain, 'Learners', 'svm', 'ObservationsIn', 'rows', ...
'ScoreTransform', 'invlogit','Crossval','on', 'Holdout', 0.2);
其中 XTrain 包含我的所有数据,yTrain 是一个单元格,其中包含要分配给 XTrain 中的输入数据的每个 class 的名称。
returns 上面的函数对我来说:
Mdl --> 1x1 ClassificationPartitionedECOC
我的问题是,我必须使用什么函数才能使用新数据进行预测?在二进制 classification 的情况下,我用 'fitcsvm' 构建 SVM,然后我预测标签:
[label, score] = predict(Mdl, XTest);
但是,如果我将 ClassificationPartitionedECOC 提供给 'predict' 函数,它会给我这个错误:
No valid system or dataset was specified.
我一直无法找到允许我从我拥有的模型格式 ClassificationPartitionedECOC 开始执行预测的函数。
感谢您提供的任何帮助!
您可以通过以下方式访问学习者 i
:
Mdl.BinaryLearners{i}
因为 fitcecoc
只是像用 fitCSVM
那样以一对一的方式训练二元分类器。
我正在尝试使用支持向量机 class在 3 classes 内验证我的数据。我使用这个 Matlab 函数来训练和交叉验证 SVM:
Mdl = fitcecoc(XTrain, yTrain, 'Learners', 'svm', 'ObservationsIn', 'rows', ...
'ScoreTransform', 'invlogit','Crossval','on', 'Holdout', 0.2);
其中 XTrain 包含我的所有数据,yTrain 是一个单元格,其中包含要分配给 XTrain 中的输入数据的每个 class 的名称。 returns 上面的函数对我来说:
Mdl --> 1x1 ClassificationPartitionedECOC
我的问题是,我必须使用什么函数才能使用新数据进行预测?在二进制 classification 的情况下,我用 'fitcsvm' 构建 SVM,然后我预测标签:
[label, score] = predict(Mdl, XTest);
但是,如果我将 ClassificationPartitionedECOC 提供给 'predict' 函数,它会给我这个错误:
No valid system or dataset was specified.
我一直无法找到允许我从我拥有的模型格式 ClassificationPartitionedECOC 开始执行预测的函数。 感谢您提供的任何帮助!
您可以通过以下方式访问学习者 i
:
Mdl.BinaryLearners{i}
因为 fitcecoc
只是像用 fitCSVM
那样以一对一的方式训练二元分类器。