clc
clear
close all
load maydata.mat
rand('state',0)
n = randperm(744);
xg = zeros(8,1);
for ii = 1:7
xg(ii) = myPearson(num(:,ii) , num(:,8));
end
figure
plot(xg,'k-o')
ylabel('相关性')
xlabel('因子')
input_train=num(n,1:6)';%训练数据的输入数据
output_train=num(n,8)';%训练数据的输出数据
input_test=num(601:744,1:6)';%测试数据的输入数据
output_test=num(601:744,8)'; %测试数据的输出数据
input_test1=num2(:,1:6)';
%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train,0,1);%训练数据的输入数据的归一化
[outputn,outputps]=mapminmax(output_train,0,1);%训练数据的输出数据的归一化de
%% BP网络训练
% %初始化网络结构
%trainc traincgb traincgf traincgp traingda traingdx trainlm
%trainoss trainr trainrp trains trainscg
net=newff(minmax(inputn),[15,1],{'logsig','tansig'},'trainlm');
%net.trainParam.showWindow = false;%关闭训练窗口
%net.trainParam.max_fail = 9;
net.trainParam.epochs=5000;%最大迭代次数
net.trainParam.lr=0.1;%学习率
net.trainParam.goal=0.001;%学习目标
%网络训练
net=train(net,inputn,outputn);
%% BP网络预测
%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);
inputn_test1=mapminmax('apply',input_test1,inputps);
outputn_test=mapminmax('apply',output_test,outputps);
%网络预测输出
an=sim(net,inputn_test);
an1=sim(net,inputn);
an2023=sim(net,inputn_test1);
an2023(an2023<0)=0;
[MSE0 ,RMSE0, MBE0 ,MAE0,MAPE0 ] =MSE_RMSE_MBE_MAE(outputn,an1)
[MSE ,RMSE, MBE ,MAE ,MAPE] =MSE_RMSE_MBE_MAE(outputn_test,an)
R20 = R_2(outputn,an1)
R2 = R_2(outputn_test,an)
%网络输出反归一化
BPoutput=(mapminmax('reverse',an,outputps));
BPoutput1=(mapminmax('reverse',an1,outputps));
BPoutput2023=(mapminmax('reverse',an2023,outputps));
%% 结果分析
figure
plot(BPoutput,'r-o')%预测的结果数据画图-代表虚线,O代表圆圈标识,r代表红色
hold on
plot(output_test,'k--*');%期望数据,即真实的数据画图,-代表实现,*就是代表*的标识,k代表黑色
legend('BP神经网络仿真值','真实值','Location','southeast')%标签
title('BP神经网络','fontsize',12)%标题 字体大小为12
xlabel('样本','fontsize',12)%X轴
set(gca,'fontsize',12)
figure
plot(BPoutput1,'r-o')%预测的结果数据画图-代表虚线,O代表圆圈标识,r代表红色
hold on
plot(output_train,'k--*');%期望数据,即真实的数据画图,-代表实现,*就是代表*的标识,k代表黑色
legend('BP神经网络训练拟合值','真实值','Location','southeast')%标签
title('BP神经网络','fontsize',12)%标题 字体大小为12
xlabel('样本','fontsize',12)%X轴
set(gca,'fontsize',12)
%预测误差
error=BPoutput-output_test;
figure
plot(error,'-*')
title('BP网络预测误差','fontsize',12)
ylabel('误差','fontsize',12)
xlabel('样本','fontsize',12)
set(gca,'fontsize',12)
figure
plot(BPoutput1,output_train,'ko')
hold on
a = polyfit(BPoutput1,output_train,1);
y = polyval(a,[min([BPoutput1 output_train]) max([BPoutput1 output_train])]);
plot([min([BPoutput1 output_train]) max([BPoutput1 output_train ])],y,'k-','LineWidth',1.5)
hold on
plot([min([BPoutput1 output_train]) max([BPoutput1 output_train]) ],[min([BPoutput1 output_train]) max([BPoutput1 output_train])],'b-','LineWidth',1.5)
hold on
xlim([min([BPoutput1 output_train]) max([BPoutput1 output_train ])])
ylim([min([BPoutput1 output_train]) max([BPoutput1 output_train ])])
xlabel('预测值')
ylabel('实际值')
legend('训练数据集','线性拟合','Y=X')
error1 = BPoutput1 - output_train;
figure
plot(BPoutput2023,'r-o')%预测的结果数据画图-代表虚线,O代表圆圈标识,r代表红色
hold on
ylabel('人口')
title('2023')
bp数据人口预测.rar,自适应动量因子梯度下降BP神经网络(代码完整,数据齐全)
版权申诉
107 浏览量
2024-01-15
22:23:59
上传
评论
收藏 1.66MB RAR 举报
神经网络机器学习智能算法画图绘图
- 粉丝: 2437
- 资源: 598
最新资源
- matlab基于线性准则的考虑风力发电不确定性的分布鲁棒优化机组组合
- 基于C语言+stm32f4的modbus tcp上下位机通信项目+上位机由LabVIEW编写+源码+开发文档+视频教程(高分项目
- 基于Python的Struts2漏洞扫描器设计源码
- HTML+CSS制作的个人博客网页.zip
- 基于htmlde 爱心代码,但HTML网页源码.zip
- 51单片机实现LED流水灯
- 基于Python的obEspoir分布式游戏框架设计源码
- 基于python的机械设计实用计算器,可计算电动机,传动装置,V带轮,齿轮,轴,轴承的几何或者力,运动学参数数值+源码+开发文档
- 基于HTML +JavaScript的元旦倒计时代码.docx
- 【Unity资源免费分享】孩子益智小游戏unity 5x系列Baby Doll House Cleaning
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