m基于GA遗传优化的GRNN广义回归神经网络销售数据预测算法matlab仿真

1.算法描述

随着市场经济的发展和全球化,国内外企业面临着越来越残酷的市场竞争,要想赢得竞争,赢得市场,从事商品销售的单位必须在短时间内,以最低的成本将产品提供给客户,这使得对市场的变化和本身业务的发展前景进行估计。


制冷压缩机的主要功能是将低压气体提升为高压气体,是制冷设备的核心部件,其广泛应用在空调冰箱等各类电器设备中。因此制冷压缩机有着十分广泛的市场前景,为了获得较为准确的市场预期,我们需要使用已有的理论知识和科学方法,对制冷压缩机的市场发展趋势进行预先估计,从而进一步减少风险,避免企业决策的盲目性。


遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术。


算法的算法流程图如下图所示:


从图1的算法流程图可知,遗传算法,其主要步骤如下所示:


步骤一、选择问题解的一个编码,给出一个包含N个染色体的初始种群。


步骤二、对种群中的每一个染色体,分别计算其对应的适应函数值。


步骤三、若停止规则满足,则算法停止,否则计算概率P,并以此概率分布,从中随机选取N个染色体构成一个新的种群。


步骤四、通过交叉(交叉概率为),得到N个染色体的交叉概率值。


步骤五、以较小的变异概率,使得某染色体的一个基因发生变异,形成新的群体重复第步骤二步。


对GRNN网络来说,当确定了学习样本,则相应的网络结构和各神经元之间的连接权值也就确定出来,网络的训练实际上只是确定平滑参数的过程。GRNN网络中的即相当于径向基函数的分布密度SPREAD。一般情况下,SPREAD越大,逼近过程就越平滑,但误差也增大;SPREAD越小,函数逼近越精确,但逼近过程也越不平滑。


平滑参数的取值会在很大程度上影响着广义回归神经网络的预测性能,根据式子:


2.仿真效果预览

matlab2022a仿真结果如下:


3.MATLAB核心程序

data     = [data2010',data2011',data2012'];

data0    = data;

%归一化

Xmin     = min(data);

Xmax     = max(data);

data     = (data-min(data))/(max(data)-min(data));


figure;

plot(data(1:12),'b-x');

hold on

plot(data(13:24),'r-s');

hold on

plot(data(25:36),'k-o');

hold on

legend('2010销售量','2011销售量','2012销售量');

xlabel('Times(month)');

ylabel('销售量');

axis([0,12,0,1]);

grid on;

figure;

plot(data0(1:12),'b-x');

hold on

plot(data0(13:24),'r-s');

hold on

plot(data0(25:36),'k-o');

hold on

legend('2010销售量','2011销售量','2012销售量');

xlabel('Times(month)');

ylabel('销售量');

axis([0,12,0,1500]);

grid on;

%%

%使用遗传算法获得最优的平滑参数

MAXGEN = 30;

NIND   = 50;

Chrom  = crtbp(NIND,1*10);


%14个变量的区间

%优化变量如下:

%多边形个数N,1~100

Areas  = [0;

1];


FieldD = [rep([10],[1,1]);Areas;rep([0;0;0;0],[1,1])];


alpha  = zeros(NIND,1);

alphas = zeros(MAXGEN,1);



for a=1:1:NIND

a

alpha(a)= 0.5;       

%计算对应的目标值

Result = func_obj(alpha(a),data,Xmax,Xmin);

E      = mean(abs(Result-data0(25:36)));

J(a,1) = E;

end

Objv  = J;

gen   = 0;


while gen < MAXGEN;   

gen

FitnV=ranking(Objv);    

Selch=select('sus',Chrom,FitnV);    

Selch=recombin('xovsp', Selch,0.95);   

Selch=mut( Selch,0.05);   

phen1=bs2rv(Selch,FieldD);   


for a=1:NIND  

alpha(a)= phen1(a,1);      

%计算对应的目标值

Result  = func_obj(alpha(a),data,Xmax,Xmin);

E       = mean(abs(Result-data0(25:36)));

JJ(a,1) = E;

end

Objvsel      = JJ;    

[Chrom,Objv] = reins(Chrom,Selch,1,1,Objv,Objvsel);   

gen          = gen + 1;

Error(gen)   = mean(JJ);

alphas(gen)  = mean(alpha);

end

Result  = func_obj(alphas(end),data,Xmax,Xmin);

%画图

figure;

subplot(121)

plot(alphas,'b-o');

hold on;

xlabel('迭代次数');

ylabel('平滑因子');

axis square;

grid on;


subplot(122)

plot(Error,'b-o');

hold on;

xlabel('迭代次数');

ylabel('Error');

axis square;

grid on;


load NET.mat

Result  = sim(net,1:12);

Result  = Result*(Xmax-Xmin)+Xmin;


figure

plot(data0(25:36),'b-o');

hold on

plot(Result,'r-s');

legend('2012销售量','预测值');

xlabel('Times(month)');

ylabel('销售量');

grid on;


figure

S = [data0(25:36);Result]';

bar(S);

legend('2012销售量','预测值');

xlabel('Times(month)');

ylabel('销售量');

save Rgrnn.mat Result

A = (Result-data0(25:36))./Result;

A = 100*A';

A

02_021m

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容