rambo

使用LibSVM(一)

1. 参考网站:

libsvm库下载:http://www.csie.ntu.edu.tw/~cjlin/libsvm/

视频:http://v.youku.com/v_showMini/id_XMjc2NTY3MzYw_ft_131.html(重点参考)

详解:http://www.matlabsky.com/thread-11925-1-1.html

2. 操作流程:

请注意:详细操作流程请参考上面的“详解”网站,这里只说大框架和详解里没有提到的问题。

A.设置path(注意是subfolders)

File->set path ->add with subfolders->加入libsvm-3.20文件夹的路径

B. 在matlab中编译

目的:将libsvm-3.20\matlab 中 libsvmwrite.c 等 C++文件编译成 libsvmread.mexw64等matlab文件,这样就可以在command window中被直接调用了。

注意:在最外面的Readme中有提到已经有编译好的文件,比如在libsvm-3.20\windows中也会看到libsvmread.mexw64,但这里不要被误导!还是需要你自己再编译一遍的!

C.加载数据集

有两个数据集,一个是C++的, 一个是matlab的。libsvm库中下载的是C++数据,

所以matlab加载我们下载的heart_scale是会报错的。需要转换成mat文件。可以用libsvmread而非load,然后保存为mat文件

QQ截图20150608115631

注意:这里如果使用下列语句,无法得到结果。

3.20版本的svmpredict作了修改,必须在[predict_label,accuracy] = svmpredict(heart_scale_label,heart_scale_inst,model);的基础上修改才能得到accuracy。

下面转载自:http://blog.csdn.net/abcjennifer/article/details/7370177

============MAC 版如何在matlab中使用libsvm==================
下面说下mac怎么用libsvm,这里的问题是mex -setup的问题,需要安装一个补丁。
1. mac中安装xcode
2. xcode的preference中装command line tools
3. 下载最新补丁http://www.mathworks.cn/support/solutions/en/data/1-FR6LXJ/
4. 在matlab命令行输入>>cd(matlabroot)
5. 在matlab命令行输入这个打补丁
>>!unzip -o ~/Downloads/optsPatch_MACOSX8.patch
6. 可以运行mex -setup了,选择将原来的gcc覆盖掉
7. 到libsvm/matlab进行make
就搞定啦!

具体参考:http://bbs.weiphone.com/read-htm-tid-5787323.html

4、深入阅读README文件

linear:线性核函数(linear kernel)
polynomial:多项式核函数(ploynomial kernel)
RBF:径向基核函数(radical basis function)
sigmoid: 神经元的非线性作用函数核函数(Sigmoid tanh)
precomputed :用户自定义核函数
究竟用哪一种核函数取决对数据处理的要求,不过建议一般都是使用RBF核函数。因为RBF核函数具有良好的性态,在实际问题中表现出了良好的性能。

这里的probablity estimate是什么意思。需要进一步了解。