首先告诉大家MATLAB现在可以实现多类分类的问题!但是需要借助工具箱!

下面介绍的是台湾林智仁教授的libsvm工具箱在MATLAB中的安装和使用:

安装环境:Win7、Microsoft Visual Studio 2010

MATLAB版本:R2010b

libsvm版本:libsvm-3.17.zip   下载地址:http://www.csie.ntu.edu.tw/~cjlin/libsvm/

编译器版本:Microsoft Visual C++ 2010

安装过程:

1、可以去http://www.csie.ntu.edu.tw/~cjlin/libsvm/这个网站去下载最新的SVM软件,找到Download LIBSVM,点击zip file下载,这里有我们常用的matlab语言平台。解压缩打开其中的matlab文件夹下的README文件,可以看到在matlab下该怎么编译它。解压后可以放在任意目录下,但是最好放在MATLAB工具箱中,比如 C:\Program Files\MATLAB\R2011b\toolbox\libsvm-3.17。其中C:\Program Files\MATLAB\R2011b\要替换成你的MATLAB安装的位置目录,toolbox文件夹中存放的就是各种工具箱!题外话~

2、打开 matlab,找到Current Folder,点击旁边的...弹出对话框,切换进入到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

%编译器默认路径,确认正确输入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 . . .

%编译器配置完成

3、对C++文件进行编译

%输入命令

>> make   %可能不成功,通常是路径问题,不成功的话参考这个链接:http://www.ilovematlab.cn/forum.php?ext=CB&mod=viewthread&pre_pos=7&pre_thread_id=170608&reltid=233513&tid=217493

>>

%编译完成

%如果make命令成功执行,那么你已经成功安装上libsvm了!

系统就会生成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.17\matlab目录添加进去,这样以后在任何目录下都可以调用 libsvm的函数了。

4、运行一下(应该会报错,请看注意那里)

为了检验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之间的接口已经完全配置成功。

注意:坑爹啊!

如果你的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');      %../代表返回上层路径。

libsvm的使用方法:很简单就用下面的两条语句!

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

其中:

svmtrain()函数用来训练svm分类器,svmpredict()函数用来预测分类结果。

model用来保存分类器的信息!

svmtrain()函数的第一个参数是训练样本的类别矩阵(分类结果),第二个参数是训练样本的特征矩阵(属性),第三个参数是可选的,它有很多个参数,各有各的用途,具体可参考下面的链接。

svmpredict()函数的第一个参数是测试样本的类别矩阵(真实结果,也可以自己先随便假设一个结果,没关系的),第二个参数是测试样本的特征矩阵(属性),第三个参数是分类器的模型,即model。

预测结果保存在predict_label中!分类正确率保存在accuracy中!精度信息保存在dec_values中!

请注意:heart_scale_label矩阵的维数和heart_scale_inst矩阵的维数必须一样,否则可能会报错。

如果你安装和使用过程中还有问题,请参考下面的链接,相信能找到你需要的东西!

http://zhan.renren.com/nvzuiqiang?gid=3602888498034633874&checked=true

http://www.ilovematlab.cn/forum.php?ext=CB&mod=viewthread&pre_pos=7&pre_thread_id=170608&reltid=233513&tid=217493

http://blog.sina.com.cn/s/blog_4cf8aad30100nr2k.html

http://www.ilovematlab.cn/forum.php?mod=viewthread&tid=61234

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

http://www.ilovecode.cn/index.php/news/show/id/128

http://blog.sina.com.cn/s/blog_64b046c701018dya.html

