win10系统matlab64位环境下安装libsvm工具箱
1. 前言
之前在win10系统matlab64环境下环安装libsvm工具箱安装了好久都没有成功,今天通过阅读牛人的一些博客,终于配置成功并且可以顺利使用,所以特写博客分享之。
2. 工具准备
所需要安装的软件:matlab R2014a , SDK7.1(GRMSDKX_EN_DVD),VC-Compiler-KB2519277
matlab安装这里就不再具体介绍了。
SDK7.1和VC-Compiler的下载地址为:
链接:https://pan.baidu.com/s/1bpYKsA7 密码:57ri
分别安装以上两个软件。
3. libsvm工具箱安装
3.1 libsvm下载
这里下载最新版本的libsvm3.22,下载地址如下:https://www.csie.ntu.edu.tw/~cjlin/libsvm/
将下载后的libsvm解压并放到matlab的子目录toolbox下,即D:\Program Files\MATLAB\R2014a\toolbox。
3.2 设置路径
打开matlab主界面,点击“设置路径”,选择“添加并包含子文件夹”,添加解压的libsvm路径D:\Program Files\MATLAB\R2014a\toolbox\libsvm-3.22。
3.3 生成系列文件
将当前matlab的工作路径设为D:\Program Files\MATLAB\R2014a\toolbox\libsvm-3.22\matllab
在命令行窗口键入如下命令:
>> mex -setup
MEX 配置为使用 'Microsoft Windows SDK 7.1 (C)' 以进行 C 语言编译。
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
要选择不同的语言,请从以下选项中选择一种命令:
mex -setup C++
mex -setup FORTRAN
>> mex -setup C++
MEX 配置为使用 'Microsoft Windows SDK 7.1 (C++)' 以进行 C++ 语言编译。
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
>> make
使用 'Microsoft Windows SDK 7.1 (C)' 编译。
MEX 已成功完成。
使用 'Microsoft Windows SDK 7.1 (C)' 编译。
MEX 已成功完成。
使用 'Microsoft Windows SDK 7.1 (C++)' 编译。
找不到 D:\Program Files\MATLAB\R2014a\toolbox\libsvm-3.22\matlab\svmtrain.exp
找不到 D:\Program Files\MATLAB\R2014a\toolbox\libsvm-3.22\matlab\svmtrain.exp
MEX 已成功完成。
使用 'Microsoft Windows SDK 7.1 (C++)' 编译。
找不到 D:\Program Files\MATLAB\R2014a\toolbox\libsvm-3.22\matlab\svmpredict.exp
找不到 D:\Program Files\MATLAB\R2014a\toolbox\libsvm-3.22\matlab\svmpredict.exp
MEX 已成功完成。
此时,在会自动make出来很多文件,不用管,主要是会看到make出带有mexw64后缀名的文件,这就成功了。
4. 测试
4.1 键入load heart_scale
输入以下命令:
>> load heart_scale
错误使用 load
ASCII 文件 heart_scale 的第 3 行中的列数必须与前面行中的列数相同。
此时是因为安装包中的数据存在问题,下载新的数据,下载地址如下:
链接:https://pan.baidu.com/s/1nw38byT 密码:fpuk
并且用下载的数据覆盖安装包中的数据。
4.2 训练模型
>> model=svmtrain(heart_scale_label,heart_scale_inst,'-c 1 -g 0.07')
*
optimization finished, #iter = 134
nu = 0.433785
obj = -101.855060, rho = 0.426412
nSV = 130, nBSV = 107
Total nSV = 130
model =
Parameters: [5x1 double]
nr_class: 2
totalSV: 130
rho: 0.4264
Label: [2x1 double]
sv_indices: [130x1 double]
ProbA: []
ProbB: []
nSV: [2x1 double]
sv_coef: [130x1 double]
SVs: [130x13 double]
4.3 分类预测
[predict_label,accuracy,dec_values]=svmpredict(heart_scale_label,heart_scale_inst,model)
Accuracy = 86.6667% (234/270) (classification)
predict_label =
1
-1
-1
1
...
accuracy =
86.6667
0.5333
0.5326
dec_values =
1.2258
-0.3213
-0.7609
1.4504
-1.0003
-0.1669
...
参考链接:
http://blog.csdn.net/hh13248101160/article/details/77837515
http://blog.csdn.net/blue_sky_shy/article/details/52050630