源自:http://blog.sina.com.cn/s/blog_4fe347e60101h5uz.html

一.下载libsvm

在libsvm的网站上下载 libsvm-3.12.zip文件,解压后放在任意目录下,最好放在MATLAB工具箱中,比如 C:\Program Files\MATLAB\R2011a\toolbox\libsvm-3.12下。

二.配置编译器

打开 matlab,切换到C:\Program Files\MATLAB\R2011a\toolbox\libsvm-3.12\matlab目录下,键入以下命令:

mex –setup

出现提示语句

Please choose your compiler for building MEX-files:

Would you like mex to locate installed compilers [y]/n?n %这次是选择编译器,输入n,选择自定义的编译器

出现以下选项(因电脑而异)

Select a compiler:

[1] Intel C++ 11.1 (with Microsoft Visual C++ 2008 SP1 linker)

[2] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 SP1 linker)

[3] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 Shell linker)

[4] Lcc-win32 C 2.4.1

[5] Microsoft Visual C++ 6.0

[6] Microsoft Visual C++ 2005 SP1

[7] Microsoft Visual C++ 2008 SP1

[8] Microsoft Visual C++ 2010

[9] Microsoft Visual C++ 2010 Express

[10] Open WATCOM C++

[0] None

Compiler: 8%可以用其他的,出现以下提示语句

Your machine has a Microsoft Visual C++ 2010 compiler located at

C:\Program Files\Microsoft Visual Studio 10.0. Do you want to use this compiler [y]/n?

编译器默认路径,确认正确输入y,更改路径,输入n

输入y出现再次确认

Please verify your choices:

Compiler: Microsoft Visual C++ 2010

Location: C:\Program Files\Microsoft Visual Studio 10.0

Are these correct [y]/n? y

编译器配置完成

Trying to update options file: C:\Documents and Settings\zhangduokun\Application Data\MathWorks\MATLAB\R2011a\mexopts.bat

From template: C:\PROGRA~1\MATLAB\R2011a\bin\win32\mexopts\msvc100opts.bat

Done . . .

三.编译

输入命令

>> make

>>

%编译完成

系统就会生成svmtrain.mexw32,svmpredict.mexw32,libsvmread.mexw32和libsvmwrite.mexw32等文件(对于Matlab 7.1以下上版本,生成的对应文件为svmtrain.dll,svmpredict.dll和 read_sparse.dll,没做测试),然后可以在matlab的菜单 File->Set Path->add with subfolders(可直接用Add Folder)里,把C:\Program Files\MATLAB\R2011a\toolbox\libsvm-3.12\matlab目录添加进去,这样以后在任何目录下都可以调用 libsvm的函数了。

四.测试

为了检验 libsvm和 matlab之间的接口是否已经配置完成,可以在 matlab下执行以下命令:

>>load heart_scale

完成该步骤后发现Workspace中出现了heart_scale_inst和 heart_scale_label,说明正确

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

Accuracy = 86.6667% (234/270) (classification)% done

如果运行正常并生成了model这个结构体(其中保存了所有的支持向量及其系数),那么说明libsvm和matlab 之间的接口已经完全配置成功。

附:

如果你没有 heart_scale.mat(官方现在都不给了,给的都是VC++下的格式 所以load 会报错:heart_scale must be same as previous lines)

所以必须使用给的一个函数,转化数据此函数为libsvmread()

使用如下: [label_vector, instance_matrix] = libsvmread('filename');

此处为了跟官方统一名称可以[heart_scale_label,heart_scale_inst] = libsvmread('heart_scale');

由于heart_scale在libsvm-3.11目录下,不是在matlab下,所以直接用libsvmread命令会报错,要买改变当前路径,或者使用[heart_scale_label,heart_scale_inst] = libsvmread('../heart_scale');../代表返回上层路径。

注意:

1. matlab自带了C编译器Lcc-win32C,但是libsvm原始版本是C++实现的,因此需要C++的编译器来编译,这就是不适用matlab默认编译器而选择其他C++编译器的原因。

matlab支持的编译器也是有限的,可以查看不同版本matlab支持的编译器列表

2. 如果matlab版本太低,如matlab 7.0是不能用VS作为编译器的,只能用VC++ 6.0

3. .mexw32 文件是经过加密的,打开是乱码,函数本身没有帮助。

例如输入 help svmpredict会出现报错: svmpredict not found

工具箱libsvm-3.12\matlab中README文件才是帮助文件。

但是输入help svmtrain会出现帮助信息,其实出现的是系统自带的svmtrain函数,没有libsvm工具箱中的好用。

4.在新版本libsvm3.12中,文件夹libsvm-3.12\windows中已经有编译好的程序,可以直接使用,只需要把libsvm-3.12\windows添加到matlab路径中即可,不需要编译的过程。当然最好还是自己编译一遍,因为编译环境不同会导致一些不可预估的小问题,自己编译的过程是可控的。

5. 测试用数据集,libsvm官网上提供了很多数据集

测试使用的heart_scale数据集是C++版本的(类标签 1:第一个属性 2:第二个属性…),可以用libsvmread来转换为matlab版本的(它们的区别在类标签)。

[label_vector, instance_matrix] = libsvmread(‘C++版本数据集’); %得到类标签和属性矩阵,然后可以使用它们训练了model = svmtrain(label_vector, instance_matrix);

