1.参考网站:

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

2.操作流程:

请注意:详细操作流程请参考上面的“详解”网站,这里只说大框架和详解里没有提到的问题。

A.设置path

File->set path ->add with subfolders->加入libsvm-3.11文件夹的路径

B. 在matlab中编译

目的:将libsvm-3.11\matlab 中 libsvmwrite.c 等 C++文件编译成 libsvmread.mexw32 等matlab文件,这样就可以在command window中被直接调用了。

注意:在最外面的Readme中有提到已经有编译好的文件,比如在libsvm-3.11\windows中也会看到libsvmread.mexw32,但这里不要被误导!还是需要你自己再编译一遍的!

如果是最新版MATLAB,mex过程有点不一样,具体如下:

>>mex –setupMEX 配置为使用 'Microsoft Windows SDK 7.1 (C)' 以进行 C 语言编译。
Warning: The MATLAB C and Fortran API has changed to support MATLABvariables with more than 2^32-1 elements. In the near futureyou will be required to update your code to utilize thenew API. You can find more information about this at:http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
要选择不同的语言,请从以下选项中选择一种命令:mex -setup C++ mex -setup FORTRAN

我们要选择的是C++编译器:

>> mex -setup C++
MEX 配置为使用 'Microsoft Windows SDK 7.1 (C++)' 以进行 C++ 语言编译。
Warning: The MATLAB C and Fortran API has changed to support MATLABvariables with more than 2^32-1 elements. In the near futureyou will be required to update your code to utilize thenew API. You can find more information about this at:http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.

这样就可以执行make过程了:

>> make
使用 'Microsoft Windows SDK 7.1 (C)' 编译。
MEX 已成功完成。
使用 'Microsoft Windows SDK 7.1 (C)' 编译。
MEX 已成功完成。
使用 'Microsoft Windows SDK 7.1 (C++)' 编译。
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmtrain.exp
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmtrain.exp
MEX 已成功完成。
使用 'Microsoft Windows SDK 7.1 (C++)' 编译。
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmpredict.exp
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmpredict.exp
MEX 已成功完成。
>>

C.加载数据集

就是这里搞了我一下午!

加载数据集

load heart_scale ;

有两个数据集,一个是C++的, 一个是matlab的。libsvm库中下载的是C++数据,

所以matlab加载我们下载的heart_scale是会报错的:

