最近在学习SVM,在matlab上安装和使用Libsvm的过程中遇到了好多问题,在网上查看了许多资料,踩了许多坑。

整理一下供大家分享,希望能节省大家在安装过程中的时间。

一、安装

1.libsvm 下载

本人使用windows 10-64bits, Matlab 2016a,还下载了VS2017(这个稍后再说),下载最新版Libsvm 3.23,地址:https://www.csie.ntu.edu.tw/~cjlin/libsvm/。将zip文件解压到matlab/toolbox/(其他位置也可,但在使用时一定要将matlab路径调至该软件包处),如图。其中有java,matlab和python 三种版本,以及测试数据集heart_scale,和readme说明文件(内有Libsvm的参数说明,建议阅读,其中例子是在windows 命令行窗口运行的。)

2.设置路径

在matlab中设置路径

3.编译 

不要问我为啥要编译,我也是小白,在该步骤遇到了许多麻烦,给大家分享一下。

先来说一下编译步骤,在matlab命令行中输入mex -setup -v 查看一下电脑中有啥编译器

(若是能找到c++编译器,可直接尝试在命令行窗口输入make,执行make.m程序进行编译,完成后出现4个后缀为.mexw64文件)

(若没能找到C++编译器,编译失败或者一系列不明error,请参考下方谦恭的博客,按其步骤进行)

在最后终于找到了几个是,使用的是TDM-GCC-64编译器,这个是我额外下的。大家往上看Visual C++的编译的编译器只能找到2015,下了VS2017的我一脸懵逼。找了好多资料,说是matlab版本低了,行,大哥,被迫我又下了个matlab 2017b,嘿嘿,能出现C++2017的字了,但后面括号里还是否(一万只草泥马奔腾)。继续查资料,说是如果先装matlab,再装VS,可能是由于没配置环境的情况,会找不到编译器。想了想,我这不是后装了个新版本吗? 看见贴吧里有大佬说正版的Matlab没毛病(额,穷孩子也想学点习),破解版的需要做一系列操作(计算机小白表示看不懂)。

直到看见了谦恭的博客https://blog.csdn.net/github_35807147/article/details/80725642,改用TDM-GCC编译器,在此对其表示感谢,该文章介绍了编译过程,并附有编译器下载地址,本文将不再叙述编译过程,大家可以转去参考。

4. 测试

按照网上最常见的测试方法,来进行一下测试。

将Libsvm文件下的测试数据集heart_scale复制到Libsvm\matlab下,后续的操作将在该文件夹下进行,同时将MATLAB工作路径转至该文件下(在MATLAB中也可完成文件的复制粘贴工作)。

在命令行窗口输入

[heart_scale_label,heart_scale_inst]=libsvmread('heart_scale');

model = svmtrain(heart_scale_label,heart_scale_inst) ;

[predict_label,accuracy,dec_values] = svmpredict(heart_scale_label,heart_scale_inst,model);(该行代码也可以只有一个输出值predict_label,看到过一个测试教程里给了双输出值的模式,愣是跑不出来,最后在Libsvm\matlab\README中看见了格式,在此希望新手们仔细阅读Libsvm\README 和Libsvm\matlab\README,前者介绍svm的命令,后者介绍matlab下的语句规范)

至此,安装步骤结束,以下是使用介绍。

二、使用

以下是官方新手导论https://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf里的一段话,我简单翻译一下,英文好的请直接看原文。

• Test We propose that beginners try the following procedure first:  (我们建议新手尝试如下步骤)

• Transform data to the format of an SVM package                           (转换数据至SVM格式)

• Conduct simple scaling on the data                                                   (执行数据归一化)

• Consider the RBF kernel K(x, y) = e −γkx−yk 2                                    (考虑径向基核函数)

• Use cross-validation to find the best parameter C and γ                          (使用交叉检验找到最优的参数C和γ)

• Use the best parameter C and γ to train the whole training set5                 (使用最优的参数进行整个数据集的训练)

• Test                                                                                                                (测试)

1. 标准格式转换

做为新手的我决定老实按照指导来,然后就发现了问题,转换格式是什么鬼?又找了一波资料,发现我们需要FormatDataLibsvm.xls 这么一个表格。在百度上搜了一下,好多博主上传的资料都要5个c币,做为无产阶级的我表示扛不住。

在此附上本人的资源地址https://download.csdn.net/download/qq_31781741/10660504,惊天跳楼价,只需一个币,感谢父老乡亲捧场!!!

要是真没币就算了,没有什么能阻挡你学习的脚步,在此感谢DADADA开飞机的DATA提供的百度网盘http://pan.baidu.com/s/1eSKebYU,附上其简书博客地址https://www.jianshu.com/p/8dcde06319b1(我就是从该博客里找到的)。

输入简单的数据,如图:

注意:使用该表格时需要运行(我也不知道是啥东西),输入数据时最后一列为标签,转换完成后,标签转至第一列。本人使用word office 2013 ,在WPS时出现了不可预知的错误,一脸懵逼,幸好我俩个都有,将表格另存为txt格式文本(excel另存为有俩种txt格式,建议使用文本文件(制表格分割))。

2. 数据归一化

可以看见在libsvm-3.23\windows文件夹有一个svm-scale.exe 的执行程序,经测试该exe文件双击无法使用。

