博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MATLAB 安装使用libsvm详细步骤
阅读量:5884 次
发布时间:2019-06-19

本文共 2247 字,大约阅读时间需要 7 分钟。

根据本文后面部分博友提出的在配置过程中出现的问题,其中需要特别强调的一点:
整个过程,都是在 libsvm-3.12\matlab目录下操作的。如果这一点你忽视了,你不可能解决配置中报的Bug,即使重新安装matlab也不行。
本文的配置路径为 D:\MATLAB\R2010a\toolbox\libsvm-3.12\matlab,从始至终都是在这个目录下进行的。
当然,你也可以将编译好的文件拷贝到任何地方,只要你当前的工作目录中有这四个文件即可。
详细步骤如下:
1.下载libsvm
http://www.csie.ntu.edu.tw/~cjlin/libsvm/
我的matlab版本 R2010a,我的libsvm版本3.12
2.解压至指定目录
将libsvm解压至D:\MATLAB\R2010a\toolbox下,你也可以解压至你喜欢的地方。
3.设置路径
MATLAB 安装使用libsvm详细步骤(附图) - 求之不得,不求得之 - 求之不得,不求得之
下载下来的借口包里有svm的一些源文件,没有可执行的exe文件,所以,必须先将svmtrain等源文件编译为matlab可以使用的dll等文件。于是先选择编译器,如下: 
4.编译libsvm
我的编译器是VC++ 6.0
首先在matlab设置当前目录为 D:\MATLAB\R2010a\toolbox\libsvm-3.12\matlab
MATLAB 安装使用libsvm详细步骤(附图) - 求之不得,不求得之 - 求之不得,不求得之
5.执行编译
在matlab命令窗口中输入
mex -setup
显示
Please choose your compiler for building external interface (MEX) files: 
 
Would you like mex to locate installed compilers [y]/n?
输入y
Select a compiler: 
[1] Lcc-win32 C 2.4.1 in D:\MATLAB\R2010a\sys\lcc 
[2] Microsoft Visual C++ 2008 SP1 in D:\Program Files\Microsoft Visual Studio 9.0 
[3] Microsoft Visual C++ 6.0 in D:\Program Files\Microsoft Visual Studio 
 
[0] None 
Compiler:
需要你选择编译器
我输入的是3 即选择VC++ 6.0
Please verify your choices: 
 
Compiler: Microsoft Visual C++ 6.0 
Location: D:\Program Files\Microsoft Visual Studio 
 
Are these correct [y]/n?
再次确认自己的选择,输入y
Trying to update options file: C:\Users\DELL\AppData\Roaming\MathWorks\MATLAB\R2010a\mexopts.bat 
From template:              D:\MATLAB\R2010a\bin\win32\mexopts\msvc60opts.bat 
 
Done . . . 
编译器选择好了之后,用make.m编译
命令窗口输入make
可以看到新编译出4个文件libsvmread.mexw32,libsvmwrite.mexw32,svmtrain.mexw32,svmpredict.mexw32
MATLAB 安装使用libsvm详细步骤(附图) - 求之不得,不求得之 - 求之不得,不求得之
在命令窗口中输入
load heart_scale;
此时需注意,libsvm 3.12中提供的是c++版本的数据集heart_scale,这里需要加载matlab版本的数据集。
这两个数据集有什么不同呢?
C++版本的数据集里面如果某一个样本的某一个特征为0,这个特征可以不写在数据集中,但是在matlab版本中,必须要写出来。
否则的话,会报这样一个错误:
MATLAB 安装使用libsvm详细步骤(附图) - 求之不得,不求得之 - 求之不得,不求得之
此时你可以选择下载matlab型的数据集,给一个链接。
然后读取数据集
libsvmread('heart_scale');
完成该步骤后发现Workspace中出现了
heart_scale_inst 
 heart_scale_label,说明正确。
MATLAB 安装使用libsvm详细步骤(附图) - 求之不得,不求得之 - 求之不得,不求得之
model=svmtrain(heart_scale_label,heart_scale_inst)
[predict_lebel,accuracy]=svmpredict(heart_scale_label,heart_scale_inst,model)
/
本博2014年4月18日添加
部分博友反应
[predict_lebel,accuracy]=svmpredict(heart_scale_label,heart_scale_inst,model)
********************重点
命令会报BUG,这是libsvm新的版本对于输出结果的重新设定。
改为如下命令即可。(老版本不用改变。本文是libsvm-3.12。)
model=svmtrain(heart_scale_label,heart_scale_inst)
[predicted_label, accuracy, decision_values]=svmpredict(heart_scale_label,heart_scale_inst,model)
/
MATLAB 安装使用libsvm详细步骤(附图) - 求之不得,不求得之 - 求之不得,不求得之
 
证明libsvm安装成功,可以进行其他的实验了。

转载地址:http://lwlix.baihongyu.com/

你可能感兴趣的文章
ASP.NET Core 发布
查看>>
cocos2d-x-lua基础系列教程五(lua单例)
查看>>
升级_开阔视野之Oracle图形化升级(dbca建库后升级)—10.2.0.1.0升为10.2.0.5.0
查看>>
深入浅出 - Android系统移植与平台开发(七)- 初识HAL【转】
查看>>
初探linux子系统集之timer子系统(三)
查看>>
利用VisualVM监视远程JVM
查看>>
TortoiseGit学习系列之TortoiseGit基本操作将提交到本地的项目推送到在线仓库(图文详解)...
查看>>
关于spring mybateis 定义resultType="java.util.HashMap"
查看>>
『TensorFlow』读书笔记_Inception_V3_上
查看>>
python爬虫从入门到放弃(四)之 Requests库的基本使用(转)
查看>>
程序员怎么留住健康?
查看>>
【ANT】ant使用
查看>>
Go基础系列:Go接口
查看>>
miniprogrampatch 提供 watch 和 computed 特性
查看>>
java按照关键字指定的key删除redis(支持模糊删除)
查看>>
information_schema系列四(跟踪,列约束,表和列)
查看>>
TreapDB is a key-value store based on Treap
查看>>
BINGMAPS地图下载及切图和重命名工具使用教程
查看>>
BYTE* To Float*
查看>>
(转)C# 把我所积累的类库全部分享给博友(附件已经上传)
查看>>