归一化方法及 MATLAB函数
数据归一化方法是神经网络预测前对数据常做的一种处理方法。数据归一化处理把所有数据都转化为[0,1]之间的数,其目的是取消各维数据间数量级差别,避免因为输入输出数据数量级差别较大而造成网络预测误差较大数据归一化的方法主要有以下两种。
最大最小法 | 平均数方差法 |
---|
x
k
=
x
k
−
x
m
a
x
x
m
a
x
−
x
m
i
n
x_{k}=\frac{x_{k}-x_{max}}{x_{max}-x_{min}}
xk=xmax−xminxk−xmax |
x
k
=
x
k
−
x
m
e
a
n
x
v
a
r
x_{k}=\frac{x_{k}-x_{mean}}{x_{var}}
xk=xvarxk−xmean |
x
m
i
n
x_{min}
xmin为数据序列中的最小数;
x
m
a
x
x_{max}
xmax为序列中的最大数 |
x
m
e
a
n
x_{mean}
xmean为数据序列的均值;
x
v
a
r
x_{var}
xvar为数据的方差 |
例如采用第一种最大最小法,归一化函数采用MATLAB自带函数mapminmax,该函数有多种形式,常用的方法如下:
%input_train,output_train分别是训练输入,输出数据
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
input_train,output_train分别是训练输入,输出原始数据;inputn,outputn是归一化后的数据,inputps,outputps是归一化后得到的结构体,里面包含了数据最大值,最小值,平均值等信息,可用于测试数据归一化和反归一化。测试数据归一化和反归一化程序如下
inputn_test= mapminmax('apply',input_test,inputps); %测试输入数据归一化
BPoutput= mapminmax('reverse',an,outputps); %网络预测数据反归一化
input_test是预测输入数据; inputn_test是一化后的预测数据; 'apply’表示根据 inputps的值对 input_testi进行归一化。an是网络预测结果; outputps是训练输出数据归一化得到的结构体; BPoutput是反归一化之后的网络预测输出; 'reverse’表示对数据进行反归一化
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)