libsvm工具箱会和matlab,MATLAB实现多分类和libsvm工具箱的安装使用详解相关推荐

  1. matlab的NLP功能,pyhanlp 共性分析与短语提取内容详解

    pyhanlp 共性分析与短语提取内容详解 简介 HanLP中的词语提取是基于互信息与信息熵.想要计算互信息与信息熵有限要做的是 文本分词进行共性分析.在作者的原文中,有几个问题,为了便于说明,这里首 ...

  2. matlab输出李萨育图形,李萨如图形的详解与应用

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区. 您需要 登录 才可以下载或查看,没有帐号?注册 x 本帖最后由 Freeman_2016 于 2019-9-11 11:18 编辑 李萨如图形 ...

  3. matlab中的分类工具箱svm,MATLAB实现多分类和libsvm工具箱的安装使用详解

    首先告诉大家MATLAB现在可以实现多类分类的问题!但是需要借助工具箱! 下面介绍的是台湾林智仁教授的libsvm工具箱在MATLAB中的安装和使用: 安装环境:Win7.Microsoft Visu ...

  4. Matlab机器人工具箱Robotics ToolBox --rvctools安装 图文详解(附rvctools工具箱资源)

    rvctools工具箱资源地址分享: 链接:https://pan.baidu.com/s/1DqeCwS0F-P2DgQJQeL9boA 提取码:lmgp 首先找到你的Matlab安装位置,找到to ...

  5. matlab 小波变换_连续小波变换实现方法的总结及其程序详解

    在帖子"给大家分享我自己编的程序-连续小波变换" 中,pengzk版友给出了morlet小波变换的源代码,但其中的许多参数和语句意义不够明确,这就给一些希望了解连续小波变换实现方法 ...

  6. 如何求matlab的in(2.0375),matlab2012年课后习题及答案详解

    2012年12月7日星期五 第2章 MATLAB 矩阵运算基础 2.1 在MA TLAB 中如何建立矩阵?? ? ???194375,并将其赋予变量a ? >> a=[5 7 3;4 9 ...

  7. 【MATLAB】Parzen窗与K近邻算法原理与代码详解

    文章目录 1.非参数估计原理 2.Parzen窗 2.1.算法原理 2.2.Matlab实现与参数探究 3.K近邻 3.1.算法原理 3.2.Matlab实现与参数探究 1.非参数估计原理 \qqua ...

  8. matlab双目相机标定校正_双目相机的标定过程详解!-----MATLAB

    基于双目视觉的测距.三维重建等过程中的第一步就是要进行标定.双目相机的标定过程在网上有很多资料,但是基本都没有matlab官方网址讲的好.所以请参考MATLAB官方文档:https://ww2.mat ...

  9. 图像处理中媲美matlab的python包——scikit-image(skimage)包的用法详解

    前言: 基于python的图片处理包还是很多的,比如PIL,Pillow, opencv, scikit-image等.其中,PIL和Pillow只提供最基础的数字图像处理,功能有限:opencv本质 ...

最新文章

  1. gtkorphan清理孤立软件包
  2. 枚举 ---- B. Power Sequence[Codeforces Round #666 (Div. 2)][暴力]
  3. Servlet + JSP(EL表达式)
  4. express支持i18n国际化
  5. html知识收集(一)
  6. Linux下载cfg命令,Linux安装详解-配置ks.cfg实现自动安装过程
  7. 2.权限管理准备工作:你应该知道的ASP.NET网站最基本的安全措施!
  8. Python 技巧总结
  9. Java将对象保存到文件中/从文件中读取对象
  10. ScrollView不设置contentSize属性依然也可以作为底层滚动View(使用masonry设置scrollView的contentSize)...
  11. std::map的KEY如果是char*,必须是malloc的
  12. Ubuntu20安装gcc11
  13. WIFI adb重启后仍然生效
  14. 15款Django开发常用软件包
  15. Java word转pdf字体格式和样式变乱的问题
  16. linux ssh freeradius,如何将SSH身份验证配置到FreeRADIUS服务器
  17. tcp wireshark 过滤syn_抓包工具Wireshark常用过滤使用方法
  18. python自由落体_pymunk教程_自由落体小球_Pymunk滑动和铰接演示教程
  19. 复盘世预赛:国足5-0马尔代夫,吴曦成国足世预赛福星!三大前锋齐进球
  20. 自己制作脚手架——完整版

热门文章

  1. junit - no runnable methods
  2. [源码研究]Some debugger screenshot of Slf4jLogger creation
  3. CRM Fiori应用里My Opportunity - My Appointment中My的准确含义
  4. 如何使用SAP CRM增强工具AET创建Table表格类型的增强
  5. SAP云平台,Netweaver,Kubernetes和C4C的用户和角色关系
  6. ES6, Angular,React和ABAP中的String Template(字符串模板)
  7. oracle rownum 特别慢,select * from table where rownum=1怎么会特别慢??表的数据在千万左右...
  8. myeclipse启动php,myeclipse,jdk_启动myeclipse报错,myeclipse,jdk - phpStudy
  9. 开启进度比的文本为什么没有显示_没有开通智钻,为什么会显示流量是在智钻进店的呢?...
  10. Jmeter在运行结果中文出现乱码问题