LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题;并提供了交互检验(Cross Validation)的功能。

官方网站:http://www.csie.ntu.edu.tw/~cjlin/libsvm/

最近版本可以在上述官方网站中下载,也可以去他们的官方Github项目页去下载。如果网络不畅通,我也上传了3.21版本到百度云,自行下载(链接:http://pan.baidu.com/s/1cLrsFO 密码:h9zx)。

由于在64位的matlab R2015b下使用mex -setup 编译会报以下异常:

MEX 配置为使用 'Microsoft Visual C++ 2013 Professional (C)' 以进行 C 语言编译。
警告: MATLAB C 和 Fortran API 已更改,现可支持
	包含 2^32-1 个以上元素的 MATLAB 变量。不久以后,
	 您需要更新代码以利用
	 新的 API。您可以在以下网址找到相关详细信息:
	 http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。

要选择不同的语言,请从以下选项中选择一种命令:
 mex -setup C++ 
 mex -setup FORTRAN

后来发现可以依照libsvm提供的最原始办法make命令可以解决。

具体步骤如下:

1、下载最新版的libsvm,目前最新版本为3.21;

2、解压libsvm,建议放在matlab程序目录下的toolbox文件夹,具体位置看个人喜好;

3、在matlab中设置路径,添加并包含子文件夹,将libsvm整个文件夹都加载进去;

4、切换matlab运行目录至:D:\Program Files\MATLAB\R2015b\toolbox\libsvm\matlab(这个路径只是在我电脑上的路径),在命令行输入make,也就是该目录下的那个make文件。这时候会自动make出来很多文件,会看到make出带有mexm64后缀名的文件,这就成功了。

5、将第4步make出来的文件复制粘贴到D:\Program Files\MATLAB\R2015b\toolbox\libsvm\windows(即上级目录下的windows文件夹)下,覆盖掉原有的文件。

6、验证是否能够正常运行。使用libsvm数据测试,可以到官方网站里面的数据集下载测试数据(https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary.html#heart),也可以直接下载整理后的数据,里面也有数据的一些说明(下载地址:http://pan.baidu.com/s/1eSdPLcQ 密码:g42u):

加载上述压缩包中的heart_scale数据,在matlab中执行下述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);

如果输出如下结果:

*
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安装成功。

最后修改:2021 年 07 月 29 日
如果觉得我的文章对你有用,请随意赞赏