MATLAB安装libsvm工具箱的方法
支持向量机(support vector machine,SVM)是机器学习中一种流行的学习算法,在分类与回归分析中发挥着重要作用。基于SVM算法开发的工具箱有很多种,下面我们要安装的是十分受欢迎的libsvm工具箱。
libsvm简介
LIBSVM 是台湾大学林智仁(Lin Chih-Jen)副教授等开发设计的一个简单、易于使用和快速有效的 SVM 模式识别与回归的软件包,它不仅提供了编译好的可在 Windows 系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用; 该软件还有一个特点,就是对 SVM 所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数就可以解决很多问题;并且提供了交互检验(Cross-SVM回归等问题,包括基于一对一算法的多类模式识别问题。
libsvm与MATLAB自带的svm工具箱的区别
在MATLAB中,同样自带了一个svm工具箱,不过相比于libsvm,在功能性和易用性方面有一些差距。具体差别表现在:
- MATLAB自带的svm实现函数仅支持分类问题,不支持回归问题;而libsvm不仅支持分类问题,亦支持回归问题
- MATLAB自带的svm实现函数仅支持二分类问题,多分类问题需按照多分类的相应算法编程实现;而libsvm采用一对一方法支持多分类
- MATLAB自带的svm工具箱无法改变高斯核函数中的参数,而libsvm可以
- MATLAB自带的svm工具箱也有一些优点,比如在解决二次规划问题时,可选三种方法(经典二次方法;SMO;最小二乘),而libsvm只能是SMO。
常见的扩展为多分类的方法有:
一对一(one-versus-one)方法,训练时对于任意两类样本都会训练一个二分类器,最终得到k(k-1)/2个二分类器,共同组成k分类器。对未知样本分类时,使用所有的k(k-1)/2个分类器进行分类,将出现最多的那个类别作为该样本最终的分类结果。
一对多(one-versus-rest)方法:训练时依次把k类样本中的某个类别归为一类,其它剩下的归为另一类,使用二分类的SVM训练处一个二分类器,最后把得到的k个二分类器组成k分类器。对未知样本分类时,分别用这k个二分类器进行分类,将分类结果中出现最多的那个类别作为最终的分类结果。
libsvm的下载
在libsvm的官方主页上可以下载libsvm的扩展包,支持MATLAB、Java、Python等多种语言,这里我们选择MATLAB版本,下载zip文件即可。


或者直接下载我分享的文件包,点击这里下载
注意
如果是从官方主页上下载,需要再下载一个数据集[heart_scale.mat],方便之后的测试,点击这里下载。
如果是下载我分享的文件包,里面已经包含了这个数据集.mat文件,就不需要再下载了。
libsvm的安装
在\libsvm-3.23\matlab目录下,有一个README文件,详细说明了安装方法。
如果是windows 64位系统,预编译的二进制文件已经提供,在\libsvm-3.23\windows文件下,可以看到4个文件,分别是libsvmread.mexw64、libsvmwrite.mexw64、svmtrain.mexw64、svmpredict.mexw64。
这样可以跳过下面第一步的编译步骤。
1.编译
如果是win32位系统,需要自己重新编译c文件,生成MATLAB可识别的mexw32文件。编译方法在上述的README文件也有说明。
将MATLAB的工作文件夹调整到\libsvm-3.23\matlab目录下,在MATLAB的命令行窗口输入>> mex -setup,然后选择编译器如VS2010,最后输入指令>>make。编译完成后,当前路径下会生成对应的mexw32(32位系统)mexw64(64位系统)文件。
过程如下:
matlab>> mex -setup
Would you like mex to locate installed compilers [y]/n? y
Select a compiler:
[1] Microsoft Visual C/C++ version 7.1 in C:\Program Files\Microsoft Visual Studio
[0] None
Compiler: 1
Please verify your choices:
Compiler: Microsoft Visual C/C++ 7.1
Location: C:\Program Files\Microsoft Visual Studio
Are these correct?([y]/n): y
matlab>> make
注意:
我的操作系统是win7 64位,原先安装的是MATLAB2014a和VS2015,发现并不支持libsvm工具包中提供好的mexw64文件,原因是MATLAB的版本过低。
随后我考虑重新编译生成适合自己版本的mexw64文件,结果发现MATLAB2014a不支持识别VS2015,最高支持到VS2013。

所以解决方法有两种,一种是给给VS降级,一种是给MATLAB升级。由于前者涉及很多.net和c++库文件,比较繁琐,所以最方便的做法是安装新版本的MATLAB,新老版本的MATLAB只要不安装在一个文件夹下,一般不会出现干扰情况。
安装MATLAB2016及以上版本就可以支持以上的mexw64文件,同时也能识别更新的c/c++编译器。
MATLAB 2016b的下载、安装、激活方法,可以参考这个链接。
2.重命名函数
在得到libsvmread.mexw64、libsvmwrite.mexw64、svmtrain.mexw64、svmpredict.mexw64这4个文件后,为了避免和svm内置的函数冲突,最好将svmtrain.mexw64、svmpredict.mexw64这两个文件重命名为libsvmtrain.mexw64、libsvmpredict.mexw64。
3.添加到toolbox
将libsvm-3.23文件夹放置到\MATLAB R2016b\toolbox目录下;
主页> 设置路径> 添加文件夹> 选择libsvm-3.23文件夹;

添加并包含子文件夹> 选择libsvm-3.23文件夹;

主页> 预设> 常规> 更新工具箱缓存> 确定

测试
在MATLAB命令行窗口输入一下指令:
load 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);
若出现以下结果,说明安装正确。

