LibSVM 在matlab中的配置(包括SVDD、libsvm-faruto)

来源:互联网 发布:四物汤处方配比优化 编辑:程序博客网 时间:2024/05/16 10:03

LibSVM的配置是初学LibSVM者遇到的最麻烦的问题,网上已经有很多关于配置的教程但是质量参差不齐,很多内容已过时,本人综合网上的教程和自己的实践,整理出更为实用简洁的教程。

 

1. 需要的文件或程序:

MATLAB2010b及以后版本、VS2010及以后版本(其他版本没试过,这两个的组合肯定可以。不要装VC!装了的尽量卸载干净再装VS

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

libsvm-SVDD下载:http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/#libsvm_for_svdd_and_finding_the_smallest_sphere_containing_all_data

libsvm-faruto下载:http://www.matlabsky.com/thread-17936-1-1.html

其中libsvm库是必须的,SVDD是官方给出的SVDD扩展包,faruto是faruto大神写的libsvm扩展包,推荐使用。


2. libsvm安装流程:

A.设置path

File->setpath ->add with subfolders->加入libsvm-3.18文件夹的路径

说明:在不同的matlab版本中加入路径的方式不太一样,但是都是找到setpath。这里的libsvm-3.18是我使用的版本,自行修改。其实不需要把所有子目录都加入进matlab路径,只需要根目录和与matlab相关的目录就行,但是如果不懂的话就全加吧。


B. 在matlab中编译

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

注意:可能下载下来的文件夹中已经包含了libsvmread.mexw32或者libsvmread.mexw64等文件,不用管他,这一步还是需要的。

方法是,在command window下输入

mex -setup
这里需要选择编译器,根据提示选择就行。高版本的matlab和VS配合下这里默认匹配好了。

然后需要输入

make
然而大多数人会在这一步出错,一个可能的原因是在已经添加的路径里不只有libsvm里有make.m这个函数,matlab无法识别。解决方法是直接把libsvm3.18/matlab里的make.m拖到command window下运行。

如果能看到一串success就是成功了。

C.检测安装结果

在其他教程中,这一步往往需要load一个data,然而这个data在某些libsvm版本中并不自带。更简洁的方法是直接在command window下输入

svmtrain
如果出现了如下图所示的画面,就算安装成功了

注意:原始版本的libsvm在-s参数下是没有567的,我是安装了SVDD拓展包所以有这三个。

至此,libsvm就算安装成功了。


3.SVDD拓展配置

svdd是一种SVM衍生的单分类器,不熟悉的话就不用装这个了。安装的方法和前面基本相同。

libsvm官网下载svdd工具箱,目前使用libsvm3.18以及svdd3.18版本。

A.svdd工具箱里面有一个matlab文件夹和3个文件svm.cpp、svm.h、svm-train.c。

B.将matlab文件夹中的文件svmtrain.c覆盖原libsvm的matlab文件夹中的文件。

C.将svm.cpp、svm.h、svm-train.c这3个文件覆盖libsvm文件夹下的相同文件。

D.按本文刚开始讲述的方法进行mex -setup、make等完成安装,根据需要进行改名以及添加Path。

使用和上述同样的方法验证安装是否成功,能看见-s下567的说明就算安装成功了。


4.libsvm-faruto拓展配置

faruto大神为libsvm写了一个拓展包,里面包括了配套libsvm使用的各种函数。其中最有用的是cg参数寻优函数,免去了使用libsvm自带的.py工具的麻烦。

安装这个拓展包方法非常简单,把解压缩出来的文件夹目录添加进matlab目录里即可,方法和添加libsvm目录一样。

 

2 0
原创粉丝点击