Matlab安装libsvm

svm原本是用来一个解决二分类问题,也就是说在所有数据集之间,通过标签不同,找出一个最优的超平面(如果原始数据为二维,那么这个超平面就是一条直线),这个跟感知机有点相似,但是这个地方svm通过约束寻求最优解。下面在windows操作系统下matlab r2016a下安装libsvm工具箱。并进行svm实验。步骤如下:

1.下载并解压。

2.编译。

3.测试

1.下载并解压,下载地址libsvm,将下载到的zip文件解压到想要安装目录文件,建议小白放在自己知道的位置,不要讲随意放在matlab成安装文件里面(非小白可以放在matlab的tools下面),然后解压,下面是我的目录文件。

Matlab安装libsvm

2.编译可以通过解压后文件夹里面的matlab找到README文件,在matlab窗口下可以看到如下信息:图示显示的很清楚就是通过make编译得到四个mex的文件。

Matlab安装libsvm,非小白可以按照readme进行操作。接下来的也大部分是按照其进行操作的,并且将可能遇到的错误进行解读。

Matlab安装libsvm

1.1输入mex -setup,如果出现下面的可以输入第一行的mex -setup C++,如果出现没有GCC或者编译器什么的,可以百度,进行安装。

1.2输入mex -setup C++

Matlab安装libsvm

出现这个之后就可以进行第三步。

1.3输入make

我的在网站上下载的会出现这个错误。通过错误代码知道make.m这个文件的line 13出现了错误,找不到对应的文件。

Matlab安装libsvm

通过百度知道了解决办法,那就是将make.m文件里面的CFLAGS替换为COMPFLAGS,如图,我将13到16行的代码复制,并更改。然后再make就可以了

Matlab安装libsvm

Matlab安装libsvm,

细心的你会发现左边文件框会出现四个新文件出来,都是mexw64后缀的文件。这个就是我们要使用的文件。

3.测试

进入工具箱的根目录,会发现有个heart_scale文件。在编辑框输入一下代码,进行测试。

[heart_scale_label,heart_scale_inst]=libsvmread('heart_scale');

model = svmtrain(heart_scale_label,heart_scale_inst) ;

[predict_label,accuracy,dec_values] = svmpredict(heart_scale_label,heart_scale_inst,model);

Matlab安装libsvm

出现下面的表示已经安装好了,具体的使用可以参考readme文件。