我在Matlab中使用libsvm来对具有5个类的数据集进行分类。这里的数据是2-D,但我认为不重要。
每个班级的测试数据量是平衡的。对于训练数据,当我为每个班级使用5个训练样本时,分类结果是好的。但是,当我将一个班级(比如2级)的训练数据从5改为10时,分类准确性很差,特别是对于2级。
我使用的代码非常简单:
model = svmtrain2(trainLabels, trainData );
[LabelSVM] = svmpredict2(testLabels, testData, model);
这是因为我应该指定svmtrain2
中的任何选项吗?或者它是由其他东西引起的?谢谢。
答案 0 :(得分:0)
从LIBSVM查看this svm guide。这是一个非常好的介绍 - 更快的解决方案请参阅第1.2节(尽管你最好还是阅读整篇文章,如果你还没有)。
基本上,请确保您已扩展数据(同时进行测试和培训),并且您必须调整内核参数,这些参数可能是C
和{ {1}}。
我还认为,如果每个类只有5个数据点,那么性能就不会非常可靠。 SVM很容易过度拟合数据。