1.下载最新版LibSVM

点击此处打开网页,点击zip
file下载最新版的文件并解压放在任何目录下,建议放在安装目录便于查找。如我的文件解压在路径C:\ProgramFiles\MATLAB\R2012a\toolbox\libsvm-3.18下

2.设置工作路径

打开matlab2012a。点击File->Set Path->Add with Subfolders,添加刚才解压路径如C:\Program
Files\MATLAB\R2012a\toolbox\libsvm-3.18,点击Save保存和Close关闭。将Current Folder设置为C:\Program Files\MATLAB\R2012a\toolbox\libsvm-3.18\matlab。左侧边栏即出现如下界面,注意mexw32后缀的文件,原解压文件中并没有。

3.配置编译器

Command Window中输入[mex空格–setup,即mex -setup],将会出现一些提示以及Would
you like mex to locate installed compilers [y]/n,输入y并回车,这时将出现你电脑上安装的编译器,作者的电脑只装了VS2010,Compiler:后面选择你自己的准备用来编译的编译器的序号,本文选择2。

这时又出现提示语句Are these correct [y]/n?,输入y并回车,如上所示。当显示下图时代表编译器配置完成。

4.编译过程

Command Windows输入[make]并回车.此时调用当前路径也就是C:\Program
Files\MATLAB\R2012a\toolbox\libsvm-3.18\matlab下的make.m完成编译过程。该目录下将出现svmtrain.mexw32,svmpredict.mexw32,libsvmread.mexw32和libsvmwrite.mexw32等文件。即编译成功。

5.测试编译成功与否

先检查C:\Program
Files\MATLAB\R2012a\toolbox\libsvm-3.18目录下是否存在样本集文件heart_scale.mat,注意是.mat文件,倘若存在,Command Windows输入【loadheart_scale.mat】加载样本。现在新版本的LibSVM过往只提供C++使用的heart_scale,可以使用语句[heart_scale_label,
heart_scale_inst]=libsvmread('heart_scale')同样加载样本集。这里提供了源数据文件heart_scale.mat,若嫌麻烦或者加载load heart_scale不成功,请直接点击下载heart_scale.mat

接着,Command Windows中输入下列命令行:

model = svmtrain(heart_scale_label, heart_scale_inst);%训练过程
[predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model);%测试过程

出现Accuracy = 86.6667% (234/270) (classification)%  done 即编译成功。

6.其他说明

① matlab自带了C编译器Lcc-win32C,但是libsvm原始版本是C++实现的,因此需要C++的编译器来编译,这就是不适用matlab默认编译器而选择其他C++编译器的原因。matlab支持的编译器也是有限的,可以查看不同版本matlab支持的编译器列表

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

 mexw32 文件是经过加密的,打开是乱码,函数本身没有帮助。例如输入 help svmpredict会出现报错: svmpredict not found。工具箱libsvm-3.12\matlab中README文件才是帮助文件。但是输入help svmtrain会出现帮助信息,其实出现的是系统自带的svmtrain函数,没有libsvm工具箱中的好用。

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

 测试用数据集,libsvm官网上提供了很多数据集测试使用的heart_scale数据集是C++版本的(类标签 1:第一个属性 2:第二个属性…),可以用libsvmread来转换为matlab版本的(它们的区别在类标签)。[label_vector, instance_matrix] = libsvmread(‘C++版本数据集’);
%得到类标签和属性矩阵,然后可以使用它们训练了model = svmtrain(label_vector, instance_matrix)。

 R2009a无法识别VS2010中的编译器Visual C++2010

7.常用机器学习样本集

请点击:国立台湾大学

UCI

部分参考自: Matlab安装使用libsvm

