matlab卷积完为什么要归一化,为什么要进行反归一化处理,而且反归一化什么意思?...
归一化处理我理解,但是很多例子的反归一化我就不是很明白 。如下面这个例子:
%准备好训练集
%人数(单位:万人)
numberOfPeople=[20.55 22.44 25.37 27.13 29.45 30.10 30.96 34.06 36.42 38.09 39.13 39.99 41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63];
%机动车数(单位:万辆)
numberOfAutomobile=[0.6 0.75 0.85 0.9 1.05 1.35 1.45 1.6 1.7 1.85 2.15 2.2 2.25 2.35 2.5 2.6 2.7 2.85 2.95 3.1];
%公路面积(单位:万平方公里)
roadArea=[0.09 0.11 0.11 0.14 0.20 0.23 0.23 0.32 0.32 0.34 0.36 0.36 0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79];
%公路客运量(单位:万人)
passengerVolume = [5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024 19490 20433 22598 25107 33442 36836 40548 42927 43462];
%公路货运量(单位:万吨)
freightVolume = [1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524 11115 13320 16762 18673 20724 20803 21804];
%输入数据矩阵
p = [numberOfPeople; numberOfAutomobile; roadArea];
%目标(输出)数据矩阵
t = [passengerVolume; freightVolume];
%对训练集中的输入数据矩阵和目标数据矩阵进行归一化处理
[pn, inputStr] = mapminmax(p);
[tn, outputStr] = mapminmax(t);
%建立BP神经网络
net = newff(pn, tn, [3 7 2], {'purelin', 'logsig', 'purelin'});
%每10轮回显示一次结果
net.trainParam.show = 10;
%最大训练次数
net.trainParam.epochs = 5000;
%网络的学习速率
net.trainParam.lr = 0.05;
%训练网络所要达到的目标误差
net.trainParam.goal = 0.65 * 10^(-3);
%网络误差如果连续6次迭代都没变化,则matlab会默认终止训练。为了让程序继续运行,用以下命令取消这条设置
net.divideFcn = '';
%开始训练网络
net = train(net, pn, tn);
%使用训练好的网络,基于训练集的数据对BP网络进行仿真得到网络输出结果
%(因为输入样本(训练集)容量较少,否则一般必须用新鲜数据进行仿真测试)
answer = sim(net, pn);
%反归一化
answer1 = mapminmax('reverse', answer, outputStr);
%绘制测试样本神经网络输出和实际样本输出的对比图(figure(1))-------------------------------------------
t = 1990:2009;
%测试样本网络输出客运量
a1 = answer1(1,:);
%测试样本网络输出货运量
a2 = answer1(2,:);
figure(1);
subplot(2, 1, 1); plot(t, a1, 'ro', t, passengerVolume, 'b+');
legend('网络输出客运量', '实际客运量');
xlabel('年份'); ylabel('客运量/万人');
title('神经网络客运量学习与测试对比图');
grid on;
subplot(2, 1, 2); plot(t, a2, 'ro', t, freightVolume, 'b+');
legend('网络输出货运量', '实际货运量');
xlabel('年份'); ylabel('货运量/万吨');
title('神经网络货运量学习与测试对比图');
grid on;
%使用训练好的神经网络对新输入数据进行预测
%新输入数据(2010年和2011年的相关数据)
newInput = [73.39 75.55; 3.9635 4.0975; 0.9880 1.0268];
%利用原始输入数据(训练集的输入数据)的归一化参数对新输入数据进行归一化
newInput = mapminmax('apply', newInput, inputStr);
%进行仿真
newOutput = sim(net, newInput);
%反归一化
newOutput = mapminmax('reverse',newOutput, outputStr);
disp('预测2010和2011年的公路客运量分别为(单位:万人):');
newOutput(1,:)
disp('预测2010和2011年的公路货运量分别为(单位:万吨):');
newOutput(2,:)
%在figure(1)的基础上绘制2010和2011年的预测情况-------------------------------------------------------
figure(2);
t1 = 1990:2011;
subplot(2, 1, 1); plot(t1, [a1 newOutput(1,:)], 'ro', t, passengerVolume, 'b+');
legend('网络输出客运量', '实际客运量');
xlabel('年份'); ylabel('客运量/万人');
title('神经网络客运量学习与测试对比图(添加了预测数据)');
grid on;
subplot(2, 1, 2); plot(t1, [a2 newOutput(2,:)], 'ro', t, freightVolume, 'b+');
legend('网络输出货运量', '实际货运量');
xlabel('年份'); ylabel('货运量/万吨');
title('神经网络货运量学习与测试对比图(添加了预测数据)');
grid on;
预测的时候反归一化为啥呀
matlab卷积完为什么要归一化,为什么要进行反归一化处理,而且反归一化什么意思?...相关推荐
- 【GRU时序预测】基于matlab卷积神经网络结合门控循环单元CNN-GRU时间序列预测【含Matlab源码 2287期】
⛄一.CNN-GRU数据预测 1 理论基础 1.1 CNN算法 负荷序列数据为一维数据,用一维卷积核对数据进行卷积处理,以获取数据的特征. 现设定卷积核的维度为3,移动步长为1,对输入数据进行卷积,以 ...
- 【数字信号处理】卷积编程实现 ( Matlab 卷积和多项式乘法 conv 函数 | 使用 matlab 代码求卷积并绘图 )
文章目录 一.Matlab 卷积和多项式乘法 conv 函数 二.使用 matlab 代码求卷积并绘图 一.Matlab 卷积和多项式乘法 conv 函数 Matlab 文档地址 : https:// ...
- 卷积在计算机中实现+pool作用+数据预处理目的+特征归一化+理解BN+感受野理解与计算+梯度回传+NMS/soft NMS
一.卷积在计算机中实现 1.卷积 将其存入内存当中再操作(按照"行先序"): 这样就造成混乱. 故需要im2col操作,将特征图转换成庞大的矩阵来进行卷积计算,利用矩阵加速来实现, ...
- matlab卷积相关
matlab卷积计算时,一般有conv2,filter2等函数,先构造两个矩阵, A = randn(4); h = rand(3); 各个函数的用法如下: filter C = conv2(b , ...
- Matlab卷积神经网络(CNN)手写数字识别(一)
今天买的书到了,开始接触卷积神经网络,展示书中内容~ Matlab卷积神经网络手写数字识别(一) 机器学习的基本流程 加载Matlab自带数据集 机器学习的基本流程 在机器学习中,一般将数据集划分为两 ...
- 卷积神经网络代码 Matlab,卷积神经网络matlab程序
cnn卷积神经网络用什么语言来写pascial . 200+这个是hintonmatlab代码的C++改写版.convnetjs-Star,SAE,首选的肯定是LIBSVM这个库;RBM#47.Dee ...
- 归一化处理公式_数学建模中的数据处理——归一化处理
关于数据处理,很常见的一个方法就是"去量纲处理",在大家数据处理中经常使用到数据的标准化处理,后边的主成分分析法,因子分析,聚类分析等,都会使用到数据归一化处理.,在此分享一下关于 ...
- python归一化sklearn_用sklearn进行对数据标准化、归一化以及将数据还原详解
如何用sklearn进行对数据标准化.归一化以及将数据还原 在对模型训练时,为了让模型尽快收敛,一件常做的事情就是对数据进行预处理. 这里通过使用sklearn.preprocess模块进行处理. 一 ...
- 处理数据时不进行归一化会有什么影响?归一化的作用是什么?什么时候需要归一化?有哪些归一化的方法?
归一化化定义:我是这样认为的,归一化化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内.首先归一化是为了后面数据处理的方便,其次是保正程序运行时收敛加快. 所谓特征归一化,就 ...
最新文章
- 冲量(momentum)的原理与Python实现
- CentOS7Jenkins安装
- python enumerate()
- 如何实现两列等高效果?
- 设计师网站导航的好处
- 自定义注解完成数据库切库
- jave se基础复习2
- Unity3D之NGUI基础2:使用NGUI
- AngularJS学习之旅—AngularJS 事件(十四)
- autocad.net QQ群:193522571 判断string中是否包含集合中所有的字符串
- 硬件设计论坛_从全球EDA产业发展看EDA365电子论坛作用
- ESP-Drone控制板设计的第二个任务-绘制USB-TTL串口下载电路和ESP32-S2芯片内置USB接口电路
- 搜索引擎基本工作原理
- 安卓小项目之刀刀人脸识别系统
- STM32 W5500以太网通讯
- Android自学之路,DrawerLayout must be measured with MeasureSpec.EXACTLY.错误
- 真正想做的人,什么都不说
- 开源多端合一小程序源码系统+前端+后端+搭建教程
- 直接计算法弱磁控制策略 额定转速以下采用最大转矩电流比控制
- error C2440: “=”: 无法从“const _Elem *”转换为“char *”