导航:首页 > 五金知识 > matlablibsvm工具箱使用

matlablibsvm工具箱使用

发布时间:2023-07-29 01:03:56

『壹』 请问Matlab的libsvm工具箱如何进行多元回归

这个问题其实非常地简单。
1、在Matlab里面先做这样一小段处理:

data = [
0.5 2 12 26 2 0.0476890000000000
0.5 3 14 28 4 0.0792965000000000
0.5 4 16 30 6 0.106723000000000
0.5 5 18 32 8 0.112500000000000
1 2 14 30 8 0.487650000000000
1 3 12 32 6 0.0955300000000000
1 4 18 26 4 0.336150000000000
1 5 16 28 2 0.202830000000000
1.5 2 16 32 4 1.18260000000000
1.5 3 12 30 2 0.273390000000000
1.5 4 18 28 8 0.784670200000000
1.5 5 14 26 6 0.487695000000000
2 2 18 28 6 1.41230000000000
2 3 16 26 8 0.934150000000000
2 4 14 32 2 0.181100000000000
2 5 12 30 4 1.08280000000000
];

x = data(:,1:end-1);
y = data(:,end);
% 上述处理即是将最后一列作为输出,前n-1列全部作为输入

2. 将 x, y 分别作为输入和输出放入svmtrain函数中训练
3. 再在svmpredict函数中输入x即可得出各个x对应的预测值y
注:这里的原理其实十分简单,在libsvm中其实也是将所有变量都默认为了向量(或矩阵),所以你只管输入的数据结构即可。

『贰』 求在MATLAB下编译好(可以直接使用)的libsvm工具箱

以下两种方法,我已经亲测可用
方法1:可以在其他朋友的电脑上进行编译,编译完后直接把libsvmread.mexw64、libsvmwrite.mexw64、svmpredict.mexw64、svmtrain.mexw64复制到你自己的程序中即可运行。这种方法的弊端是不同的算法程序中均需要复制一次。

方法2:把编译完后的libsvmread.mexw64、libsvmwrite.mexw64、svmpredict.mexw64、svmtrain.mexw64这几个文件添加到F:\MATLAB 2015a anzhuang\toolbox\libsvm-3.22\matlab下,即可

『叁』 如何在matlab里安装libsvm包

1.下载好libsvm包
下载libsvm-3.21到随意一个地方,比如到安装路径下的 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 文件夹添加到路径就可以了。

『肆』 安装了libsvm,matlab自带的svmtrain怎么用

1、  配置C环境:
在MATLAB中任意路径下,输入mex –setup
然后按步骤进行
2、  添加路径
(1)    将libsvm工具箱复制到MATLAB的toolbox文件夹下
(2)    Set path-------Add withSubfolders,将libsvm的工具箱文件夹添加到路径中
3、  编译
将当前路径设置为libsvm工具箱中的matlab文件夹下,输入make即可。
此时,若直接调用svmtrain(),则用的还是MATLAB自带的函数。

『伍』 matlab中使用libsvm如何实现参数寻优

可以利用libsvm工具箱中自带的k折交叉验证方法进行参数的寻优。


k折交叉验证的基本思想如下:

k个子集,每个子集均做一次测试集,其余的作为训练集。交叉验证重复k次,每次选择一个子集作为测试集,并将k次的平均交叉验证识别正确率作为结果。


libsvm工具箱中交叉验证的使用方法如下:

predict=trian(data_label,data_train,cmd);
%train_label表示训练输出样本数据;
%data_train表示训练输入样本数据;
%cmd就是训练参数的设置,如设置为cmd='-v5'就表示进行5折交叉验证(该设置中省略了其他参数的设置,即保存默认设置)。
阅读全文

与matlablibsvm工具箱使用相关的资料

热点内容
中心供氧系统所有设备有哪些 浏览:314
吸黑头粉刺仪器什么质量问题 浏览:758
圆周运动轮子用什么轴承结构 浏览:259
麦粒肿做超声波雾化有什么用 浏览:250
电梯补偿绳补偿装置设计 浏览:663
上水管都有什么阀门 浏览:55
管道阀门垫子有几种 浏览:166
电动叉车的传动装置 浏览:174
mstercam2020机床怎么选择 浏览:883
万美煤气阀门有假的吗 浏览:615
承压管道阀门打压严密性试验记录 浏览:398
q5换后轮轴承怎么压法兰 浏览:68
制冷剂泄漏速度怎么描述 浏览:795
坐着举重的器材是什么器材 浏览:648
自动拘束装置价格 浏览:15
丰县汉固达五金机电 浏览:533
剑刀是什么铸造 浏览:762
有三个仪表盘的什么车 浏览:550
空调制冷时室内机结冰是什么原因 浏览:206
小米黑鲨怎么上设备锁 浏览:990