基于BP/GRNN神经网络的安全性数据预测matlab仿真
Posted fpga和matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于BP/GRNN神经网络的安全性数据预测matlab仿真相关的知识,希望对你有一定的参考价值。
目录
作者ID :fpga和matlab
CSDN主页:https://blog.csdn.net/ccsss22?type=blog
擅长技术:
1.无线基带,无线图传,编解码
2.机器视觉,图像处理,三维重建
3.人工智能,深度学习
4.智能控制,智能优化
5.其他
一、理论基础
广义回归神经网络的理论基础是非线性核回归分析,非独立变量y相对于独立变量x的回归分析实际上是计算具有最大概率值的y。设随机变量x和y的联合概率密度函数为f (x ,y),已知x的观测值为X,则y相对于X的回归,即条件均值为:
对于未知的概率密度函数f (x, y),可由x和y的观测样本经非参数估计得:
根据式子1和2可以得到:
简化后可得:
GRNN通常被用来进行函数逼近。它具有一个径向基隐含层和一个特殊的线性层。第一层和第二层的神经元数目都与输入的样本向量对的数目相等。GRNN结构如图1所示,整个网络包括四层神经元:输入层、模式层、求和层与输出层。
二、核心程序
............................................................
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))))
三、测试结果
A05-51
以上是关于基于BP/GRNN神经网络的安全性数据预测matlab仿真的主要内容,如果未能解决你的问题,请参考以下文章