标准化、归一化、中心化

数据分析及挖掘中常提到的几个概念(数据的 标准化、归一化、中心化),虽然经常在用,但可能还是有一些比较生僻的知识容易搞混淆,所以在十月国庆大家都出门上高速堵车的时候抽了点时间对这些概念以我的能力和理解做一个相对系统和浅显的总结。

本篇文章通过个人以前对这些知识的一个先验理解,然后主要查阅和参考了数篇相关知识文档的介绍后,做了如下的总结。(注:尤其是标准化、归一化极容易混淆两者)

标准化:

特点:

对不同特征维度的数据做伸缩变换(数据按比例缩放,使之落入一个小的特定区间),其目是使不同度量之间的特征具有可比性。并且同时不改变原始数据的分布状态。转化为无量纲的纯数值后,便于不同单位或量级的指标能够进行比较和加权。

优点:

1:使得不同度量之间的特征具有可比性;对目标函数的影响体现在几何分布(离散型概率分布)上,而不是数值上

2:不改变原始数据的分布

举例:

根据人的身高和体重预测人的健康指数,假设有如下原始数据是四维:

从上面两个坐标图可以看出,样本在数据值上的分布差距是不一样的,但其几何距离是一致的。而标准化就是一种对样本数据在不同维度上进行一个伸缩变化(而不改变数据的几何距离),也就是不改变原始数据的信息(分布)。这样的好处就是在进行特征提取时,忽略掉不同特征之间的一个度量,而保留样本在各个维度上的信息(分布)

归一化:

特点:

对不同特征维度的数据做伸缩变换,其目的是使得各个特征维度对目标函数的影响权重是一致的,即使得那些扁平分布得数据伸缩变换成类圆形。这也就改变了原始数据的一个分布。

优点:

1:提高迭代求解的收敛速度

2:提高迭代求解的精度

举例:

从采用大单位的身高和体重这两个特征来看,如果采用标准化,不改变样本在这两个维度上的分布,则左图还会保持二维分布的一个扁平性;而采用归一化则会在不同维度上对数据进行不同的伸缩变化(归一区间,会改变数据的原始距离,分布,信息),使得其呈类圆形。虽然这样样本会失去原始的信息,但这防止了归一化前直接对原始数据进行梯度下降类似的优化算法时最终解被数值大的特征所主导。归一化后,各个特征对目标函数的影响权重是一致的。这样的好处是在提高迭代求解的精度。

1、 归一化为什么能提高梯度下降法求解最优解的速度?

当两个特征X1和X2的区间相差非常大,X1区间是[0,2000],X2区间是 [1,5],其所形成的等高线非常尖。当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛;而右图对两个原始特征进行了归一化,其对应的等高线显得很圆,在梯度下降进行求解时能较快的收敛。因此如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。

2、归一化有可能提高精度

一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。

修改总结原作者对提问者的回答如下:

问题:

归一化和标准化,都是将点平移然后缩短距离,从这个角度看,二者有什么区别呢?为什么标准化不改变数据分布(几何距离)?

回答:

第一,如果把加减看作平移,乘除看作放缩的话,那么从归一化和标准化的公式就能看出两者的区别。平移对于前者以一个最小值为参照,后者以均值为参照。缩放对于前者以最大差值参照,后者以标准差。第二,标准化不改变几何距离是其公式定义的原因,可以进行数学推导,类似于SVM的函数距离到几何距离,由公式可以推导。

以上对两个容易混淆的概念(标准化、归一化)做了一个解释,但是需要根据实际的数据或场景需求来使用,以免适得其反,如:归一化后虽然平衡了权重,但也会或多或少破坏数据的结构。

常用的标准化方法(z-score标准化):

(需要注意上面的s为n-1,不是n,两者的区别)z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况

常用的归一化方法(Min-max normalization、最大最小归一化):

当然还有对于两种方式其它好的解法,后面链接可以参考。

中心化:

这里以PCA为例讲述中心化:

下面两幅图是数据做中心化(centering)前后的对比,可以看到其实就是一个平移的过程,平移后所有数据的中心是(0,0),同时中心化后的数据对向量也容易描述,因为是以原点为基准的。

在做PCA的时候,我们需要找出矩阵的特征向量,也就是主成分(PC)。比如说找到的第一个特征向量是a = [1, 2],a在坐标平面上就是从原点出发到点(1,2)的一个向量。

如果没有对数据做中心化,那算出来的第一主成分的方向可能就不是一个可以“描述”(或者说“概括”)数据的方向了。还是看图比较清楚。

黑色线就是第一主成分的方向。只有中心化数据之后,计算得到的方向才能比较好的“概括”原来的数据。这里通过中心化后主成分组成的基能更好的表示原数据。

对于中心化与标准化的区别:

  1. 对数据进行中心化预处理,这样做的目的是要增加基向量的正交性。

  2. 对数据标准化的目的是消除特征之间的差异性。便于对一心一意学习权重。

下图中以二维数据为例:左图表示的是原始数据;中间的是中心化后的数据,数据被移动大原点周围;右图将中心化后的数据除以标准差,得到为标准化的数据,可以看出每个维度上的尺度是一致的(红色线段的长度表示尺度)

常用的中心化方法:

变量减去它的均值

文中若有不足或有误的地方,还请指出。感谢以下资料,本文主要参考:

https://www.zhihu.com/question/20467170

