如何在matlab里安装libsvm包

如何在matlab里安装libsvm包,第1张

1.下载好libsvm包

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

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

2.setup 第一次尝试

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

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

选择 Change,下一步,

勾选上 visual C++ compilers 和 microsoft visual C++ 2010,下一步,

最后提示成功安装。

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)

>>

OK ,perfect ! Congratulations to you!

如果遇到:

>>[heart_scale_label, heart_scale_inst] = libsvmread('heart_scale')

Invalid MEX-file 'C:\Users\jiao\Documents\MATLAB\libsvm-3.20\matlab\libsvmread.mexw64': 找不到指定的模块。

则把 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab 文件夹添加到路径就可以了。

第一步:下载java版libsvm3.12,解压。

第二步:打开java文件老歼仿夹

第三步:建立项目,引用lib.svm包

第侍纤四步:把第二步中的文件夹中四个文件改告复制到一个自定义的包中


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12419109.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存