Libsvm工具包的安装教程

libsvm与MATLAB自带svm工具箱的区别

在MATLAB中,同样自带了一个svm工具箱,不过相比于libsvm,在功能性和易用性方面有一些差距。具体差别表现在:

(1)MATLAB自带的svm实现函数仅支持分类问题,不支持回归问题;而libsvm不仅支持分类问题,亦支持回归问题。
(2)MATLAB自带的svm实现函数仅支持二分类问题,多分类问题需按照多分类的相应算法编程实现;而libsvm采用一对一方法支持多分类。
(3)MATLAB自带的svm工具箱无法改变高斯核函数中的参数,而libsvm可以。
(4)MATLAB自带的svm工具箱也有一些优点,比如在解决二次规划问题时,可选三种方法(经典二次方法;SMO;最小二乘),而libsvm只能是SMO。

(以下的安装方法以MATLAB 2016以上版本为例,因为MATLAB2016及以上版本才可以支持以上的mexw64文件)
我的matlab版本是MATLAB2018a,接下来是我的完整安装步骤

1.libsvm的下载
在libsvm的官方主页上(https://www.csie.ntu.edu.tw/~cjlin/libsvm/)可以下载libsvm的扩展包,支持MATLAB、Java、Python等多种语言,这里我们选择MATLAB版本,下载zip文件即可。

2.添加到toolbox
解压后放在任意目录下,最好放在MATLAB工具箱中,比如D:\Program Files (x86)\Tencent\MATLAB2018\toolbox
下面将libsvm包添加到路径中,具体步骤如下图:



保存后即可关闭。

3.编译
在刚刚的libsvm的路径下的MATLAB中进行编译,即libsvm-3.21\matlab\make.m运行

在命令行输入 mex -setup(之间有空格)

出现错误,这是因为我的电脑没有装编译器,不要慌,我们去装一个编译器就好了
(安装编译器的方法请看步骤5,如果有编译器可直接跳过!!!)
安装完编译器后,在命令行输入 make


出现错误,这个是需要将make中的CFLAGS改为COMPFLAGS;修改结果如下:

再次输入make,编译成功。编译成功后,matlab文件夹中会生成四个.mexw64文件

将这四个文件复制到windows目录中进行替换

4.测试
从libsvm文件夹中找到heart_scale数据集,复制到matlab文件夹中


测试运行,在matlab路径下输入以下代码:

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

运行结果:

至此,运行成功!输出预测精度,libsvm就安装好了!!撒花完结~

5.安装编译器
如果电脑有编译器的可跳过
这里直接装MinGW-W64 C/C++编译器了,下载地址:https://jmeubank.github.io/tdm-gcc/
建议直接安装到C盘目录下(原因不清楚,就看到很多大佬这样说…)

设置系统变量,变量名:MW_MINGW64_LOC;变量值:MinGW-W64所在的位置。我的结果如下:

在命令行窗口输入setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’)安装完成。
再次输入 mex -setup -v就可以看到编译器了

显示安装完成!

更多推荐

SVM之Libsvm工具包的安装教程