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

posted @ 2018-02-05 18:38  笨笨鸟  阅读(859)  评论(0编辑  收藏  举报