机器学习、数据挖掘工作中,数据前期准备、数据预处理过程、特征提取等几个步骤几乎要花费数据工程师一半的工作时间。同时,数据预处理的效果也直接影响了后续模型能否有效的工作。然而,目前的大部分学术研究主要集中在模型的构建、优化等方面,对数据预处理的理论研究甚少,可以说,很多数据预处理工作仍然是靠工程师的经验进行的。从业数据建模/挖掘工作也有近2年的时间,在这里结合谈一谈数据预处理中归一化方法。

在之前的博客中转载了一篇关于维归约的文章:数据预处理之归一化。论述的比较简单,有兴趣的可以先了解一下。

在这里主要讨论两种归一化方法:

1、线性函数归一化(Min-Max scaling)

线性函数将原始数据线性化的方法转换到[0 1]的范围,归一化公式如下:

该方法实现对原始数据的等比例缩放,其中Xnorm为归一化后的数据,X为原始数据,Xmax、Xmin分别为原始数据集的最大值和最小值。

2、0均值标准化(Z-score standardization)

0均值归一化方法将原始数据集归一化为均值为0、方差1的数据集,归一化公式如下:
其中,μ、σ分别为原始数据集的均值和方法。该种归一化方式要求原始数据的分布可以近似为高斯分布,否则归一化的效果会变得很糟糕。
以上为两种比较普通但是常用的归一化技术,那这两种归一化的应用场景是怎么样的呢?什么时候第一种方法比较好、什么时候第二种方法比较好呢?下面做一个简要的分析概括:
1、在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,第二种方法(Z-score standardization)表现更好。
2、在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。

为什么在距离度量计算相似性、PCA中使用第二种方法(Z-score standardization)会更好呢?我们进行了以下的推导分析:

归一化方法对方差、协方差的影响:假设数据为2个维度(X、Y),首先看0均值对方差、协方差的影响:
先使用第二种方法进行计算,我们先不做方差归一化,只做0均值化,变换后数据为
新数据的协方差为
由于 
因此
而原始数据协方差为
因此 
做方差归一化后:
方差归一化后的协方差为:
使用第一种方法进行计算,为方便分析,我们只对X维进行线性函数变换
计算协方差
可以看到,使用第一种方法(线性变换后),其协方差产生了倍数值的缩放,因此这种方式无法消除量纲对方差、协方差的影响,对PCA分析影响巨大;同时,由于量纲的存在,使用不同的量纲、距离的计算结果会不同。
而在第二种归一化方式中,新的数据由于对方差进行了归一化,这时候每个维度的量纲其实已经等价了,每个维度都服从均值为0、方差1的正态分布,在计算距离的时候,每个维度都是去量纲化的,避免了不同量纲的选取对距离计算产生的巨大影响。
总结来说,在算法、后续计算中涉及距离度量(聚类分析)或者协方差分析(PCA、LDA等)的,同时数据分布可以近似为状态分布,应当使用0均值的归一化方法。其他应用中更具需要选用合适的归一化方法。

归一化方法(Normalization Method)相关推荐

  1. 归一化方法 Normalization Method

    1. 概要 数据预处理在众多深度学习算法中都起着重要作用,实际情况中,将数据做归一化和白化处理后,很多算法能够发挥最佳效果.然而除非对这些算法有丰富的使用经验,否则预处理的精确参数并非显而易见. 2. ...

  2. 对数坐标归一化_归一化方法 Normalization Method

    @walterchen better than never in most condition =============================== 关于神经网络归一化方法的整理 由于采集的 ...

  3. python 归一化_几种归一化方法(Normalization Method)python实现

    数据归一化问题是数据挖掘中特征向量表达时的重要问题,当不同的特征成列在一起的时候,由于特征本身表达方式的原因而导致在绝对数值上的小数据被大数据"吃掉"的情况,这个时候我们需要做的就 ...

  4. 几种归一化方法(Normalization Method)python实现

    数据归一化问题是数据挖掘中特征向量表达时的重要问题,当不同的特征成列在一起的时候,由于特征本身表达方式的原因而导致在绝对数值上的小数据被大数据"吃掉"的情况,这个时候我们需要做的就 ...

  5. 再谈机器学习中的归一化方法(Normalization Method)

    机器学习.数据挖掘工作中,数据前期准备.数据预处理过程.特征提取等几个步骤几乎要花费数据工程师一半的工作时间.同时,数据预处理的效果也直接影响了后续模型能否有效的工作.然而,目前的大部分学术研究主要集 ...

  6. 数据处理之标准化/归一化方法

    数据处理之标准化/归一化方法 归一化方法(Normalization Method) 1.把数变为(0,1)之间的小数 主要是为了数据处理方便提出来的,把数据映射到0-1范围之内处理,更加便捷快速,应 ...

  7. 深度学习特征归一化方法——BN、LN、IN、GN

    前言 最近看到Group Normalization的论文,主要提到了四个特征归一化方法:Batch Norm.Layer Norm.Instance Norm.Group Norm.此外,论文还提到 ...

  8. 常见分数值归一化方法

    数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可 ...

  9. 归一化mysql函数_数据归一化和两种常用的归一化方法

    数据归一化和两种常用的归一化方法 一.总结 一句话总结: min-max标准化:x* =(x-min)/(max-min):新数据加入,需重新计算max和min Z-score标准化:x* =(x-μ ...

最新文章

  1. [Cocos2d-x For WP8]矩形碰撞检测
  2. 微信分享转发功能「PHP版」
  3. 针对OAuth2的CSRF攻击
  4. shiro教程:整合ehcache缓存
  5. 基于C# 百度AI和科大汛飞语音合成SDK
  6. python 连接mysql视频教程_Python操作MySQL视频教程
  7. 算法设计与分析知识点整理
  8. 华为电脑如何投屏到电视linux,华为无线投屏怎么用
  9. html16进制颜色三位,十六进制RGB颜色表
  10. python实现计算标准偏差函数
  11. mysql 多条件求和_多条件求和的8种方法【Excel分享】
  12. 基于QT5、C/S(客户端/服务器)架构的MiniQQ项目开发
  13. IMU选型、标定误差分析、AHRS组合导航
  14. msp430流水灯c语言程序,基于MSP-EXP430F5529开发板流水灯程序
  15. elementUI——form表单
  16. python使用SMTP发邮件时使用Cc(抄送)和Bcc(密送)
  17. 算法基础、算法比赛快速入门(java)
  18. Shell脚本笔记(3)- 变量子串
  19. 分享8个超好用的免费工具/软件/网站(一定有你要的)
  20. 【Paper】ConvLSTM:Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting

热门文章

  1. vuetify 学习第一天之v-data-table_表格组件
  2. UiPath:以API接口方式启动流程
  3. 一文了解二进制和CPU工作原理
  4. 使用hicanu组装hifi基因组的方法介绍
  5. PHP快递查询接口api和快递单号智能判断PHP代码
  6. 【Vue】ElementUI、ECharts使用 cdn引入
  7. Windows 11如何使用IE浏览器
  8. 本门藏经阁 - AndroidX
  9. 分布式系统数据层设计模式
  10. Angular NgModule