https://en.wikipedia.org/wiki/Feature_scaling

https://www.zhihu.com/question/37069477

https://blog.csdn.net/bbbeoy/article/details/70185798

标准化、归一化、中心化相关推荐

  1. 规范化、归一化、标准化、中心化、正则化

    规范化.归一化.标准化.中心化 规范化指的是对数据进行规范处理,包含归一化.标准化和中心化.归一化包括最大最小归一化.均值归一化. 维基百科中对规范化的方法有定义,详细可见 https://en.wi ...

  2. 归一化、标准化、中心化

    一.概念 归一化:把数据变成 [0,1] 或 [-1,1] 之间的小数.主要是为了数据处理方便提出来的,把数据映射到0-1范围之内处理,更加便捷快速.是一种简化计算的方式,将有量纲的表达式,经过变换, ...

  3. scale缩放中心_规范化(包含归一化)、标准化、中心化、BN、正则化的区别

    自己记录一下比较琐碎的东西,顺便为正在思考类似问题的同学提供份参考,如有错误欢迎指正. 注:有些参考链接中的叙述有我认为不太准确的地方,本文是把各参考链接中我认为正确的部分做了汇总. 标准化(stan ...

  4. 用spss进行数据的标准化处理_什么是数据标准化、中心化、归一化?SPSS又如何实现?...

    在统计分析.数据挖掘过程中,经常性的接触到数据的标准化处理.数据中心化处理,还有数据归一化处理,那么它们各自是什么意思?如何通过SPSS软件实现呢? 大型数据分析项目中,数据来源不同,量纲及量纲单位不 ...

  5. 矩阵归一化、标准化、中心化/零均值化

    import numpy as npX = np.random.randint(0,5,[4,4]).astype(float)print(X)X-=np.mean(X,axis=0)X/=np.st ...

  6. 归一化 Normalization/标准化 Standardization/中心化 Zero-centered 逻辑及应用场景

    在机器学习的任务中,我们常常需要对数据做一定的处理,来优化模型效果或者优化计算效率 下面梳理一个常见的方式 归一化 Normalization 通常是把数据变成 (0, 1) 或者 (-1, 1)之间 ...

  7. 数据预处理之标准化(Standardization)、归一化(Normalization)、中心化/零均值化(Zero-centered)

    一.数据标准化的意义: 1.数据的量纲不同:数量级差别很大 经过标准化处理后,原始数据转化为无量纲化指标测评值,各指标值处于同一数量级别,可进行综合测评分析. 如果直接用原始指标值进行分析,就会突出数 ...

  8. 机器学习中之规范化,中心化,标准化,归一化,正则化,正规化

    一.归一化,标准化和中心化 广义的标准化: (1)离差标准化(最大最小值标准化) (2)标准差标准化 (3)归一化标准化 (4)二值化标准化 (5)独热编码标准化 归一化 (Normalization ...

  9. 归一化 (Normalization)、标准化 (Standardization)和中心化/零均值化 (Zero-centered)...

    博主学习的源头,感谢!https://www.jianshu.com/p/95a8f035c86c 归一化 (Normalization).标准化 (Standardization)和中心化/零均值化 ...

  10. W3C 推出去中心化标识符作为 Web 标准

    DID 旨在为用户和组织提供更高的安全性和隐私性 根据万维网联盟 (W3C)的新闻稿,分散式标识符 (DID) 现在是官方网络标准. DID 是加密数字标识符,不依赖于任何中央机构.它们为个人和组织提 ...

最新文章

  1. 嵌入式JavaScript脚本解释器的研究与实现
  2. 【软件工程】CMMI 能力成熟度模型集成 ( CMMI 工程过程域 | CMMI 支持过程域 ) ★
  3. Node.js的3m安装法
  4. mongodb之索引学习
  5. (11)Node.js 核心模块fs – 同步函数( synchronization )
  6. Head First设计模式读书笔记八 第九章下 组合模式
  7. android APP优化知识图谱
  8. Spring Boot 学习系列(05)—自定义视图解析规则
  9. wxt_hillwill的知识脉络
  10. 2021-09-10 Bagging[7](并 行)和Boosting[8](串行)是两种常见的集成学习方法
  11. 台式计算机主板修理教程,小白装机最新最详细的台式电脑组装教程图解
  12. 不到 10 行代码完成抖音热门视频的爬取!
  13. 手机音乐播放器页面html代码,仿酷狗html5手机音乐播放器主要部分代码
  14. 手码-在U-boot SPL 移植新的PMIC芯片驱动
  15. Spring MVC 详解
  16. 3D万花筒无限延伸动画特效(源码)
  17. gitpc段提交失败schannel: next InitializeSecurityContext failed: Unknown error (0x80092013
  18. linux_system函数
  19. HFS学习笔记——基本概念
  20. 计算机专业英语被动语态举例,高考英语各种时态被动语态总结

热门文章

  1. 查看linux系统CPU内存
  2. mongoshake
  3. 合并两个数值按升序的
  4. java 登录验证码_java实现登录验证码
  5. 树莓派之无屏幕下发现树莓派IP方法
  6. SSM框架搭建及项目实战
  7. 马尔可夫决策过程(Markov Decision Process, MDP)
  8. Mysql登录和修改初始化密码
  9. 模电(三)晶体三极管
  10. 一文了解三种3D视觉技术