归一化与标准化
数据的归一化和标准化是特征缩放(feature scaling)的方法,是数据预处理的关键步骤。不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据归一化/标准化处理,以解决数据指标之间的可比性。
举个例子,我们判断一个人的幸福程度,判断的依据有年龄,房子数量,收入等。这几个指标中年龄是十位数,房子数量是个位数,而收入一般是千到万的量级。如果不进行归一化,则收入对于结果的影响和其他指标影响的程度会有明显的区别。
同时数据的归一化也有利于提高梯度下降的速度
归一化(Normalization)
归一化一般是将数据映射到指定的范围,用于去除不同维度数据的量纲以及量纲单位。
最常见的归一化方法就是将数据映射到[0, 1],具体转换函数为:
x n e w = x − x m i n x m a x − x m i n x_{new}=\frac{x-x_{min}}{x_{max}-x_{min}} xnew=xmax−xminx−xmin
其中 x m a x x_{max} xmax为样本数据的最大值, x m i n x_{min} xmin为样本数据的最小值。将所有样本数据代入 x x x即可得到转换后的新值
这种归一化方法比较适用在数值比较集中的数据集中,如果有比较极端的离群值出现,则会造成数据转换结果失效。例如数据中有一个值为3千万,其他值都在0-100内,则转换后的数据3千万会被转换为1,其他数据都为0,
同时也可以将数据映射到 [-1, 1] 的区间,具体公式为:
X n e w = 2 ∗ ( X − X m i n ) X m a x − X m i n − 1 X_{new} = \frac{2*(X - X_{min})}{X_{max} - X_{min}} - 1 Xnew=Xmax−Xmin2∗(X−Xmin)−1
标准化(Normalization)
归一化和标准化的英文翻译是一致的,但是根据其用途(或公式)的不同去理解(或翻译)
标准化中最常用的是Z-Score 标准化。
Z-Score 标准化的转换函数一般为:
x n e w = x − μ σ x_{new}=\frac{x-\mu }{\sigma } xnew=σx−μ
其中 μ \mu μ是数据的均值, σ \sigma σ为数据的标准差
Z-Score 标准化将数据变换为均值为0,标准差为1的分布。如果原始数据是正态的,这个转化函数其实就是统计中的标准正态转换函数,可以将数据转化为标准正态分布
参考文章:
https://zhuanlan.zhihu.com/p/296252799