LIBSVM安装教程

"本篇是我借鉴了很多教程经验总结出来的,希望对大家有帮助。"

在使用Matlab工具包Libsvm时,需要对相关文件进行编译。

在Matlab中使用mex -setup时提示 未找到支持的编译器或SDK,Matlab推荐使用mingw64,那就安装吧。

编译器我下的是TDM-GCC 地址:http://tdm-gcc.tdragon.net/download

下载TDM-GCC(注意看清是32位还是64位),TDM-GCC的安装路径不要包括空格;然后新建环境变量MW_MINGW64_LOC,设置为TDM-GCC-64的安装位置; 默认安装在C:\TDM-GCC-64,然后进计算机>属性>高级属性>系统变量,新建系统变量 MW_MINGW64_LOC,变量值为C:\TDM-GCC-64。重启matlab,,输入mex -setup就能显示出来MinGW64编译器了。根据提示选择需要的编译器.

LIBSVM安装教程_第1张图片

进入matlab文件夹,执行make语句。出现gcc: error: \-fexceptions: No such file or directory错误。

 修改make.m文件,将CXXFLAGS换成COMPFLAGS

此时输入MAKE就会出现第5步的错误,然后按照楼主的改一下MAKE.M文件重新输入就可以了

LIBSVM安装教程_第2张图片

这时候就像以前安装libsvm一样,会自动make出来很多文件,不用管,主要是会看到make出带有mexm64后缀名的文件,这就成功了。

LIBSVM安装教程_第3张图片

5、拷贝4步骤中matlab文件夹下所有make出来的文件,到libsvm-3.1\windows文件夹下,替换替换替换……,统统替换。

 

LIBSVM安装教程_第4张图片编译完成后,在当前目录下回出现svmtrain.mexw64、svmpredict.mexw64(64位系统)或者svmtrain.mexw32、svmpredict.mexw32(32位系统)这两个文件,把文件名svmtrain和svmpredict相应改成libsvmtrain和libsvmpredict。

 

这是因为Matlab中自带有SVM的工具箱,而且其函数名字就是svmtrain和svmpredict,和LIBSVM默认的名字一样,在实际使用的时候有时会产生一定的问题,比如想调用LIBSVM的变成了调用Matlab SVM。

LIBSVM安装教程_第5张图片

 

添加路径

为了以后使用的方便,建议把LIBSVM的编译好的文件所在路径(如C:\libsvm-3.17\matlab)添加到Matlab的搜索路径中。具体操作为:(中文版Matlab对应进行)

 

HOME -> Set Path -> Add Folder -> 加入编译好的文件所在的路径(如C:\libsvm-3.17\matlab)

 

当然也可以把那4个编译好的文件复制到想要的地方,然后再把该路径添加到Matlab的搜索路径中。

验证是否成功:使用数据libsvm试验数据下载可以将下载后的heart_scale.mat数据复制到刚才的目录下(其实无所谓)。然后输入libsvm工具箱特有的语句,就可以验证成功与否了:

>> 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);

LIBSVM安装教程_第6张图片

输出:

*

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)

 

得到了分类精度,这就证明libsvm安装成功!

你可能感兴趣的:(LIBSVM安装教程)