【SVM预测】基于遗传算法优化实现SVM数据分类matlab源码

201 阅读1分钟

1 神经网络-支持向量机

2 代码

%遗传算法主程序
%Name:genmain05.m
clear
clf
popsize=20; %群体大小
chromlength=10; %字符串长度(个体长度)
pc=0.6; %交叉概率
pm=0.001; %变异概率pop=initpop(popsize,chromlength); %随机产生初始群体
for i=1:20 %20为迭代次数
[objvalue]=calobjvalue(pop); %计算目标函数
fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度
[newpop]=selection(pop,fitvalue); %复制
[newpop]=crossover(pop,pc); %交叉
[newpop]=mutation(pop,pc); %变异
[bestindividual,bestfit]=best(pop,fitvalue); %求出群体中适应值最大的个体及其适应值
y(i)=-max(bestfit);
n(i)=i;
pop5=bestindividual;
x(i)=decodechrom(pop5,1,chromlength)*10/1023;
pop=newpop;
end
​
fplot('x^2-4*x+20',[0 10])
hold on
plot(x,y,'r*')
hold off
​
​
[z index]=min(y); %计算最大值及其位置,这里取的是y向量中的最大值,如果求最小值应该取min,同时修改适应度函数
x5=x(index)%计算最大值对应的x值
y=z

3 仿真结果

img

在这里插入图片描述

4 参考文献

[1]连可, 黄建国, 王厚军,等. 一种基于遗传算法的SVM决策树多分类策略研究[J]. 电子学报, 2008, 36(008):1502-1507.

5 MATLAB代码与数据下载地址

见博客主页