Matlab:使用SVM对多类分类问题进行预测
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
但是,如果我将ClassificationPartitionedECOC提供给'predict'函数,它会给我这个错误:
No valid system or dataset was specified.
我无法找到一个允许我从我拥有的模型格式ClassificationPartitionedECOC开始执行预测的函数。感谢您提供的任何帮助!
答案
您可以通过以下方式访问学习者i
:
Mdl.BinaryLearners{i}
因为fitcecoc
只是训练一个二元分类器,就像你用fitCSVM
一对一的方式。
以上是关于Matlab:使用SVM对多类分类问题进行预测的主要内容,如果未能解决你的问题,请参考以下文章