码迷,mamicode.com
首页 > 其他好文 > 详细

如何在matlab里安装libsvm包

时间:2016-11-06 16:53:59      阅读:322      评论:0      收藏:0      [点我收藏+]

标签:不同的   future   art   rac   scale   数据   执行   orm   打开   

有时我们需要用到SVR(支持向量回归)方法,而 matlab 自带的svm工具箱不能做回归分析,于是有了安装libsvm包的打算。
中间遇到一些困难,比如找不到编译器等等,经过一下午和一晚上的努力,在matlab里可以使用libsvm了。

1.下载好libsvm包

下载libsvm-3.21到随意一个地方,比如到matlab安装路径下的 toolbox下——D:\MATLAB\R2014A\toolbox\下,并解压。

打开matlab,将libsvm-3.21\matlab 添加到路径,比如将:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab 添加到路径。

setup 第一次尝试

若提示没有C++编译器,则根据提示的网址去下载 winsdk_web.exe,然后 双击运行winsdk_web.exe,安装到最后若提示失败,则去卸载自带的visual studio 和 .netframework 4,然后再运行 winsdk_web.exe,提示缺少 .netframework 4,则自行下载安装,反复运行 winsdk_web.exe。

直到运行 winsdk_web.exe 时出现如下图所示情况,说明距成功更近一步了,

2. setup

打开Matlab中,进入LIBSVM根目录下的matlab目录(如D:\MATLAB\R2014A\toolbox\libsvm-3.21),在命令窗口的输入mex -setup 输出为:

>>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.

3.编译

执行 make,输出如下:

>> make
使用 Microsoft Windows SDK 7.1 (C) 编译。
MEX 已成功完成。
使用 Microsoft Windows SDK 7.1 (C) 编译。
MEX 已成功完成。
使用 Microsoft Windows SDK 7.1 (C++) 编译。
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmtrain.exp

找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmtrain.exp

MEX 已成功完成。
使用 Microsoft Windows SDK 7.1 (C++) 编译。
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmpredict.exp

找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmpredict.exp

MEX 已成功完成。
>> 

4.重命名

忽略错误(找不到……),继续,编译完成后,在当前目录下(libsvm-3.21/matlab下)会出现svmtrain.mexw64、svmpredict.mexw64 或者svmtrain.mexw32、svmpredict.mexw32 ,把文件名svmtrain和svmpredict 相应改成 libsvmtrain 和 libsvmpredict。

这是因为Matlab中自带有SVM的工具箱,其函数名字就是svmtrain和svmpredict,和 libsvm 默认的名字一样.

5.测试是否安装成功libsvm

libsvm 软件包中自带有测试数据,即软件包根目录下的 heart_scale 文件。
在matlab运行代码,输出如下:

>> [heart_scale_label, heart_scale_inst] = libsvmread(heart_scale);
>> model = libsvmtrain(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
>> [predict_label, accuracy, dec_values] = libsvmpredict(heart_scale_label, heart_scale_inst, model);
Accuracy = 86.6667% (234/270) (classification)

 

如何在matlab里安装libsvm包

标签:不同的   future   art   rac   scale   数据   执行   orm   打开   

原文地址:http://www.cnblogs.com/datavis/p/6035217.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!