在用深度学习做回归问题时,对数据进行标准化处理是一个共识,将数据标准化,利用标准化后得数据进行数据分析。不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。

那么对标签是否进行归一化就需要从实际问题出发,比如我在做药物分子溶解度预测时,溶解度的取值从0-5000,值的分布范围较大,这就需要进行归一化处理,因为我这个数据中出现了奇异样本数据。所谓奇异样本数据数据指的是相对于其他输入样本特别大或特别小的样本矢量。奇异样本数据的存在会引起训练时间增大,并可能引起无法收敛。

因此,当存在奇异样本数据的情况下,进行训练之前最好进行归一化,如果不存在奇异样本数据,则可以不用归一化。

归一化的目的是:数据经过处理后使之限定在一定的范围内,通常限制在区间[0, 1]或者[-1, 1],从而消除奇异样本数据导致的不良影响。其中,最典型的就是数据的归一化处理。当前做归一化处理的方法有很多,也是需要从实际问题出发进行选择,一般常用归一化方法有:

1. 最大最小标准化(Min-Max Normalization)

回归 变量标准化 回归的标准化系数_归一化

(1) 线性函数将原始数据转换到[0 1]的范围, 计算结果为归一化后的数据,X为原始数据;

(2) 本归一化方法比较适用在数值比较集中的情况;

(3) 缺陷:如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。实际使用中可以用经验常量来替代max和min。

应用场景:在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法(不包括Z-Score方法)。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0, 255]的范围。

 2. Z-Score 标准化

回归 变量标准化 回归的标准化系数_回归_02

其中,μ、σ分别为原始数据集的均值和方差。

(1) 将原始数据集归一化为均值为0、方差1的数据集

(2) 该种归一化方式要求原始数据的分布可以近似为高斯分布,否则归一化的效果会变得很糟糕。

(3)Z-score标准化适用于

回归 变量标准化 回归的标准化系数_回归 变量标准化_03

的最大值或者最小值未知的情况,或有超出取值范围的离散数据的。

 应用场景:在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,Z-score standardization表现更好。

3. 函数转化

本归一化方法经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log,正切等,需要根据数据分布的情况,决定非线性函数的曲线。

(1)log对数函数归一化

回归 变量标准化 回归的标准化系数_机器学习_04

即以10为底的对数转换函数,对应的归一化方法为:

其中Max表示样本数据的最大值,并且所有样本数据均要大于等于1。

(2)反正切函数归一化

使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上。

(3)sigmoid

使用该方法将值映射到0-1之间。

 什么时候用归一化?

(1)如果对输出结果范围有要求,用归一化。

(2)如果数据较为稳定,不存在极端的最大最小值,用归一化。

(3)如果数据存在异常值和较多噪音,用标准化,间接通过中心化避免异常值和极端值的影响。

参考:如何理解归一化(normalization)? - 知乎