24小时热门版块排行榜    

查看: 2432  |  回复: 1

最后一片落叶

新虫 (初入文坛)

[求助] 已经有了输入输出数据,如何在matlab中建立RBF神经网络 已有1人参与

我现在有一些数据,其中前5列是输入,最后一列是输出。如何建立一个5-3-1结构的RBF神经网络。matlab版本是R2012a

x1              x2          x3           x4            x5           y
610.0        0.3        2.0        981.0        32.1         1.83
622.0        0.35        4.55        2231.0        31.9         2.177
617.0        0.35        5.0        2451.0        30.9         2.1595
625.0        0.32        4.7        2304.0        31.7         2.0
658.0        0.38        4.95        2427.0        31.2         3.036
759.0        0.4        3.9        1912.0        31.2         3.036
770.0        0.38        4.83        2368.0        31.6         2.926
765.0        0.32        4.43        2172.0        32.8         2.448
770.0        0.34        6.8        3334.0        32.6         2.618
566.0        0.32        3.55        1740.0        32.0         1.8112
627.0        0.5        4.15        2035.0        32.1         3.135
681.0        0.2        3.2        1716.0        32.1         1.362
681.0        0.48        4.75        2329.0        32.7        3.2688
663.0        0.42        6.5        3187.0        31.8        2.7846
666.0        0.58        6.0        2942.0        33.3        3.8628
604.0        0.6        6.3        3089.0        31.8        3.624
590.0        0.64        5.1        2500.0        32.5        3.776
676.0        0.42        6.5        3187.0        32.3        2.8392
511.0        0.48        6.6        3236.0        33.0        2.4528
507.0        0.38        1.5        735.0        31.4        1.9266
547.0        0.56        7.5        3456.0        32.0        3.0632
559.0        0.58        5.1        2500.0        32.1        3.2422
612.0        0.5        4.5        2206.0        32.0        3.06
648.0        0.46        4.2        2059.0        31.6        2.9808
712.0        0.3        4.35        2133.0        32.1        2.136
706.0        0.3        1.05        515.0        31.5        2.118
759.0        0.34        3.55        1740.0        32.0        2.5806
655.0        0.24        2.75        1348.0        30.7        1.572
660.0        0.24        0.85        417.0        33.8        1.584
回复此楼

» 收录本帖的淘帖专辑推荐

source

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

生生不息222

新虫 (初入文坛)

【答案】应助回帖

function t=net(p)
%%原始数据的输入
clc,clear,close all

xingbiebili= [1.03         1.03         1.03         1.03         1.04         1.04         1.04         1.01         1.01         1.00         1.01         1.00         1.01         1.01         1.01         1.00         1.03         1.03         1.03         1.03         1.09         1.09         1.09         1.09         1.09
];
%性别比例
lishi=[904.3        919.2        935        950        965        981        1028        1047        1061.00         107500.00%        1086        1094        1102        1112        1125        1251.1        1259.4        1240        1245.6        1257.2        1363.6        1385.1        1423.2        1456.4        1492.7
]
%历史人口数量
renkoushuliang = [904.3        919.2        935        950        965        981        1028        1047        1061        1075        1086        1094        1102        1112        1125        1251.1        1259.4        1240        1245.6        1257.2        1363.6        1385.1        1423.2        1456.4        1492.7
];
%北京市人口数量 单位:万人
p = [xingbiebili;chushenglv;siwanglv;ziranzengzhanglv;lishi];   %输入数据矩阵
t = renkoushuliang;          %目标矩阵

%%归一化处理
[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t);  %对pt矩阵进行归一化处理
dx = [-1,1;-1 1;-1,1;-1 1;-1 1];                       %

%BP网络训练
net = newrb(pn,tn,0,20,5);

%%利用原始数据对BP网络仿真
an = sim(net,pn);                    %用训练好的模型进行仿真
a = postmnmx(an,mint,maxt);          %把仿真到的数据还原到原始的数量级

%%对比测试
x =1:25;
newk = a;
figure;
plot(x,newk,'r-o',x,renkoushuliang,'b--+');
legend('网络输出人口数量','实际人口数量');
xlabel('年份');
ylabel('人口数量/万人');
title('模拟结果图');


%利用训练好的网络进行预测
pnew = [1.03         1.04         1.03         1.03         1.04         1.07         1.06         1.07
0.629        0.622        0.816        0.789        0.766        0.727        0.829        0.905
0.52        0.494        0.483        0.459        0.433        0.429        0.427        0.431
0.109        0.128        0.333        0.33        0.333        0.298        0.402        0.474
1492.7        1538.0        1601.0        1676.0        1771.0        1860.0        1961.9        2018.6
];
pnewn =tramnmx(pnew,minp,maxp);
%利用原始输入数据的归一化参数对新参数进行归一化
anewn =sim(net,pnewn);
%利用归一化后的数据进行仿真
yucejieguo =postmnmx(anewn,mint,maxt)
%把仿真得到的数据还原原始的数量级
figure
plot(yucejieguo)


参照这个代码自己改一下就好了,很简单
2楼2014-11-24 11:35:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 最后一片落叶 的主题更新
信息提示
请填处理意见