更详细的关于libsvm的使用方法可以参考libsvm文件夹下的README文件或者是官方主页的说明。
References
- 支持向量机 - 维基百科,自由的百科全书
- MATLAB自带的svm实现函数与libsvm差别 - CSDN博客
- LibSVM 在 Matlab中的使用 - 星天炎地 | Dytan Blog
- Matlab + LibSVM + 问题集锦【20170407】 - CSDN博客
- libsvm使用说明-码农场
- MatLab2016b破解版安装教程 - CSDN博客
- LIBSVM -- A Library for Support Vector Machines
MATLAB安装libsvm工具箱的方法的更多相关文章
- matlab 基于 libsvm工具箱的svm分类遇到的问题与解决
最近在做基于无线感知的身份识别这个工作,在后期数据处理阶段,需要使用二分类的方法进行训练模型.本身使用matlab做,所以看了一下网上很多都是使用libsvm这个工具箱,就去下载了,既然用到了想着就把 ...
- MATLAB安装libsvm无法使用解决办法(转)
buaasuozi 这是原作者: 安装libsvm 不成功有可能是你的MATLAB版本或者是编译文件版本的问题,但是不要急着换其他版本....说不定就有别的解决办法呢 首先感谢Lin教授及其实验室提 ...
- 使用脚本自动配置matlab安装libsvm和随机森林工具箱
前言 支持向量机(SVM)和随机森林 都是用于分类的机器学习算法. 这里我需要对网上的工具箱在matlab中进行配置. 效果演示: 1.双击运行“自动配置.bat” 2.matlab会自动启动,手动配 ...
- MATLAB 安装 cvx 工具箱
步骤: matlab本身是没有cvx的工具箱,需要到[cvx主页],「http://cvxr.com/cvx/」上下载,菜单上有个「download」,进入后选择适合你的版本下载: 将cvx压缩包解压 ...
- 关于libsvm工具箱在64位matlab下的安装说明
LIBSVM工具箱的安装 基本方法: 1.在网上下载LIBSVM工具箱. http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 2.将LIBSVM工具箱所在目录添加到MA ...
- Matlab的libsvm的安装
最关键的是compilers的选择(对于把Microsoft visual stdio 2005或者其他的编译器安装在自定义目录下的这一步非常关键) 以下是步骤:>> mex -setu ...
- 如何在matlab里安装libsvm包
有时我们需要用到SVR(支持向量回归)方法,而 matlab 自带的svm工具箱不能做回归分析,于是有了安装libsvm包的打算. 中间遇到一些困难,比如找不到编译器等等,经过一下午和一晚上的努力,在 ...
- matlab怎么查看已安装哪些工具箱和…
问题描述:matlab怎么查看已安装哪些工具箱和它们相应的版本 解决方法:在命令行里敲击der,回车 效果:
- 遗传算法MATLAB实现(1):工具箱下载及安装
到官网下载谢菲尔德大学的GA工具箱:http://codem.group.shef.ac.uk/index.php/ga-toolbox(其实蛮不懂为什么有人把这个传到某个网上还需要积分才能下载,人家 ...
随机推荐
- 提高PHP编程技术的方法
提高PHP编程技术的方法 下面介绍的是提高PHP编程技术的几种方法. 1.PHP标签 我知道有些人写PHP代码的时候喜欢用缩略标签<? ?>,但是这可不是个好习惯,因为缩略标签在有些服务器 ...
- 59、常规控件(2)TextInputLayout-让EditText提示更加人性化
提示语用在显示. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" andro ...
- Http服务器实现文件上传与下载(五)
一.引言 欢迎大家和我一起编写Http服务器实现文件的上传和下载,现在我回顾一下在上一章节中提到的一些内容,之前我已经提到过文件的下载,在文件的下载中也提到了文件的续下载只需要在响应头中填写Conte ...
- mac上用的svn
Cornerstone是Mac上最佳的SVN管理工具 能破解最好,不会破解的表示mac的最新版本似乎对这款软件不太友好.
- VMware虚拟机Bridged(桥接模式)
转载于:https://www.linuxidc.com/Linux/2016-09/135521.htm vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT ...
- Windows(7)上那些好用的软件及优化技巧(原创)
*本文为原创内容,转载请注明作者和出处:www.cnblogs.com/wang1024 软件篇 注:以下软件在百度直接搜索软件名均可找到官网,直接官网下载即可 大众的软件哪个好: 杀毒软件专题 基于 ...
- 【IE兼容性】代码中多语言样式+IE不兼容解决
一.代码中样式根据不同语言对IE做不兼容解决 二.代码逻辑: 1. 后台返回语言信息: result.addObject("language",getLocaleStr()); ...
- 常用的mysql语句
为了方便学习mysql,把接触到的sql收集一下,忘记的时候可以查询一下. 连接mysql数据库: mysql -u 用户名 -p 输入密码. 创建数据库: create database 数据库名; ...
- Linux中搭建HTTP服务器
1.配置IP [root@localhost~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static ...
- create-trigger-insert-pwd
delimiter | drop trigger if exists default_insert_Pwd; create trigger default_insert_Pwd before inse ...