Matlab2012a下配置LibSVM—3.18的更多相关文章

  1. win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置

    原文:win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置 一.说明 以前配置apache+php+mysql都是参考网上的,一般都没有什么问题.最近公司有个 ...

  2. Ubuntu 18.04 下配置 HAXM 加速 Android模拟器

    Ubuntu 18.04 下配置 HAXM 加速 Android模拟器 最近在vmware环境下搭建ubuntu18.04开发环境,开始发现总是运行android模拟器在console提示加载如下错误 ...

  3. ubuntu 18 下配置 WebStorm 编译 sass

    ubuntu 18 下配置 WebStorm 编译 scss 标签(空格分隔): IDE 安装Ruby: sudo apt-get install ruby ruby -v ruby 2.5.1p57 ...

  4. win7下matlab2016a配置libsvm

    1.下载libsvm https://www.csie.ntu.edu.tw/~cjlin/libsvm/ 2.解压到matlab2016a的安装目录的toolbox下 例如我的D:\Program ...

  5. ubuntu 18.04下 配置qt opencv的坑

    问题和过程描述: 我按照网上的教程装了qt5.8版本,然后去配置opencv,感觉一切顺利,然后随便写了个 Mat src = imread("xxx") 然后imshow发现编译 ...

  6. nginx环境下配置nagios-关于nagios配置文件nginx.conf

    接上文:nginx环境下配置nagios-关于nginx.conf 配置如下: ;          location ~ .*\.(php|php5)?$          {            ...

  7. Linux下的Libsvm使用历程录

    原文:http://blog.csdn.net/meredith_leaf/article/details/6714144 Linux下的Libsvm使用历程录 首先下载Libsvm.Python和G ...

  8. Ubuntu 12.04环境下配置Postgresql和phppgadmin

    Ubuntu 12.04环境下配置Postgresql 9.1 和phppgadmin 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/zjianb ...

  9. WCF技术剖析之六:为什么在基于ASP.NET应用寄宿(Hosting)下配置的BaseAddress无效

    原文:WCF技术剖析之六:为什么在基于ASP.NET应用寄宿(Hosting)下配置的BaseAddress无效 本篇文章来源于几天前一个朋友向我咨询的问题.问题是这样的,他说他采用ASP.NET应用 ...

随机推荐

  1. 【leetcode刷题笔记】Max Points on a Line

    Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. ...

  2. <软件架构与设计模式>侯捷老师关于Adapter类在STL中的深入解析和模式探讨

    题外话:侯捷老师难得一年就来上九堂课就要会宝岛,特此留念签名赠语及合照以自勉.  学海无涯,为勤是岸 <正文开始> 昨天晚上连上了3个小时的大课探究单单讲了Adapter一个类,幸运的是本 ...

  3. 在Delphi中使用ShellExecute(handle, 'open', PChar(fname),nil, nil, SW_HIDE)函数应注意的问题

    在Delphi中使用ShellExecute(handle, 'open', PChar(fname),nil, nil, SW_HIDE)函数应注意的问题: 一.对一般vcl程序及isapi dll ...

  4. SQLServer 一些有用的语句

    SET STATISTICS TIME ON 记录查询的相关数据 生成随机Guid SELECT NewID() 按照某一列排序并生成序号 select Row_Number() OVER (ORDE ...

  5. Android 动态权限申请

    package com.dragon.android.permissionrequest; import android.Manifest; import android.content.Dialog ...

  6. Codeforces 180C Letter:dp

    题目链接:http://codeforces.com/problemset/problem/180/C 题意: 给你一个字符串s,长度为n. 让你将这个字符串变成“前面一段都是大写字母,后面一段都是小 ...

  7. 分享知识-快乐自己:运行(wordcount)案例

    运行 wordcount 案例: 一):大数据(hadoop)初始化环境搭建 二):大数据(hadoop)环境搭建 三):运行wordcount案例 四):揭秘HDFS 五):揭秘MapReduce ...

  8. Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的配置优化

    对其用户和应用程序来讲,每一个VPS平台的运行和管理都与一台独立主机完全相同,因为每一个VPS均可独立进行重启并拥有自己的root访问权限.用户.IP地址.内存.过程.文件.应用程序.系统函数库以及配 ...

  9. C#winform拖拽实现获得文件路径

    1.关键知识点说明: 通过DragEnter事件获得被拖入窗口的“信息”(可以是若干文件,一些文字等等),在DragDrop事件中对“信息”进行解析.窗体的AllowDrop属性必须设置成true;且 ...

  10. io.js的六大新特性

    io.js是nodejs的友好版的分支("friendly fork”).它支持npm中所有的同样模块,且使用了v8最新版本的截取(v8是被node.js使用js解释器),且修复了很多的bu ...