Matlab 安装libsvm【Win10自测可用】

SVM最好的工具是libsvm,由于该工具由C++编写,所以在matlab调用中需进行编译。本人查阅了一下午的博客,并以此来参考进行安装,感觉大多数博客介绍不够系统清楚,最后综合了好几篇才成功安装,记录以供参考。

1、libsvm下载

下载地址 https://www.csie.ntu.edu.tw/~cjlin/libsvm/
最新版是3.23
很多博客里面说需下载一些测试数据集,这个先不着急,libsvm里面自带了一个。
数据集地址为:
https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/

2、解压并添加路径

  1. 解压
    将libsvm.zip文件夹解压到安装Matlab的toolbox文件夹下,我的路径为:“D:\Matlab 2016a\install\toolbox”;
    在这里插入图片描述
  2. matlab中添加路径
    主页-设置路径-选择“libsvm”在toolbox中的路径,保存。
    在这里插入图片描述
    【2021年3月18日补充】
    除了要添加上述路径外,建议将该路径下的matlab也添加进去,目的是在非toolbox路径下也可以使用。【我已经使用了最新的版本3.2.4】
    【主页】——【环境】——【设置路径】——【添加文件夹】——【保存】
    在这里插入图片描述

3、编译

  1. mex -setup
    如果没有安装C++的开发环境,在matlab的命令行输入上述命令,会出现“错误使用mex的提示,并要求安装MinGW-w64 C/C++编译器”;如果之前已有VS2010或VS2013等,可依据依据选择编译器。
    (1)安装MinGW-w64 C/C++编译器
    可以用matlab提供的链接打开,但是我这边无法下载MinGW-w64 C/C++;推荐使用下面的方式,但是matlab提供了相应的说明,有一点比较重要,值得注意
    参考博客【http://blog.sina.com.cn/s/blog_167bbdec10102x113.html】 以及在已有MinGW文件的时候如何为Matlab配置【https://ww2.mathworks.cn/matlabcentral/answers/313298-i-already-have-mingw-on-my-computer-how-do-i-configure-it-to-work-with-matlab】
    在安装编译器的时候不要选择更新
    【更新:2021-03-18】
    上面的很多链接无法打开了,目前使用的MinGW-w64版本是tdm64-gcc-5.1.0-2,可以从网上下载。双击该exe后,不要选择升级(我从官网找了很多高版本的不知道如何使用),否则会报错,一直不能安装。
    在这里插入图片描述

默认路径安装,会放在C盘(系统盘)根目录下;
(2)配置环境变量
步骤跟java配置环境变量基本相同。
右击电脑——属性——高级系统设置——高级选项卡——【环境变量】
在系统变量一栏下选择【新建】,变量名为“MW_MINGW64_LOC”,变量值为“C:\ TDM-GCC-64”
在这里插入图片描述
(3)matlab中配置为临时变量
在matlab命令窗口中输入以下命令,将MW_MINGW64设置为临时环境变量

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

(4)选择编译器
在matlab命令窗口中输入以下命令,

mex -setup

在这里插入图片描述
输入

mex -setup C++
  1. 编译
    将matlab中的文件路径调整到“D:\Matlab 2016a\install\toolbox\libsvm-3.23\matlab”
    在命令窗口,输入make命令,该文件路径下有个make.m文件。
    在这里插入图片描述
    会出现没有该文件或路径的提示。
    根据博客【https://blog.csdn.net/qq_15767429/article/details/79641758】、 【https://blog.csdn.net/chensheng312/article/details/73195158#comments】 【https://blog.csdn.net/qq_41670192/article/details/80241296】 中的修改方法,将make.m文件中的CFLAGS全部替换为COMPFLAGS,修改完后保存。
    在这里插入图片描述
    然后,再在命令窗口输入make,会出现编译成功的提示。
    在这里插入图片描述

4、toolbox路径下的调用测试

  1. 修改函数名

svmtrain与matlab中自带的svm工具的函数名相同,为避免后续使用麻烦,建议将后缀名为mexw64的svmtrain文件更改为libsvmtrain.mexw64,为保持统一,我都改为了lib开头的函数。不需要修改.c文件
在这里插入图片描述

  1. 分类测试
    将libsvm文件夹下的“heart_scale”文件复制到\libsvm-3.23\matlab\路径下,输入以下命令
[heart_scale_label,heart_scale_inst] =libsvmread('heart_scale');
model = libsvmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
[predict_label, accuracy, dec_values] = libsvmpredict(heart_scale_label, heart_scale_inst, model);

在这里插入图片描述

5、任意路径下测试

在某一路径下新建文件夹,将heart_scale放到该目录下,新建test.m文件,并复制上一段代码执行。

在这里插入图片描述

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值