win10系统matlab64位环境下安装libsvm工具箱

之前在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: 要选择不同的语言,请从以下选项中选择一种命令: 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: >> 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 ...

参考链接:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpswy.html