MATLAB 安装使用libsvm详细步骤(附图)
详细步骤如下:
1.下载libsvm
http://www.csie.ntu.edu.tw/~cjlin/libsvm/
我的matlab版本 R2010a,我的libsvm版本3.12
2.解压至指定目录
将libsvm解压至D:\MATLAB\R2010a\toolbox下,你也可以解压至你喜欢的地方。
3.设置路径
下载下来的借口包里有svm的一些源文件,没有可执行的exe文件,所以,必须先将svmtrain等源文件编译为matlab可以使用的dll等文件。于是先选择编译器,如下:
4.编译libsvm
我的编译器是VC++ 6.0
首先在matlab设置当前目录为
D:\Program Files\MATLAB\R2010a\toolbox\libsvm-3.16\matlab
5.执行编译
在matlab命令窗口中输入
mex -setup
显示
1.下载libsvm
http://www.csie.ntu.edu.tw/~cjlin/libsvm/
我的matlab版本 R2010a,我的libsvm版本3.12
2.解压至指定目录
将libsvm解压至D:\MATLAB\R2010a\toolbox下,你也可以解压至你喜欢的地方。
3.设置路径
4.编译libsvm
我的编译器是VC++ 6.0
首先在matlab设置当前目录为
在matlab命令窗口中输入
mex -setup
显示
Please choose your compiler for building external interface (MEX) files:
Would you like mex to locate installed compilers [y]/n?
输入y
输入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
证明libsvm安装成功,可以进行其他的实验了。
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
命令窗口输入make
可以看到新编译出4个文件libsvmread.mexw32,libsvmwrite.mexw32,svmtrain.mexw32,svmpredict.mexw32
在命令窗口中输入 load heart_scale;
此时需注意,libsvm 3.12中提供的是c++版本的数据集heart_scale,这里需要加载matlab版本的数据集。
这两个数据集有什么不同呢?
C++版本的数据集里面如果某一个样本的某一个特征为0,这个特征可以不写在数据集中,但是在matlab版本中,必须要写出来。
否则的话,会报这样一个错误:
此时你可以选择下载matlab型的数据集,给一个链接。
http://download.csdn.net/detail/boruoshui/4881338
再次确认自己的选择,输入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
在命令窗口中输入
此时需注意,libsvm 3.12中提供的是c++版本的数据集heart_scale,这里需要加载matlab版本的数据集。
这两个数据集有什么不同呢?
C++版本的数据集里面如果某一个样本的某一个特征为0,这个特征可以不写在数据集中,但是在matlab版本中,必须要写出来。
否则的话,会报这样一个错误:
http://download.csdn.net/detail/boruoshui/4881338
使用前,必须将
D:\Program Files\MATLAB\R2010a\toolbox\libsvm-3.16\matlab路径保存到setPath中
然后读取数据集
libsvmread('heart_scale');
完成该步骤后发现 Workspace中出现了heart_scale_inst 和 heart_scale_label, 说明正确。
libsvmread('heart_scale');
完成该步骤后发现 Workspace中出现了heart_scale_inst 和 heart_scale_label, 说明正确。
model=svmtrain(heart_scale_label,heart_scale_inst)
[predict_lebel,accuracy]=svmpredict(heart_scale_label,heart_scale_inst,model)
证明libsvm安装成功,可以进行其他的实验了。