matlab 函数作为参数svmcgforregress 参数寻优函数怎么用?

当前位置: >>
遗传算法选取最优参数MATLAB程序
复制代码 在这里使用启发式算法 GA(遗传算法)来进行参数寻优,用网格划分(grid search)来寻找最 佳的参数 c 和 g,虽然采用网格搜索能够找到在 CV 意义下的最高的分类准确率,即全局最 优解,但有时候如果想在更大的范围内寻找最佳的参数 c 和 g 会很费时,采用启发式算法就 可以不必遍历网格内的所有的参数点,也能找到全局最优解。 关于遗传算法这里不打算过多介绍,想要学习的朋友可以自己查看相关资料。 使 用 GA 来 进 行 参数 寻优 在 在 libsvm-mat-2.89-3[FarutoUltimate3.0] 工 具 箱 中 已 经 实现 gaSVMcgForClass.m(分类问题参数寻优) 、gaSVMcgForRegress.m(回归问题参数寻优) 。 1. 2. 3. 4. 5. 6. 7. 利用 GA 参数寻优函数(分类问题):gaSVMcgForClass [bestCVaccuracy,bestc,bestg,ga_option]= gaSVMcgForClass(train_label,train,ga_option) 输入: train_label:训练集的标签,格式要求与 svmtrain 相同。 train:训练集,格式要求与 svmtrain 相同。 ga_option:GA 中的一些参数设置,可不输入,有默认值,详细请看代码的帮助 说明。 8. 输出: 9. bestCVaccuracy:最终 CV 意义下的最佳分类准确率。 10. bestc:最佳的参数 c。 11. bestg:最佳的参数 g。 12. ga_option:记录 GA 中的一些参数。 13. ========================================================== 14. 利用 GA 参数寻优函数(回归问题):gaSVMcgForRegress 15. [bestCVmse,bestc,bestg,ga_option]= 16. gaSVMcgForRegress(train_label,train,ga_option) 17. 其输入输出与 gaSVMcgForClass 类似,这里不再赘述。 复制代码 gaSVMcgForClass.m 源代码: 1. function [BestCVaccuracy,Bestc,Bestg,ga_option] = gaSVMcgForClass(train_label,train_data,ga_option) 2. % gaSVMcgForClass 3. 4. %% 5. % by faruto 6. %Email:patrick. QQ: http://blog.sina.com.cn/faruto BNU 7. %last modified
8. 9. %% 若转载请注明: 10. % faruto and liyang , LIBSVM-farutoUltimateVersion 11. % a toolbox with implements for support vector machines based on libsvm, 2009. 12. % 13. % Chih-Chung Chang and Chih-Jen Lin, LIBSVM : a library for 14. % support vector machines, 2001. Software available at 15. % http://www.csie.ntu.edu.tw/~cjlin/libsvm 16. 17. %% 参数初始化 18. if nargin == 2 19. ga_option = struct('maxgen',200,'sizepop',20,'ggap',0.9,... 20. 'cbound',[0,100],'gbound',[0,1000],'v',5); 21. end 22. % maxgen:最大的进化代数,默认为 200,一般取值范围为[100,500] 23. % sizepop:种群最大数量,默认为 20,一般取值范围为[20,100] 24. % cbound = [cmin,cmax],参数 c 的变化范围,默认为(0,100] 25. % gbound = [gmin,gmax],参数 g 的变化范围,默认为[0,1000] 26. % v:SVM Cross Validation 参数,默认为 5 27. 28. %% 29. MAXGEN = ga_option. 30. NIND = ga_option. 31. NVAR = 2; 32. PRECI = 20; 33. GGAP = ga_option. 34. trace = zeros(MAXGEN,2); 35. 36. FieldID = ... 37. [rep([PRECI],[1,NVAR]);[ga_option.cbound(1),ga_option.gbound(1);ga_ option.cbound(2),ga_option.gbound(2)]; ... 38. [1,1;0,0;0,1;1,1]]; 39. 40. Chrom = crtbp(NIND,NVAR*PRECI); 41. 42. gen = 1; 43. v = ga_option.v; 44. BestCVaccuracy = 0; 45. Bestc = 0; 46. Bestg = 0; 47. %% 48. cg = bs2rv(Chrom,FieldID); 49. 50. for nind = 1:NIND 51. cmd = ['-v ',num2str(v),' -c ',num2str(cg(nind,1)),' -g ',num2str(cg(nind,2))]; 52. ObjV(nind,1) = svmtrain(train_label,train_data,cmd); 53. end 54. [BestCVaccuracy,I] = max(ObjV); 55. Bestc = cg(I,1); 56. Bestg = cg(I,2); 57. 58. %% 59. while 1 60. % for gen = 1:MAXGEN 61. FitnV = ranking(-ObjV); 62. 63. SelCh = select('sus',Chrom,FitnV,GGAP); 64. SelCh = recombin('xovsp',SelCh,0.7); 65. SelCh = mut(SelCh); 66. 67. cg = bs2rv(SelCh,FieldID); 68. for nind = 1:size(SelCh,1) 69. cmd = ['-v ',num2str(v),' -c ',num2str(cg(nind,1)),' -g ',num2str(cg(nind,2))]; 70. ObjVSel(nind,1) = svmtrain(train_label,train_data,cmd); 71. end 72. 73. [Chrom,ObjV] = reins(Chrom,SelCh,1,1,ObjV,ObjVSel); 74. 75. if max(ObjV) &= 50 76. 77. end 78. 79. [NewBestCVaccuracy,I] = max(ObjV); 80. cg_temp = bs2rv(Chrom,FieldID); 81. temp_NewBestCVaccuracy = NewBestCV 82. 83. if NewBestCVaccuracy & BestCVaccuracy 84. BestCVaccuracy = NewBestCV 85. Bestc = cg_temp(I,1); 86. Bestg = cg_temp(I,2); 87. end 88. 89. if abs( NewBestCVaccuracy-BestCVaccuracy ) &= 10^(-2) && ... 90. cg_temp(I,1) & Bestc 91. BestCVaccuracy = NewBestCV 92. Bestc = cg_temp(I,1); 93. Bestg = cg_temp(I,2); 94. end 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133.trace(gen,1) = max(ObjV); trace(gen,2) = sum(ObjV)/length(ObjV); gen = gen+1; if gen &= MAXGEN/2 end if BestCVaccuracy &=80 && ... ( temp_NewBestCVaccuracy-BestCVaccuracy ) &= 10^(-2) end if gen == MAXGEN end end gen = gen -1; %% trace = round(trace*1; plot(trace(1:gen,1),'r*-','LineWidth',1.5); plot(trace(1:gen,2),'o-','LineWidth',1.5); legend('最佳适应度','平均适应度',3); xlabel('进化代数','FontSize',12); ylabel('适应度','FontSize',12); axis([0 gen 0 100]); line1 = '适应度曲线 Accuracy[GAmethod]'; line2 = ['(终止代数=', ... num2str(gen),',种群数量 pop=', ... num2str(NIND),')']; line3 = ['Best c=',num2str(Bestc),' g=',num2str(Bestg), ... ' CVAccuracy=',num2str(BestCVaccuracy),'%']; title({line1;line2;line3},'FontSize',12);
二参数遗传算法MATLAB源程序_计算机软件及应用_IT/计算机_专业资料。用遗传算法求...采用轮盘赌策略选择个体,以一点交叉算法和最优个体保存策略产生下一代种群。初始...具有多个选项的遗传算法工具可用于问题创建、适应度计算、选择、交叉和变异。 ...算法来寻找最佳起始点,然后利用优化工具箱或用 MATLAB 程序来进一 步寻找最优...遗传算法优化相关MATLAB算法实现_工学_高等教育_教育专区。MATLAB实现遗传算法,...遗传算法的做法是把问题参数编码为染色体,再利用迭代的 方式进行选择、 交叉以及...三个遗传算法matlab程序实例_IT/计算机_专业资料。遗传算法 matlab pid参数优化 ...(selectprob);%选择最优的概率 x=zeros(m,2); x(:,1)=[m:-1:1]';...遗传算法 MATLAB 代码实现本题中控制参数如下: (1)适应度函数形式 FitnV=...跟踪 每次迭代后的最优解和均值存放在 trace 中,在后续的作图中可选择调用出来...遗传算法经典MATLAB代码_计算机软件及应用_IT/计算机_...(4x)的最大值,其中 0&=x&=9 【分析】选择二...Term 结束函数时传递个 maxGenTerm 的参数,即遗传...遗传算法的MATLAB程序实例_计算机软件及应用_IT/...四 选择复制 选择或复制操作是决定哪些个体可以进入下...的整个空间,因此可以在一定程度上求得全局最优解。...(2) 具有多个选项的遗传算法工具可用于问题创建、适应度计算、选择、交叉和变异...算法来寻找最佳起始点,然后利用优化工具箱或用 MATLAB 程序来进一 步寻找最优...遗传算法的MATLAB程序实例_IT/计算机_专业资料。遗传算法遗传算法的程序实例 如求...的一个参数的编码放入新种群 的整个空间,因此可以在一定程度上求得全局最优解...工具箱实现对控制电机的 PID 进行参数优化, 利用 matlab 的仿真功能可以观察控制...利用遗传算法优化过程 1)根据遗传算法优缺点这里选择遗传代数为 100,种群大小为 ...
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。libsvm-mat-加强工具箱介绍&by&faruto
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类似,这里不再赘述。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。网站已改版,请使用新地址访问:
gaSVMcgForRegress Matlab使用pso进行svm参 化寻优
238万源代码下载- www.pudn.com
&文件名称: gaSVMcgForRegress
& & & & &&]
&&所属分类:
&&开发工具: matlab
&&文件大小: 2 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:Matlab使用pso进行svm参数优化寻优-Matlab were svm parameter optimization using pso optimization
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&gaSVMcgForRegress.m
&输入关键字,在本站238万海量源码库中尽情搜索:只需一步,快速开始
扫一扫,访问微社区
查看: 4979|回复: 3|关注: 0
libsvm工具箱psoSVMcgForRegress
<h1 style="color:# 麦片财富积分
新手, 积分 18, 距离下一级还需 32 积分
关注者: 3
使用libsvm工具箱中的函数psoSVMcgForRegress,编写了点pso_SVM数据回归程序,结果显示预测很不理想,程序也不报错,有点无从下手的状态,拿出来大家探讨探讨
& &% 开始计时
%% ==================下载数据=======================
a=csvread('torque.csv');
%% ==================训练数据========================
% 训练数据提取,将行号为奇数的数据选出作为训练数据
n=floor(size(a,1)/2)+1;& &%floor向下取整,仅在总行数为奇数的情况试验过,偶数情况待修正
for i=1:n
& & X(i,1)=a(i+i-1,1);
& & Y(i,1)=a(i+i-1,2);
end
%% =====================测试数据=====================
n=n-1; %将行号是偶数的数据选出作为测试数据
for i=1:n& &
& & Xt(i,1)=a(i+i,1);
& & Yt(i,1)=a(i+i,2);
end
%% =====================数据归一化=====================
[Ym,ps] = mapminmax(Y',);
Ym=Ym';
[Xm,ps] = mapminmax(X',);
Xm=Xm';
[Ytm,ps] = mapminmax(Yt',);
Ytm=Ytm';
p=&&% 保存下来留作反归一化
[Xtm,ps] = mapminmax(Xt',);
Xtm=Xtm';
%% =====================参数寻优=====================
[bestCVaccuracy,bestc,bestg]= psoSVMcgForRegress(Ym,Xm);
cmd = ['-c ', num2str(bestc), ' -g ', num2str(bestg) , ' -s 3 -p 0.4 -n 0.1'];
model = svmtrain(Ym, X, cmd);
%% =====================数据预测=====================
[predict,accuracy] = svmpredict(Ytm,Xt,model);
predict = mapminmax('reverse',predict,p);
%% =====================图像显示=====================
figure(2);
plot(predict,'ro:');&&
hold on
plot(Yt,'b+:');
text(3,13,'圆圈代表LSSVM预测值');
text(3,12,'加号代表有限元仿真值');
xlabel('时刻/ms');
ylabel('转矩/T');
%% ======================程序运行时间输出========================
tim=
disp(['耗时:',num2str(tim)]);
复制代码
16:25 上传
点击文件名下载附件
768 Bytes, 下载次数: 8085
解压一下就是csv数据
<h1 style="color:# 麦片财富积分
关注者: 3
静下心来一看,原来是归一化数据使用出了问题。。
<h1 style="color:# 麦片财富积分
关注者: 3
pennyzhuzhi朋友,数据行列需要转换(即使矩阵转置),问题应该就在这里,时间隔得有点远,记得不清了
<h1 style="color:# 麦片财富积分
cmd = ['-c ', num2str(bestc), ' -g ', num2str(bestg) , ' -s 3 -p 0.4 -n 0.1'];
这句话表示什么啊?
站长推荐 /3
筑起功能安全的堡垒 - 基于模型设计的软件开发
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区豆丁微信公众号
君,已阅读到文档的结尾了呢~~
广告剩余8秒
文档加载中
遗传算法选取最优参数MATLAB程序
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
遗传算法选取最优参数MATLAB程序
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 matlab拟合函数求参数 的文章

 

随机推荐