Matlab:使用 SVM 对多类分类问题进行预测



我正在尝试使用支持向量机将数据分为 3 个类。我使用这个 Matlab 函数来训练和交叉验证 SVM:

Mdl = fitcecoc(XTrain, yTrain, 'Learners', 'svm', 'ObservationsIn', 'rows', ...
'ScoreTransform', 'invlogit','Crossval','on', 'Holdout', 0.2);

其中 XTrain 包含我的所有数据,yTrain 是一个单元格,其中包含要分配给 XTrain 中输入数据的每个类的名称。 上面的函数返回给我:

Mdl --> 1x1 ClassificationPartitionedECOC

我的问题是,我必须使用什么功能才能使用新数据进行预测?在二元分类的情况下,我使用"fitcsvm"构建 SVM,然后使用以下方法预测标签:

[label, score] = predict(Mdl, XTest);

但是,如果我将分类分区ECOC提供给"预测"函数,它会给我这个错误:

No valid system or dataset was specified.

我无法找到允许我从我拥有的模型格式 ClassificationPartitionedECOC 开始执行预测的函数。 感谢您提供的任何帮助!

您可以通过以下方式访问学习者i

Mdl.BinaryLearners{i}

因为fitcecoc只是训练一个二元分类器,就像你以一对一的方式训练fitCSVM一样。

相关内容

  • 没有找到相关文章

最新更新