法1、下载matlab数据集(http://download.csdn.net/detail/abcjennifer/4215779)

法2、用libsvmread而非load.

这样就可以加载数据集了,完成该步骤后发现Workspace中出现了heart_scale_inst 和 heart_scale_label,说明正确。

ok,下一步我们来测试svm的训练和predict

D.train & predict

>> [heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');
>> model = libsvmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
*
optimization finished, #iter = 134
nu = 0.433785
obj = -101.855060, rho = 0.426412
nSV = 130, nBSV = 107
Total nSV = 130
>> [predict_label, accuracy, dec_values] = libsvmpredict(heart_scale_label, heart_scale_inst, model);
Accuracy = 86.6667% (234/270) (classification)

3.总结

本文借鉴了浙大天才美女http://blog.csdn.net/abcjennifer/article/details/7370177得很多内容,主要在补充了新版MATLAB下的一些编译细节。此外,对于编译后报的“没找到”不用管,不影响。
如果测试后没有Accuracy输出或输出为空,应该采用三个参量的返回值。具体如下:
>> [predict_label, accuracy, dec_values] = libsvmpredict(heart_scale_label, heart_scale_inst, model);
Accuracy = 86.6667% (234/270) (classification)

再次表示感谢!

Matlab中配置LibSVM 总结相关推荐

  1. 在Matlab中配置libsvm

    一般步骤: 1.下载libsvm安装包,下载后解压,建议将解压文件放在Matlab安装路径的toolbox文件夹下"..\MATLAB\R2014a\toolbox\libsvm-3.24& ...

  2. MATLAB中使用LIBSVM进行SVM参数寻优

    MATLAB中使用LIBSVM进行SVM参数寻优 一些资源网站 配置 svmtrain svmParams -t:表示选择的核函数类型 -g为核函数的参数系数 -c为惩罚因子系数 -v为交叉验证的数, ...

  3. matlab中使用libsvm工具箱训练的svm分类器model保存

    参考自:https://blog.csdn.net/icestone007/article/details/6804150 最近自己做的项目因为用到SVM分类,使用的是matlab中使用libsvm工 ...

  4. matlab的libsvm程序,matlab中安装Libsvm 步骤

    源自:http://blog.sina.com.cn/s/blog_4fe347e60101h5uz.html 一.下载libsvm 在libsvm的网站上下载 libsvm-3.12.zip文件,解 ...

  5. matlab中的libsvm怎么录入数据啊,LibSVM在MATLAB中使用时的几个问题

    在科研中需要用到支持向量机(Support Vector Machines, SVM)来进行分类,而目前比较成熟的用于实现SVM的软件包则首推LibSVM.LibSVM目前的版本已经能直接在MATLA ...

  6. 在matlab中配置vlfeat

    在VLFeat官网上是这么介绍VLFeat的:VLFeat开源库实现了很多著名的机器视觉算法,如HOG, SIFT, MSER, k-means, hierarchical k-means, aggl ...

  7. matlab2015b vlfeat,在matlab中配置vlfeat

    言归正传,以下介绍vlfeat在mathlab中的配置方法: 一.首先应准备的东西: 1. Matlab软件(我使用的mathlab是2013b试用版的) 2. vlfeat文件,可以是二进制包,也可 ...

  8. matlab使用mex,c – 如何在Matlab中配置MEX功能

    分析MEX文件是棘手的,因为MEX文件是共享库.在 Linux上使用标准'gprof'方法无法做到这一点 – gprof根本不这样做.我尝试使用sprof,但是我得到了 "PLTREL no ...

  9. 【CUDA7.5】MATLAB中配置Win7+Matlab R2015b+CUDA7.5+vs2013配置方法

    1.我的版本组合:Win7+Matlab R2015b+CUDA7.5+vs2013 CUDA7.5下载地址为: http://developer.download.nvidia.com/comput ...

最新文章

  1. mysql error104528000_腾讯云服务器CentOS安装JDK+Tomcat+MySQL详细步骤(以及遇到的各种坑)...
  2. 复地集团的现代化办公方案
  3. 基于XMPP协议的aSmack源码分析
  4. KMP 中next 数组的性质
  5. springboot 主键重复导致数据重复_程序员:MySQL处理插入过程中主键或唯一键重复值的解决办法
  6. 时序数据库timescaleDB安装
  7. Node.js 系列翻译---console
  8. 安卓端和IOS端小程序蓝牙通讯问题
  9. c++ qt5范例开发大全_237页建设工程监理内业资料全套范例,附百份案例表格,快拿走...
  10. CSDN blog 还需要继续改进
  11. 矩阵分析 (六) 矩阵的函数
  12. Thinking in Java 14.3.3递归计数
  13. ie8和ie11的html代码生成,ie8升级ie11-IE11,IE8
  14. ECshop新手入门模板制作教程[转载]
  15. 网络编程——CS模型(总结)
  16. python语言由psf组织所有、这是一个商业组织_智慧职教云课堂APP店长实务答案搜题公众号...
  17. 【前端html页面数据导出为pdf文件】
  18. 有哪些好玩有趣的国内外网站值得分享?
  19. 全面解析大数定律:大数定律实现超额增长!
  20. 宽带电视显示服务器错误是什么意思,智能电视提示“WiFi登录失败”什么原因?当贝市场告诉你...

热门文章

  1. aspnet_regsql在哪里 怎么运行它 以及功能介绍
  2. HD 1003 Max Sum(贪心)
  3. 最长公共子序列问题 (LCS)
  4. new与malloc的区别,以及内存分配浅析
  5. NYOJ 714 Card Trick
  6. ZooKeeper: 简介, 配置及运维指南
  7. 自动发送邮件(整理版)
  8. Visual LISP 第5章 编辑源程序代码(1)文本编辑工具
  9. 003.XE3包含了TPerlRegEx的单元
  10. [EF4] CompiledQuery预编译性能提升 + 数据载入之大彻大悟