该应用程序需要在windows cmd 里运行(按住windows+r,输入cmd即可)。

将转换好的txt文本复制到该目录,将cmd里路径调至该文件夹(可将文件夹直接拖入cmd,手动输太xxx的长了)。

以a.txt为例,运行完成后,会在该文件目录下生成归一化的a1.txt文件,默认归一化范围(-1,1),详情可参考README文档,以下是归一化完成的文本和初始文本对比。

3. 训练以及预测

下面以回归预测为例,介绍一下训练及预测过程。

将归一化好的a1.txt文件复制到libsvm-3.23\matlab 目录下(原谅我一次又一次的复制粘贴,一切为了稳,稳,稳)。

[lable,im]=libsvmread('a1.txt');                              %读取文件
model=svmtrain(lable(1:300),im(1:300,:),'-s 4 -t 2 -c 1 -g 0.125');          %训练
[prelabel,accuracy,decision_values]=svmpredict(lable(301:600),im(301:600,:),model);                 %预测

至此,所有的流程结束,剩下的就是参数寻优的过程。

最后:

以此文献给正在学习SVM的傻妞,希望你能一切顺利。

MATLAB libsvm 安装和使用相关推荐

  1. 台湾大学林教授libsvm在matlab的安装

    台湾大学林教授libsvm在matlab的安装 下载libsvm文件 将整个libsvm文件复制到matlab的toolbox中 在matlab中设置路径 运行与纠错(mex -setup) 参考: ...

  2. 64位系统matlab上安装libsvm

    libsvm下载 下载地址:http://www.csie.ntu.edu.tw/~cjlin/libsvm/#download libsvm简介 LIBSVM是台湾大学林智仁(Lin Chih-Je ...

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

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

  4. libsvm安装使用及网格搜索法参数寻优

    LIBSVM 是台湾大学林智仁( Chih-Jen Lin)教授开发的. 说明:本教程仅针对电脑为64位的计算机,如果是32位的计算机需要下载C语言编辑器进行手动编译. 1.下载libsvm ①下载地 ...

  5. 路径调度问题(CVRP)后续之如何在MATLAB中安装YALMIP及CPLEX包

    订阅博主专栏的用户可私信博主获取安装包,不用额外再付费下载安装包. 安装包下载地址:https://download.csdn.net/download/wenyusuran/14954633 一.M ...

  6. matlab安装m_map,MATLAB中安装m_map后不能用,求解

    MATLAB中安装m_map后不能用,求解 因为画图,所以今天在MATLAB中安装了m_map,之后还写了几个m文件,后来MATLAB突然卡住,就关了,之后再打开,就显示如下: Warning: Di ...

  7. matlab 2014a 安装教程(内附破解文件)

    matlab 2014a 安装教程(内附破解文件) 这几天在准备数模,决心好好研究一下matlab,几经折腾,终于完成了安装与破解过程,下面是基本的步骤: 1:下载安装文件和破解文件     链接:h ...

  8. Matlab 2014a 安装

    参考博客 http://www.cnblogs.com/liu-kk9966/p/6230958.html 密钥 09806-07443-53955-64350-21751-41297 若没装好,su ...

  9. MATLAB 2018b 安装教程(图解)Mac Win Linux下均可安装

    MATLAB 2018b 安装教程: 首先自己从官网上申请matlab试用版,选择需要的模块后,下载matlab安装包.之后联网下载,下载好之后先不要打开matlab.具体步骤如下: 之后就开始下载安 ...

最新文章

  1. VMware 克隆网卡无法启动
  2. linux运维入门第一周的学习部分命令!
  3. python 全部缩进一行_Python(48)语言参考2:词法分析
  4. JavaME程序 Run Anywhere-- 利用反射机制来动态加载声
  5. Couchbase 2.0归类视图简介
  6. python web环境傻瓜搭建_python——web 环境搭建
  7. Linux2.6内核本地提权
  8. 浙江计算机三级在线试题及答案,计算机三级试题及答案
  9. 游戏《部落冲突》中的心理学运用
  10. ubuntu 安装 网易云音乐
  11. 关于C#GB2312编码问题
  12. MTK nvram介绍
  13. 不要再重复造轮子了,Hutool 这款开源工具类库贼好使
  14. 如何利用卫星遥感探测浒苔(绿藻)?
  15. 【转载】PCB layout工程师级别(可以留着自评用~~)
  16. css使用rgb属性设置颜色
  17. 计算机二级请假条,请假条的范文标准版
  18. Activiti实现会签功能程序Demo
  19. play游戏php是多少人,directplay有什么用?
  20. 中国互联网web2.0前100

热门文章

  1. 滴滴校招真题——末尾0的个数
  2. 两码一号:整体方案回顾
  3. ThinkPHP6 隐藏身份证中间8位
  4. wps单独文档无法连接服务器,为什么wps没有云服务器
  5. 项目总结 :木门app(2015.4.10 —— 2015.5.8)
  6. 【JS】导出合并表格
  7. HTML+CSS零基础学习笔记(五)— 模拟淘宝首页(静态)
  8. 局域网内建网站教程,如何零成本搭建自己的网站?
  9. Three.js盖房子 点击开关门
  10. html文件设置成mac屏保,如何将视频设置为Mac上的屏幕保护程序 | MOS86