首页 > 其他分享 >基于BP/GRNN神经网络的安全性数据预测matlab仿真

基于BP/GRNN神经网络的安全性数据预测matlab仿真

时间:2022-10-29 22:31:24浏览次数:82  
标签:subplot plot GRNN hold polyfit BP matlab X0 X1


目录

​​一、理论基础​​

​​二、核心程序​​

​​三、测试结果​​


作者ID  :fpga和matlab

擅长技术:
1.无线基带,无线图传,编解码 
2.机器视觉,图像处理,三维重建 
3.人工智能,深度学习 
4.智能控制,智能优化
5.其他

一、理论基础

        广义回归神经网络的理论基础是非线性核回归分析,非独立变量y相对于独立变量x的回归分析实际上是计算具有最大概率值的y。设随机变量x和y的联合概率密度函数为f (x ,y),已知x的观测值为X,则y相对于X的回归,即条件均值为:

基于BP/GRNN神经网络的安全性数据预测matlab仿真_bp

对于未知的概率密度函数f (x, y),可由x和y的观测样本经非参数估计得: 

基于BP/GRNN神经网络的安全性数据预测matlab仿真_安全性数据预测_02

基于BP/GRNN神经网络的安全性数据预测matlab仿真_grnn_03

根据式子1和2可以得到: 

基于BP/GRNN神经网络的安全性数据预测matlab仿真_grnn_04

 简化后可得: 

基于BP/GRNN神经网络的安全性数据预测matlab仿真_bp_05

       GRNN通常被用来进行函数逼近。它具有一个径向基隐含层和一个特殊的线性层。第一层和第二层的神经元数目都与输入的样本向量对的数目相等。GRNN结构如图1所示,整个网络包括四层神经元:输入层、模式层、求和层与输出层。 

基于BP/GRNN神经网络的安全性数据预测matlab仿真_grnn_06

 

二、核心程序

............................................................

SAFE=[0.4659, 0.4542, 0.4366, 0.4042, 0.3854, 0.3801, 0.3820, 0.3857, 0.3722, 0.3665, 0.3843, 0.3688, 0.3900, 0.4000, 0.4522, 0.4692,0.4953, 0.5184, 0.5243];

% 基本安全
% 基本安全
% 基本安全
% 基本安全
% 危险
% 危险
% 危险
% 危险
% 危险
% 危险
% 危险
% 危险
% 危险
% 基本安全
% 基本安全
% 基本安全
% 基本安全
% 基本安全
% 基本安全
SAFE10=[1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1];

%GRNN神经网络训练
char = [D]';
T = [SAFE];
Net = newgrnn(char,T,25);
save Grnn.mat Net;

%%
%通过拟合的方法,得到未来的指标的数据
X0=Time';
%设置预测年份
X1=[Time,2016,2017,2018,2019,2020];

Y1=D(:,1);
Y2=D(:,2);
Y3=D(:,3);
Y4=D(:,4);
Y5=D(:,5);
Y6=D(:,6);
Y7=D(:,7);
Y8=D(:,8);
Y9=D(:,9);
Y10=D(:,10);
Y11=D(:,11);
Y12=D(:,12);
Y13=D(:,13);
Y14=D(:,14);
Y15=D(:,15);

%开始拟合
p=polyfit(X0,Y1,5);Y1_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);
p=polyfit(X0,Y2,5);Y2_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);
p=polyfit(X0,Y3,5);Y3_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);
p=polyfit(X0,Y4,5);Y4_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);

p=polyfit(X0,Y5,5);Y5_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y6,5);Y6_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y7,5);Y7_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y8,5);Y8_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;

p=polyfit(X0,Y9,5);Y9_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y10,5);Y10_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y11,5);Y11_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y12,5);Y12_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;

p=polyfit(X0,Y13,5);Y13_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y14,5);Y14_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y15,5);Y15_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;



figure;
subplot(4,4,1);plot(X0,Y1,'r*');hold on;plot(X1,Y1_,'b');
subplot(4,4,2);plot(X0,Y2,'r*');hold on;plot(X1,Y2_,'b');
subplot(4,4,3);plot(X0,Y3,'r*');hold on;plot(X1,Y3_,'b');
subplot(4,4,4);plot(X0,Y4,'r*');hold on;plot(X1,Y4_,'b');
subplot(4,4,5);plot(X0,Y5,'r*');hold on;plot(X1,Y5_,'b');
subplot(4,4,6);plot(X0,Y6,'r*');hold on;plot(X1,Y6_,'b');
subplot(4,4,7);plot(X0,Y7,'r*');hold on;plot(X1,Y7_,'b');
subplot(4,4,8);plot(X0,Y8,'r*');hold on;plot(X1,Y8_,'b');

subplot(4,4,9);plot(X0,Y9,'r*');hold on;plot(X1,Y9_,'b');
subplot(4,4,10);plot(X0,Y10,'r*');hold on;plot(X1,Y10_,'b');
subplot(4,4,11);plot(X0,Y11,'r*');hold on;plot(X1,Y11_,'b');
subplot(4,4,12);plot(X0,Y12,'r*');hold on;plot(X1,Y12_,'b');
subplot(4,4,13);plot(X0,Y13,'r*');hold on;plot(X1,Y13_,'b');
subplot(4,4,14);plot(X0,Y14,'r*');hold on;plot(X1,Y14_,'b');
subplot(4,4,15);plot(X0,Y15,'r*');hold on;plot(X1,Y15_,'b');

chars = [Y1_',Y2_',Y3_',Y4_',Y5_',Y6_',Y7_',Y8_',Y9_',Y10_',Y11_',Y12_',Y13_',Y14_',Y15_'];


char2 = [D;chars(size(D,2)+1:end,:)]';
%%
%开始预测
y=sim(Net,char2);
figure;
plot(T,'b-s','linewidth',2);
hold on
plot(y(1:length(T)+5),'r--','linewidth',2);
legend('安全性数据','预测安全性数据');
grid on
axis([0,32,0.3,0.6]);
title('GRNN神经网络预测结果');


%预测误差
Err = mean(abs(T-y(1:length(T))))

三、测试结果

基于BP/GRNN神经网络的安全性数据预测matlab仿真_神经网络_07

基于BP/GRNN神经网络的安全性数据预测matlab仿真_bp_08

基于BP/GRNN神经网络的安全性数据预测matlab仿真_神经网络_09

A05-51

标签:subplot,plot,GRNN,hold,polyfit,BP,matlab,X0,X1
From: https://blog.51cto.com/u_15815923/5806567

相关文章