数据归一化处理方法_数据预处理:归一化和标准化
1. 概述
数据的归一化和标准化是特征缩放(feature scaling)的方法,是数据预处理的关键步骤。不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据归一化/标准化处理,以解决数据指标之间的可比性。原始数据经过数据归一化/标准化处理后,各指标处于同一数量级,适合进行综合对比评价。
归一化/标准化实质是一种线性变换,线性变换有很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反而能提高数据的表现,这些性质是归一化/标准化的前提。比如有一个很重要的性质:线性变换不会改变原始数据的数值排序。具体作用可总结如下:
(1)某些模型求解需要
- 在使用梯度下降的方法求解最优化问题时, 归一化/标准化后可以加快梯度下降的求解速度,即提升模型的收敛速度。
- 一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。
(2)无量纲化
例如房子数量和收入,因为从业务层知道,这两者的重要性一样,所以把它们全部归一化。 这是从业务层面上作的处理。
(3)避免数值问题
太大的数会引发数值问题。
2. 归一化和标准化(线性变换)
2.1 归一化(Normalization)
归一化一般是将数据映射到指定的范围,用于去除不同维度数据的量纲以及量纲单位。
常见的映射范围有 [0, 1] 和 [-1, 1] ,最常见的归一化方法就是 Min-Max 归一化。
Min-Max 归一化(Min-Max Normalization)
也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 - 1]之间。转换函数如下:
其中max为样本数据的最大值,min为样本数据的最小值。这种归一化方法比较适用在数值比较集中的情况。但是,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定,实际使用中可以用经验常量值来替代max和min。而且当有新数据加入时,可能导致max和min的变化,需要重新定义。
举例:我们判断一个人的身体状况是否健康,那么我们会采集人体的很多指标,比如说:身高、体重、红细胞数量、白细胞数量等。一个人身高 180cm,体重 70kg,白细胞计数
,etc.衡量两个人的状况时,白细胞计数就会起到主导作用从而遮盖住其他的特征,归一化后就不会有这样的问题。作用:
- 数据映射到指定的范围内进行处理,更加便捷快速。
- 把有量纲表达式变成无量纲表达式,便于不同单位或量级的指标能够进行比较和加权。经过归一化后,将有量纲的数据集变成纯量,还可以达到简化计算的作用。
补充:
①有时候我们希望将输入转换到[-1,1]的范围,可以使用以下的公式:
以上两种方式,都是针对原始数据做等比例的缩放。其中
是归一化以后的数据, 是原始数据大小, 分别是原始数据的最大值与最小值。②归一化到任意区间的方法:
一般常见的数据归一化,是归一化到0~1,或者-1~1的区间,但在一些特殊场合下,我们需要根据实际情况归一化到其他任意区间。将数据归一化到[a,b]区间范围的方法:
(1)首先找到样本数据Y的最小值Min及最大值Max
(2)计算系数为:k=(b-a)/(Max-Min)
(3)得到归一化到[a,b]区间的数据:norY=a+k(Y-Min)
实质上,归一化的一般规范函数是:y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin。
2.2 标准化(Normalization)
归一化和标准化的英文翻译是一致的,但是根据其用途(或公式)的不同去理解(或翻译)标准化是依照特征矩阵的列处理数据。数据标准化方法有多种,如:直线型方法(如极值法、标准差法)、折线型方法(如三折线法)、曲线型方法(如半正态性分布)。不同的标准化方法,对系统的评价结果会产生不同的影响。其中,最常用的是Z-Score 标准化。
Z-Score 标准化(Z-Score Normalization)
这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,转化函数为:
其中
是样本数据的均值(mean),是样本数据的标准差(std)。此外,标准化后的数据保持异常值中的有用信息,使得算法对异常值不太敏感,这一点归一化就无法保证。作用:
- 提升模型的收敛速度(加快梯度下降的求解速度)
- 提升模型的精度(消除量级和量纲的影响)
- 简化计算(与归一化的简化原理相同)
2.3 归一化和标准化的异同
(1)区别
归一化是将样本的特征值转换到同一量纲下把数据映射到[0,1]或者[-1, 1]区间内,仅由变量的极值决定,因区间放缩法是归一化的一种。
标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,转换为标准正态分布,和整体样本分布相关,每个样本点都能对标准化产生影响。
(2)相同
它们的相同点在于都能取消由于量纲不同引起的误差;都是一种线性变换,都是对向量X按照比例压缩再进行平移。
2.4 归一化和标准化的适用场景
(1)数据的分布本身就服从正态分布,使用Z-Score。
(2)有离群值的情况:使用Z-Score。
这里不是说有离群值时使用Z-Score不受影响,而是,Min-Max对于离群值十分敏感,因为离群值的出现,会影响数据中max或min值,从而使Min-Max的效果很差。相比之下,虽然使用Z-Score计算方差和均值的时候仍然会受到离群值的影响,但是相比于Min-Max法,影响会小一点。
(3)如果对输出结果范围有要求,用归一化。
(4)如果数据较为稳定,不存在极端的最大最小值,用归一化。
(5)如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响。
3. 非线性变换
非线性变换经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log、指数,正切等。需要根据数据分布的情况,决定非线性函数的曲线,比如log(V, 2)还是log(V, 10)等。
1)对数函数转换:y = log10(x)
2)反余切函数转换:y = atan(x) * 2 / π
4. 软件实现:归一化/标准化
(1)Minitab
第一步:输入原始数据。
原始数据第二步:打开标准化面板。
打开标准化面板第三步:选中要处理数据的范围,并指定处理后数据的存放区域(需要预留)。
①若选择处理方式为:“减去均值并处以标准差”,则是Z-Score标准化。
Z-Score标准化Z-Score标准化处理后的数据②若选择处理方式为:“减去下面指定的第一个值,然后除以第二个值”,则是Min-Max 归一化。其中:min=1567.95,max=1571.75,max-min=3.8。
Min-Max 归一化Min-Max 归一化处理后数据(2)SPSS略显复杂,略过。
参考文章
1.数据归一化和两种常用的归一化方法_haoji007的博客-CSDN博客_数据归一化
2.归一化方法 Normalization Method
3.归一化 (Normalization)、标准化 (Standardization)和中心化/零均值化 (Zero-centered)
4.数据预处理——标准化/归一化(实例) - 侦探L的文章 - 知乎 https://zhuanlan.zhihu.com/p/135473375
5.ML 入门:归一化、标准化和正则化 - Dave的文章 - 知乎 https://zhuanlan.zhihu.com/p/29957294
6.数据的归一化,标准化和正则化 - peng 1的文章 - 知乎 https://zhuanlan.zhihu.com/p/46377151
7.数据归一化小结_bitcarmanlee的博客-CSDN博客
8.将数据归一化到任意区间范围的方法_pan_jinquan的博客-CSDN博客
9.Minitab如何进行数据标准化-百度经验
新人创作打卡挑战赛发博客就能抽奖!定制产品红包拿不停!总结
以上是生活随笔为你收集整理的数据归一化处理方法_数据预处理:归一化和标准化的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 判断点是否处于多边形内的三种方法(转)
- 下一篇: 用户注册模块详解(30)