归一化与反归一化

1 归一化

归一化就是把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。
归一化的目的:归一化是为了后面数据处理的方便,其次是提升模型的收敛速度和提升模型的精度。一般可分为以下两种情况
(1)归一化即把数变为(0,1)之间的小数,主要是为了数据处理方便提出来的,把数据映射到0~1范围内处理,更加便捷快速,应该归到数字信号处理范畴之内。
(2)把有量纲表达式变为无量纲表达式。归一化使一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,称为纯量。既保证了运算的便捷,又能凸显出物理量的本质含义。

2 归一化的方法

(1) 线性函数归一化(min-max scaling)

也称为最大最小化处理

x i = x i − m i n ⁡ ( x ) m a x ⁡ ( x ) − m i n ⁡ ( x ) , x i ∈ x x_i=\frac{x_i-min⁡(x)}{max⁡(x)-min⁡(x)},x_i∈x xi=max(x)min(x)ximin(x),xix

(2)标准化处理(zscore)

x i = x i − μ σ x_i=\frac{x_i-μ}{σ} xi=σxiμ

μ和σ分别是原始数据的均值和方差。

(3)对数函数转换

x i = l o g 10 x i l o g 10 m a x ⁡ ( x ) , x i ≥ 1 x_i=\frac{log_{10} x_i}{log_{10} max⁡(x)},x_i≥1 xi=log10max(x)log10xi,xi1

3 matlab 显示归一化与反归一化

(1)max-min

clc;
clear;
%% 归一化
x=xlsread('data.xlsx');
x_max=max(x);
x_min=min(x);
x=(x-x_min)/(x_max-x_min);
%% 反归一化
xnew %% 是指经过预测后的数据
xnew=xnew*(x_max-x_min)+x_min;

(2)zscore

clc;
clear;
%% 标准化
x=xlsread('data.xlsx');
[x,x_mean,x_std]=zscore(x);
%% 反归一化
xnew %% 是指经过预测后的数据
xnew=xnew.*repmat(x_std,size(xnew,1),1)+repmat(x_mean,size(xnew,1),1);

参考链接:
https://www.cnblogs.com/-wenli/p/11234878.html
https://baike.baidu.com/item/%E5%BD%92%E4%B8%80%E5%8C%96/2215161

你可能感兴趣的:(神经网络)