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

Posted

技术标签:

【中文标题】Matlab:使用 SVM 对多类分类问题进行预测【英文标题】:Matlab: make predictions with SVM for multiclass classification problems 【发布时间】:2019-02-25 18:26:45 【问题描述】:

我正在尝试使用支持向量机将我的数据分为 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);

但是,如果我将 ClassificationPartitionedECOC 提供给“预测”函数,则会出现以下错误:

No valid system or dataset was specified.

我还没有找到一个函数,可以让我从我拥有的模型格式 ClassificationPartitionedECOC 开始执行预测。 感谢您提供的任何帮助!

【问题讨论】:

【参考方案1】:

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

Mdl.BinaryLearnersi

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

【讨论】:

你是说 Mdl.BinaryLearnersi 和 predict 函数一样吗? 使用predict(Mdl.BinaryLearnersi, XTest)

以上是关于Matlab:使用 SVM 对多类分类问题进行预测的主要内容,如果未能解决你的问题,请参考以下文章

matlab中用svm如何做多类别分类(R2013a)?

多类 SVM。二元决策树。 LIBSVM 的问题

使用 OpenCV 在多类分类中获取 SVM 分类分数

如何使用 SVM 预测多类情感分析问题中的所有类?

土壤分类基于matlab GUI多类SVM土壤分类含Matlab源码 1398期

求SVM多类分类问题的代码,最好是MATLAB的完整代码