libsvm-mat-加强工具箱介绍

转载自:http://bbs.sciencenet.cn/blog-348249-272606.html

libsvm-mat-加强工具箱介绍 by faruto

最终版本号:

libsvm-mat-2.89-3[farutoUltimateVersion2.0]

=====================================

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_option:PSO中的一些参数设置,可不输入,有默认值,详细请看代码的帮助说明。

输出:

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类似。

你可能感兴趣的:(matlab,libsvm,工具箱,支持向量机)