在机器学习回归问题,以及训练神经网络过程中,通常需要对原始数据进行中心化(零均值化)与标准化(归一化)处理。

背景

在数据挖掘数据处理过程中,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。

目的

通过中心化和标准化处理,最终得到均值为0,标准差为1的服从标准正态分布的数据。可以取消由于量纲不同、自身变异或者数值相差较大所引起的误差。

原理

中心化(又叫零均值化):是指变量减去它的均值。其实就是一个平移的过程,平移后所有数据的中心是(0,0)。

标准化(又叫归一化):是指数值减去均值,再除以标准差。

意义 - 为何需要这些预处理

在一些实际问题中,我们得到的样本数据都是多个维度的,即一个样本是用多个特征来表征的。比如在预测房价的问题中,影响房价的因素(特征)有房子面积、卧室数量等,很显然,这些特征的量纲和数值得量级都是不一样的,在预测房价时,如果直接使用原始的数据值,那么他们对房价的影响程度将是不一样的,而通过标准化处理,可以使得不同的特征具有相同的尺度(Scale)。简言之,当原始数据不同维度上的特征的尺度(单位)不一致时,需要标准化步骤对数据进行预处理。

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

其实,在不同的问题中,中心化和标准化有着不同的意义,比如在训练神经网络的过程中,通过将数据标准化,能够加速权重参数的收敛。对数据进行中心化预处理,这样做的目的是要增加基向量的正交性。

标准化(归一化)优点及其方法

标准化(归一化)两个优点:

1)归一化后加快了梯度下降求最优解的速度;

2)归一化有可能提高精度。

标准化(归一化)两种方法:

1)min-max标准化(Min-MaxNormalization)

也称为离差标准化,是对原始数据的线性变换,使结果值映射到 [0 - 1] 之间。转换函数如下:

其中max为样本数据的最大值,min为样本数据的最小值。这种方法有个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。

2)Z-score标准化(0-1标准化)方法

这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1。

转化函数为:

其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

中心化 -PCA示例

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

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

黑色线就是第一主成分的方向。只有中心化数据之后,计算得到的方向才能比较好的“概括”原来的数据(图2)。

参考:

https://blog.csdn.net/GoodShot/article/details/80373372

matlab 均值中心化,数据预处理之中心化(零均值化)与标准化(归一化)相关推荐

  1. 数据预处理之中心化(零均值化)与标准化(归一化)

    数据预处理之中心化(零均值化)与标准化(归一化) 目的: 通过中心化和标准化处理,最终得到均值为0,标准差为1的服从标准正态分布的数据.可以取消由于量纲不同.自身变异或者数值相差较大所引起的误差. 原 ...

  2. 数据预处理(上)之离群值处理、标准化

    https://www.ricequant.com/community/topic/4271/ 一般的数据预处理中常提及到三类处理:去极值.标准化.中性化.这几个词想必大家都不陌生,也许存在疑问或有自 ...

  3. 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)

    研究一下分布式架构的实现方式 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured) 概念 结构化数据:即行数据,存储在数据库里, ...

  4. 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)...

    概念 结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据. 半结构化数据:介于完全结构化数据(如关系型数据库.面向对象数据库中的数据)和完全无结构的数据(如声音.图像文件等)之 ...

  5. TOPSIS和熵权法的应用(Matlab实现,包括数据预处理)

    TOPSIS法是一种组内综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距. ①基本过程为归一化后的原始数据矩阵: ②采用余弦法找出有限方案中的最优方案和最劣方案:然后分别 ...

  6. 基于MATLAB的无人机遥感数据预处理与农林植被性状估算

    目录 第一章:认识主被动无人机遥感数据 第二章:预处理无人机遥感数据 第三章:定量估算农林植被关键性状 第四章:期刊论文插图精细制作与Appdesigner应用开发 在新一轮互联网信息技术大发展的现今 ...

  7. MATLAB数据分析与挖掘 --数据预处理篇

    数据清洗 主要工作是删除原始数据集中的无关数据.重复数据.平滑噪声数据,筛选掉与挖掘主题无关的数据,处理缺失值.异常值等. 缺失值处理: 一般可删除记录.数据插补和不处理.数据插补常用方法如下: 其中 ...

  8. php 串行化数据,php中对象的串行化

    我们大家有知道PHP串行化可以把变量包括对象,转化成连续bytes数据,你可以将串行化后的变量存在一个文件里或在网络上传输,然后再反串行化还原为原来的数据.文章这里就PHP串行化为大家详细的介绍.你在 ...

  9. 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)的定义和区别

    相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档.文本.图片.XML.HTML.各 ...

最新文章

  1. JavaScript 利用location对象实现跨页面传参
  2. AlertDialog和自定义对话框
  3. jupyter跑Java,C++/C,R
  4. linux挂载磁盘阵列
  5. 送书 | 人类细胞图谱计划发起人Aviv Regev博士讲单细胞基因组学
  6. 21.5 windows_21_Library_use_DLL_Invoke 动态库补充5
  7. 转载 WHO OWNS THE MOST SERVERS ?
  8. springboot怎么返回404_自定义SpringBoot REST API 404返回信息
  9. 喜欢使用VMware的.net程序员要注意呀(Visual Studio启动不了的问题)
  10. NYOJ--13--Fibonacci数
  11. C#安装本地nupkg包
  12. 计算机云平台架构,基于虚拟化技术的云计算平台架构研究
  13. java调用小冰,Java利用微软小冰API测颜值
  14. java 无理数_Java 程序设计:有理数类
  15. PAT日志 1055
  16. Android Studio运行app启动模拟器一直卡在“Wating for target device to come online”解决方法
  17. 回复差评经典话术模板
  18. 计算机我要学到什么水平?
  19. 皮肤问题与肠道的关系
  20. ibus极品五笔切换单字模式

热门文章

  1. 什么是阻性负载?感性负载?容性负载?(图)
  2. mes系统故障_MES系统解决了什么问题?
  3. Neo4j图形数据库的一些基本Cypher查询指令总结
  4. 【BUUCTF】reverse2
  5. ad域服务器用户登录限制,AD域监控用户登录, 活动目录监控用户, AD登录历史审核...
  6. cmstop php,CmsTop是什么
  7. C语言求两个时间的时差
  8. #腾讯会议:728-974-0882
  9. 顺序表创建和就地逆置
  10. 我提了离职,公司给我涨薪了,还能待下去吗?