深度学习每日一问:为什么要对数据归一化(数据预处理)

您所在的位置:网站首页 数据处理的目的和意义是什么呢 深度学习每日一问:为什么要对数据归一化(数据预处理)

深度学习每日一问:为什么要对数据归一化(数据预处理)

2024-07-17 14:43| 来源: 网络整理| 查看: 265

首先,我们要知道在机器学习某些算法中,是不需要数据归一化的,比如树型model;而当数据的多个特征属性,其量纲不一,但是其需要使用GD迭代更新构建模型,此时加入归一化就可以一定程度上增加模型学习能力。

归一化的好处: 一定程度提高模型精度 在机器学习或者深度学习中,大多模型的loss计算,需要假定数据的所有特征都是零均值并且具有同一阶方差的。这样在计算loss时,才能将所有特征属性统一处理。 比如,在KNN中,我们需要计算样本之间的欧式距离,如果样本两个属性的量纲差距过大,则大量纲的属性在距离计算中就占据了主导地位。而现实中,可能恰恰相反。所以,加入归一化,将数据的特征属性scale到统一量纲,可以一定程度解决这个问题。提升收敛速度 对于使用梯度下降优化的模型,每次迭代会找到梯度最大的方向迭代更新模型参数。但是,如果模型的特征属性量纲不一,那么我们寻求最优解的特征空间,就可以看做是一个椭圆形的,其中大量冈的属性对应的参数有较长的轴。在更新过程中,可能会出现更新过程不是一直朝向极小点更新的,而是呈现‘Z’字型。使用了归一化对齐量纲之后,更新过程就变成了在近似圆形空间,不断向圆心(极值点)迭代的过程: 未使用归一化 使用归一化 为什么树形model不需要归一化:

因为数值的缩放是不影响分裂点的位置,对数据进行缩放预处理并不会对树模型造成任何影响。分裂点的位置是和特征值的相对分布相关的。 而且,树模型的构建是一个不断寻找最佳分裂点的过程,而不像LR、NN等,使用梯度下降不断迭代更新生成的。

归一化方法

标准化 对数据的特征属性减去均值,除以方差。转化为均值为0,方差为1的标准正态分布。 x = ( x − μ ) / σ x=(x-\mu) / \sigma x=(x−μ)/σ. 一般,我们会记录训练集上的均值和方差,对训练集进行标准化之后,在后续测试使用模型时,对测试数据使用训练集上的方差和均值标准化测试集。 这种方法对离群噪声点的鲁棒性较高。但是,离群点也会参与方差和均值的计算,如果离群点太多,还是会影响性能。 max-min归一化 通过 x = ( x − min ⁡ ) / ( max ⁡ − min ⁡ ) x=(x-\min ) /(\max -\min ) x=(x−min)/(max−min)将数据线性缩放到【0,1】之间,缺点是,有新点加入时,可能影响min、max,进而改变归一化结果。所以,其对噪声点很敏感。 优点就是,这种方法可以保留稀疏特征中的0, 并且可以解决到特征的方差很小的情况时的数据。

还一个类似的方法,就是Maxabsscale, 每个特征除以该特征的绝对值最大的特征值,将特征缩放到【-1, 1】之间。图像处理中,经常一个操作就是将int型图片矩阵,除以255转化为double型图片矩阵

参考

机器学习数据预处理——标准化/归一化方法



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3