一个论文的分类问题中用到了SVM,我想实现此论文看效果,于是要学习SVM。SVM应该很早就知道了,但是一直是一知半解的,不是很明白。两年前做毕设的那个东西,就是用的SVM做分类的,所以说渊源颇远。
SVM本身是一个二分类的分类器,但是经过拓展之后可以运用到多分类的问题上。下面这个连接有讨论:
http://www.matlabsky.com/thread-9471-1-1.html
我看了MATLAB自带的SVM程序,在工具箱中,\toolbox\bioinfo\biolearning\,有svmtrain.m,svmclassify.m,svmsmoset.m等文件。运行了后发现,只能做二分类。因为我想要用SVM做多分类,所以继续找。看到LibSVM是一个被很多人提到的SVM库,实现的东西比较多,质量高,于是决定用它来做。
下面这个博客讲如何安装libsvm,我按照其中的内容一步步来。遇到的问题里面都有很好的讲解,都可以解决。
http://blog.youkuaiyun.com/abcjennifer/article/details/7370177 ,很重要。
但是这篇博文中还是有些疏漏。在我实际操作时有问题。看了下面的评论,大家很多人也遇到了。
1.版本libsvm-3.20可以直接加载数据,方法是:
[heart_scale_label,heart_scale_inst]= ibsvmread('heart_scale');
2.
你好,我前面的都正确做了,然后到D.train & predict的时候,没有得到accuracy的结果,内存中显示accuracy跟predict_label都是空矩阵。
请问是什么情况呢?谢谢。
回复光谱师:[predicted_label, accuracy, decision_values/prob_estimates] = svmpredict(testing_label_vector,
testing_instance_matrix, model, 'libsvm_options'),这个函
数有三个输出。你改成[predict_label,accuracy,decision_values] = svmpredict(heart_scale_label,heart_scale_inst,model); 试试~
到此,安装libSVM成功。怎么用呢?
http://www.matlabsky.com/thread-10966-1-1.html 这是一个libSVM的汇总贴。
我觉得SVM内容很丰富,很好很强大。现在可以说是最强的分类器之一了。而且涉及到的很多问题,很具有代表性。我对它的前前后后的问题都弄懂的话,那么其他 的分类器也可以触类旁通了。