libSVM下载: http://www.csie.ntu.edu.tw/~cjlin/libsvm/
或github(建议github上下载,版本多) https://github.com/cjlin1/libsvm/releases
比较好的一篇安装libSVM参考博客为: http://blog.csdn.net/lqhbupt/article/details/8596349
我的系统 win7(64位),matlab2014b(64位)。
我开始下载的是最新的版本V321,即 libsvm-3.2.1,将libsvm-3.2.1放在“../matlab2014b/toolbox”下。
因为我的系统均为64位,所以无需编译,直接通过“设置路径/添加并包含子文件夹” 选择“../matlab2014b/toolbox”,点击“保存”。
然后将当前目录选择为“../matlab2014b/toolbox/libsvm-3.2.1”。
matalb输入 [heart_scale_label,heart_scale_inst]=libsvmread(\'heart_scale\');
出现报错
Invalid MEX-file \'D:\Program Files\matlab2014b\toolbox\libsvm-3.21\windows\libsvmread.mexw64\':
The specified module could not be found.
解决过程:
网上找了各种原因,有一些事说编译问题,但是我的win7和matlab都是64位。看到有个别人的回答是用libsvm-320,说没问题。然后就换了libsvm-320,测试通过。
个人考虑,可能是libsvm-3.2.1存在bug,亦或是与matlab2014b不兼容的原因。总之,matlab2014b和libsvm-320,就可以应用libSVM了。
选择当前目录为 “../matlab2014b/toolbox/libsvm-320“,如图
测试代码如下:
[heart_scale_label,heart_scale_inst]=libsvmread(\'heart_scale\');
model = svmtrain(heart_scale_label,heart_scale_inst, \'-c 1 -g 0.07\');
[predict_label, accuracy, dec_values] =svmpredict(heart_scale_label, heart_scale_inst, model); % test the trainingdata
得到结果如下:
*
optimization finished, #iter = 134
nu = 0.433785
obj = -101.855060, rho = 0.426412
nSV = 130, nBSV = 107
Total nSV = 130
Accuracy = 86.6667% (234/270) (classification)