>> load heart_scale

>> model = svmtrain(heart_scale_label,heart_scale_inst);

*

optimization finished, #iter = 162

nu = 0.431029

obj = -100.877288, rho = 0.424462

nSV = 132, nBSV = 107

Total nSV = 132

>> [predict_label,accuracy] = svmpredict(heart_scale_label,heart_scale_inst,model);

Accuracy = 86.6667% (234/270) (classification)

6.参考资料

libsvm库下载:http://www.csie.ntu.edu.tw/~cjlin/libsvm/

视频:http://v.youku.com/v_showMini/id_XMjc2NTY3MzYw_ft_131.html(有小问题,等下会提到)

详解:http://www.matlabsky.com/thread-11925-1-1.html

matlab的libsvm程序,matlab中安装Libsvm 步骤相关推荐

  1. matlab中安装libsvm时No supported compiler or SDK was found问题

    1. 安装libsvm时No supported compiler or SDK was found问题解决方法 参照帖子23楼解决方法:http://www.ilovematlab.cn/threa ...

  2. matlab的lsm程序,matlab设计基础lsm

    MATLAB 环境下 ISI 信道仿真及自适应均衡器设计程序说明一.系统模型 统计误码...ISI 信道仿真及 LSM 算法自适应均衡器原理 1.发送端和接收端滤波器的级联和...... 独立基础设计 ...

  3. Fedora中安装 Shutter步骤介绍

    这个快速指南解释了在 Fedora 34 及以上版本中安装 Shutter 所需的步骤. 截图工具有很多替代和选择.但在我个人看来,没有一个能接近 Shutter 的灵活性.不幸的是,由于各种依赖性问 ...

  4. 微信小程序:小程序开发中申请优惠券步骤

    在微信小程序开发过程中,尤其是打算在微信小程序上面出售商品的,一般都会涉及到优惠券的使用或者发放的功能,本章就来介绍一下微信小程序的申请优惠券的功能. 值得注意的一点是,微信小程序关联的微信公众号里面 ...

  5. centos mysql 安装教程_CentOS中安装MySQL步骤详解

    本文中Linux环境为CentOS 6.4 32位,且安装选择的是Basic Server版. 在有些Linux版本中会自带有MySQL数据库,所以在安装之前,需要检查当前Linux环境中是否已有My ...

  6. centos7中安装mysql步骤及命令教程

    centos7(linux)中安装mysql安装步骤及命令教程 1.首先检查是否有安装过mysql,命令如下: rpm -qa | grep mysql 输入该命令之后返回为空,即没有安装. 2.这里 ...

  7. VMware虚拟机中安装win10步骤及所遇到的问题

    虚拟机中安装win10所遇到的2个主要问题: 没有可用的映像 对于这个问题主要是因为你在选择镜像时,选择的是第一项或者第二项,导致在安装时系统会自动生成一个软盘,这个你可以在设置中查看到,就是因为这个 ...

  8. matlab 好玩的程序,MATLAB中几个比较有用的程序

    MATLAB中几个比较有用的程序 程序一%function 画x(n)=K*exp(a+b*j)*n j 虚指数 % Edit time 2012/3/13 % Editor 何飞 a=input(' ...

  9. matlab 判断颜色程序,MATLAB中的颜色控制

    1.色图颜色调配命令 在MATLAB中,控制及实现颜色调配的主要命令为colormap,它的使用格式如下: 调用格式                                         说 ...

最新文章

  1. Linux获取系统当前时间(精确到毫秒)
  2. bst latex 最大作者数_latex bst文件怎么用
  3. springboot controller 参数绑定
  4. CXF的webservice接口中字符串参数中文问题
  5. Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(10)...
  6. linux线程一直在增加,在.net core中遇到的奇怪问题:内存与线程数一直增长
  7. 其实大学老师在剑桥读博士,好像录取不难
  8. 完成DI 依赖注入功能
  9. 时光机穿梭---工作区和暂存区
  10. mysql 唯一索引 二叉法_mysql 唯一索引
  11. AndroidStudio_安卓原生开发_保存全局数据---Android原生开发工作笔记141
  12. 关于美颜滤镜您了解多少?
  13. Jmeter IP欺骗
  14. 香港服务器的数据泄露是什么?怎样预防?
  15. short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
  16. 美通企业日报 | 网龙互动白板获德国红点设计奖;芬美意在华开设全球最大食用香精厂...
  17. 【小米手环7】使用 Zeus + 表盘自定义工具 为小米手环7开发和安装小程序
  18. Appium 屏幕截图(交易宝)
  19. 黑马程序员——集合框架
  20. Redis数据库中Hash哈希的介绍,常用命令和应用场景

热门文章

  1. Zabbix常用监控项
  2. 相当不错的清晖项目管理公开课
  3. 中国信通院发布《大数据白皮书(2019年)》(附PPT解读及下载链接)
  4. 9.数电复刻 之 CMOS反相器+其他类型CMOS门电路
  5. Win10启动Telnet方式
  6. OAF页面上传、导入、发布
  7. Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter
  8. 海量数据挖掘 - 读书笔记 - 第三章:寻找相似的项目
  9. Python在气象与海洋中的技术应用
  10. Visual Studio 设置编写C语言步骤