Matlab fitcsvm函数返回收敛但没有支持向量

时间:2019-05-22 14:16:33

标签: matlab svm

我正在尝试使用matlab命令fitcsvm训练两类支持向量机。在输入数据相同的情况下,有时会返回可用的分类器,但大多数情况下,输出的“ classificationSVM”表示已达到收敛,但仍然发现没有支持向量,即无法使用。可能是我插入错误的参数引起的,还是其他原因?

似乎每次都只能使用标准设置,但是会创建非常糟糕的分类器。我曾经看似随机地获得了带有调整参数的支持向量的有效输出,而且从理论上我知道我必须至少对输入进行标准化才能获得不错的结果。但是,正如大多数时候所提到的,在更改参数时,输出对象'classificationSVM'找不到单个支持向量,即它基本上已损坏。

对于培训数据,我目前拥有:

  • 36个功能
  • 1008正面观察
  • 1008个负面观察

我尝试将'iterationLimit'参数增加到高于标准参数,以使其具有更多的计算时间,并尝试减少'BoxConstraint',因为我阅读了增加允许的支持向量的数量。我还检查了我的输入数据,以确保没有NaN或虚数。但是没有结果。

是否有人在Matlab上有过支持SVM的经验,并且可能对如何进一步研究提供线索?

%This seems to work but classifier performs badly 
classifier = fitcsvm(finalFeatures,finalClasses);

%This classifier performs much better but output is useless 99/100 times
classifier = fitcsvm(finalFeatures,finalClasses,'Standardize',true);

0 个答案:

没有答案