Libsvm的完整安装过程以及如何在Matlab2018a中配置MinGW-w64 C/C++ 编译器

在安装Libsvm的过程中,我遇到了很多问题,参考了这些大神的博客,最终成功安装。在此非常感谢这些人。

以下是我完整的安装过程(本人用的matlab版本是matlab2018a,Win10系统):

总的参考博客:https://blog.****.net/qq_31781741/article/details/82666861

1.官网下载Libsvm安装包

Libsvm官网:https://www.csie.ntu.edu.tw/~cjlin/libsvm/

有一点注意就是下载完后务必要把Libsvm安装包放在当前路径下,然后开始下一步。

2.命令窗口执行mex -setup,找不到编译器需要这一步,自己下载编译器

参考博客:https://blog.****.net/dengxiong_bright/article/details/84101889

安装完成后,命令行输入

%matlab每次运行添加环境变量

 setenv('MW_MINGW64_LOC','C:\TDM-GCC-64'), 

%或者直接系统添加。

再 mex -setup 

3.然后执行命令make,注意执行的时候要在libsvm路径下的matlab文件夹下

然后会发现执行不了,提示你没有编译器。

解决办法,参考博客:

打开当前路径下的libsvm—matlab-make.m文件,把m文件中的四个值替换为COMPFLAGS即可

https://www.ilovematlab.cn/forum.php?mod=viewthread&tid=566442

再执行make,结果如下,安装成功

Libsvm的完整安装过程以及如何在Matlab2018a中配置MinGW-w64 C/C++ 编译器

4.make成功后把生成的四个文件放在matlab安装目录bin下的win64中

参考博客:https://blog.****.net/u012824097/article/details/61195288

5.测试自己是否安装成功Libsvm
按照网上最常见的测试方法,来进行一下测试。

将Libsvm文件下的测试数据集heart_scale复制到Libsvm\matlab下,后续的操作将在该文件夹下进行,同时将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);

(该行代码也可以只有一个输出值predict_label,看到过一个测试教程里给了双输出值的模式,愣是跑不出来,最后在Libsvm\matlab\README中看见了格式,在此希望新手们仔细阅读Libsvm\README 和Libsvm\matlab\README,前者介绍svm的命令,后者介绍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);
*

结果:
optimization finished, #iter = 162
nu = 0.431029
obj = -100.877288, rho = 0.424462
nSV = 132, nBSV = 107
Total nSV = 132
Accuracy = 86.6667% (234/270) (classification)
>> 

Libsvm的完整安装过程以及如何在Matlab2018a中配置MinGW-w64 C/C++ 编译器