libsvm-mat-加强工具箱介绍

libsvm-mat-加强工具箱介绍
由于libsvm的matlab版本的工具箱libsvm-mat并没有给出寻参的函数模块,而无论利用libsvm工具箱进行分类还是回归,参数的选取是十分重要的,鉴于此libsvm-mat-加强工具箱在libsvm-mat-2.89-3的基础上给出相应的辅助函数插件,方便用户来选取最佳的参数,该加强工具箱可以在MATLAB中文论坛上下载,现对该加强工具箱里主要的辅助函数插件的接口进行介绍,所有的源代码可以到MATLAB中文论坛下载并查看。

==========================================================
归一化函数:scaleForSVM
[train_scale,test_scale,ps]= scaleForSVM(train_data,test_data,ymin,ymax)
输入:
train_data:训练集,格式要求与svmtrain相同。
test_data:测试集,格式要求与svmtrain相同。
ymin,ymax:归一化的范围,即将训练集和测试都归一化到[ymin,ymax],这两个参数可不输入,默认值为ymin=0,ymax=1,即默认将训练集和测试都归一化到[0,1]。
输出:
train_scale:归一化后的训练集。
test_scale:归一化后的测试集。
ps:归一化过程中的映射(方便反归一化使用)。

==========================================================
pca降维预处理函数:pcaForSVM
[train_pca,test_pca] = pcaForSVM(train_data,test_data,threshold)
输入:
train_data:训练集,格式要求与svmtrain相同。
test_data:测试集,格式要求与svmtrain相同。
threshold:对原始变量的解释程度([0,100]之间的一个数),通过该阈值可以选取出主成分,该参数可以不输入,默认为90,即选取的主成分默认可以达到对原始变量达到90%的解释程度。
输出:
train_pca:进行pca降维预处理后的训练集。
test_pca:进行pca降维预处理后的测试集。

==========================================================
网格参数寻优函数(分类问题):SVMcgForClass
[bestCVaccuracy,bestc,bestg]=
SVMcgForClass(train_label,train,
cmin,cmax,gmin,gmax,v,cstep,gstep,accstep)
输入:
train_label:训练集的标签,格式要求与svmtrain相同。
train:训练集,格式要求与svmtrain相同。
cmin,cmax:惩罚参数c的变化范围,即在[2^cmin,2^cmax]范围内寻找最佳的参数c,默认值为cmin=-8,cmax=8,即默认惩罚参数c的范围是[2^(-8),2^8]。
gmin,gmax:RBF核参数g的变化范围,即在[2^gmin,2^gmax]范围内寻找最佳的RBF核参数g,默认值为gmin=-8,gmax=8,即默认RBF核参数g的范围是[2^(-8),2^8]。
v:进行Cross Validation过程中的参数,即对训练集进行v-fold Cross Validation,默认为3,即默认进行3折CV过程。
cstep,gstep:进行参数寻优是c和g的步进大小,即c的取值为2^cmin,2^(cmin+cstep),…,2^cmax,,g的取值为2^gmin,2^(gmin+gstep),…,2^gmax,默认取值为cstep=1,gstep=1。
accstep:最后参数选择结果图中准确率离散化显示的步进间隔大小([0,100]之间的一个数),默认为4.5。
输出:
bestCVaccuracy:最终CV意义下的最佳分类准确率。
bestc:最佳的参数c。
bestg:最佳的参数g。

==========================================================
网格参数寻优函数(回归问题):SVMcgForRegress
[bestCVmse,bestc,bestg]=
SVMcgForRegress(train_label,train,
cmin,cmax,gmin,gmax,v,cstep,gstep,msestep)
其输入输出与SVMcgForClass类似,这里不再赘述。

==========================================================
利用PSO参数寻优函数(分类问题):psoSVMcgForClass
[bestCVaccuracy,bestc,bestg,pso_option]=
psoSVMcgForClass(train_label,train,pso_option)
输入:
train_label:训练集的标签,格式要求与svmtrain相同。
train:训练集,格式要求与svmtrain相同。
pso_optionSO中的一些参数设置,可不输入,有默认值,详细请看代码的帮助说明。
输出:
bestCVaccuracy:最终CV意义下的最佳分类准确率。
bestc:最佳的参数c。
bestg:最佳的参数g。
pso_option:记录PSO中的一些参数。

==========================================================
利用PSO参数寻优函数(回归问题):psoSVMcgForRegress
[bestCVmse,bestc,bestg,pso_option]=
psoSVMcgForRegress(train_label,train,pso_option)
其输入输出与psoSVMcgForClass类似,这里不再赘述。

==========================================================
利用GA参数寻优函数(分类问题):gaSVMcgForClass
[bestCVaccuracy,bestc,bestg,ga_option]=
gaSVMcgForClass(train_label,train,ga_option)
输入:
train_label:训练集的标签,格式要求与svmtrain相同。
train:训练集,格式要求与svmtrain相同。
ga_option:GA中的一些参数设置,可不输入,有默认值,详细请看代码的帮助说明。
输出:
bestCVaccuracy:最终CV意义下的最佳分类准确率。
bestc:最佳的参数c。
bestg:最佳的参数g。
ga_option:记录GA中的一些参数。

==========================================================
利用GA参数寻优函数(回归问题):gaSVMcgForRegress
[bestCVmse,bestc,bestg,ga_option]=
gaSVMcgForRegress(train_label,train,ga_option)

其输入输出与gaSVMcgForClass类似,这里不再赘述。

来源:http://www.ilovematlab.cn/thread-57421-1-1.html

Matlab的libsvmmatfaruto版本Ver2-libsvm-mat-2.89-3-farutoVer2.rar libsvm-mat-2.89-3-farutoVer2 libsvm-mat-2.89-3-farutoVer2.rar 此次更新加进了,用PSO寻找SVM参数c和g的函数. 1.jpg 而且这次关于psoSVMcgForClass.m的编写,里面参数的设置采用的是用结构体的方式比较方便,这种方式我第一次采用,感觉很好..很好.. 采用这种结构体的方式可以避免过多的参数才函数接口中显示,很方便个人感觉,以前我自己没有这么编过. ANN的matlab自带的程序里面的参数设置都是采用这种手法.基本.... 程序 的一小段: function [bestCVaccuarcy,bestc,bestg,pso_option] = psoSVMcgForClass % psoSVMcgForClass % by faruto % 2009.09.22 %% 参数初始化 if nargin < 3     pso_option = struct('c1',1.5,'c2',1.7,'maxgen',200,'sizepop',20, ...                     'k',0.6,'wV',1,'wP',1,'v',3, ...                      'popcmax',10^2,'popcmin',10^,'popgmax',10^3,'popgmin',10^); end % c1:初始为1.5,pso参数局部搜索能力 % c2:初始为1.7,pso参数全局搜索能力 % maxgen:初始为200,最大进化数量 % sizepop:初始为20,种群最大数量 % k:初始为0.6,速率和x的关系 % wV:初始为1,速率更新公式中速度前面的弹性系数 % wP:初始为1,种群更新公式中速度前面的弹性系数 % v:初始为3,SVM Cross Validation参数 % popcmax:初始为100,SVM 参数c的变化的最大值. % popcmin:初始为0.1,SVM 参数c的变化的最小值. % popgmax:初始为1000,SVM 参数g的变化的最大值. % popgmin:初始为0.01,SVM 参数c的变化的最小值.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值