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

下图最左是原始数据;中间是中心化数据,就是平移到原点;最右是z-score规范后的数据,均值为0,方差为1。

一、数据标准化的意义:

1、数据的量纲不同;数量级差别很大

经过标准化处理后,原始数据转化为无量纲化指标测评值,各指标值处于同一数量级别,可进行综合测评分析。

如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中的作用,相对削弱数值水平较低指标的作用。

2、避免数值问题:太大的数会引发数值问题。

3、平衡各特征的贡献

一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。

如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。

4、一些模型求解的需要:加快了梯度下降求最优解的速度

二、数据标准化的方法

1、Min-Max标准化

x = (x - min)/(max - min)

通过对数据的每一个维度的值进行重新调节,使得最终的数据向量落在 [0,1]区间内

应用场景:

这种归一化方法比较适用在数值比较集中的情况。但是,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定,实际使用中可以用经验常量值来替代max和min。而且当有新数据加入时,可能导致max和min的变化,需要重新定义。

在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用该方法。

在处理自然图像时,我们获得的像素值在 [0,255] 区间中,常用的处理是将这些像素值除以 255,使它们缩放到 [0,1]中.

 

2、标准差标准化,也叫z-score标准化

x =(x - u)/σ    u是均值   σ是标准差

处理后的数据符合标准正态分布。该标准化方法广泛用于机器学习算法(SVM,Logistic regression,neural networks)

应用场景

在分类、聚类,算法中需要使用距离来度量相似性的时候、或者使用PCA(协方差分析)技术进行降维的时候,Z-score 标准化表现更好。

 

3、非线性归一化

经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log、指数,正切等。需要根据数据分布的情况,决定非线性函数的曲线。

(1)log函数转化到[0,1]。数据要落到[0,1]区间,要求原数据大于等于1

(2)atan反正切函数。要想数据落到[0,1],数据应该大于等于0,小于0的数据被映射到[-1,0]

(3)logistic函数 | sigmoid函数:该函数的曲线是S型的,值域在[0,1]范围

三、处理哪些问题时需要对数据进行标准化?

1、分类(如k-nearest neighbors算法)

2、聚类(如k-means算法)

使用距离(如欧几里得距离)来判定样本之间的相似度的分类和聚类问题,都要进行数据规范化。

3、支持向量机SVM(support vector machine),逻辑回归logistic regression, perceptron, neural networks etc.

上面这些问题使用梯度优化来获得最优解。比如支持向量机使用梯度优化得到将样本数据分开的最优超平面。

ifyou are using 梯度下降优化算法(gradientdescent/ascent-based optimization), otherwise some weights will update muchfaster than others

4、主成分分析(principal component analysis), linear discriminant analysis, kernel principal component analysis

sinceyou want to find directions of maximizing the variance (under the constraintsthat those directions/eigenvectors/principal components are orthogonal); youwant to have features on the same scale since you’d emphasize variables on“larger measurement scales” more.

总之,涉及到距离、协方差(比如PCA本质涉及协方差计算)、梯度计算的问题要进行标准化。

距离、协方差,是因为要使各特征贡献一致所以使用标准化

梯度计算,是因为如果不标准化,模型的收敛会很慢或者不会收敛到最优解。

数据标准化 Data Normalization相关推荐

  1. python normalize函数_数据正规化 (data normalization) 的原理及实现 (Python sklearn)

    原理 数据正规化(data normalization)是将数据的每个样本(向量)变换为单位范数的向量,各样本之间是相互独立的.其实际上,是对向量中的每个分量值除以正规化因子.常用的正规化因子有 L1 ...

  2. 数据正规化(data normalization)的原理及实现(numpy)

    原理 数据正规化(data normalization)是将数据的每个样本(向量)变换为单位范数的向量,各样本之间是相互独立的.其实际上,是对向量中的每个分量值除以正规化因子.常用的正规化因子有 L1 ...

  3. 什么时候需要coinitialize_机器学习模型什么时候需要做数据标准化?

    机器学习 Author:louwill Machine Learning Lab 一直都有朋友在做机器学习模型时有疑问:我的数据要不要做标准化处理? 这个问题笔者也思考过,只不过不够系统,观点也比较单 ...

  4. python数据预处理 :数据标准化

    何为标准化: 在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析.数据标准化也就是统计数据的指数化.数据标准化处理主要包括数据同趋化处理和无量纲化 ...

  5. 数据标准化方法z-score讲解(matlab)

    在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析. z-score 标准化(正太标准化)是基于原始数据的均值(mean)和标准差(standar ...

  6. 数据标准化的方法与作用

    在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析.数据标准化也就是统计数据的指数化.数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面. ...

  7. zscore函数的数据标准化处理及MATLAB实现

    一.数据标准化处理方法 在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析.数据标准化也就是统计数据的指数化.数据标准化处理主要包括数据同趋化处理 ...

  8. Normalization 批标准化(batch normalization)理解

    数学是达成目的的工具, 理解才是达成目的桥梁, 所以这篇文章用浅显易懂的动画阐述了复杂的机器学习概念. 强烈推荐通过动画的形式了解. 所以首先放视频链接: Youtube 或者 优酷. 代码实现请来这 ...

  9. Sklearn——对数据标准化(Normalization)

    文章目录 1.前言 2.数据标准化 3.对比标准化前后 3.1.数据标准化前 3.2.数据标准化后 1.前言 由于数据的偏差与跨度会影响机器学习的成效,因此正规化(标准化)数据可以提升机器学习的成效 ...

最新文章

  1. 自动化运维—saltstack
  2. 练习2-13 求N分之一序列前N项和 (15 分)
  3. docker搭建harbor私有镜像库
  4. 使用Microsoft Visual Studio安装AsmDude插件
  5. python之matloplib可视化
  6. 使用if和goto语句构造循环
  7. 安装python37路径报错_解决pycharm安装python库报错问题
  8. pycharm运行python程序后显示_pycharm运行和调试不显示结果的解决方法
  9. R语言编程艺术(4)R对数据、文件、字符串以及图形的处理
  10. 48条高效率的PHP优化写法
  11. 程序员,保险公司招聘不要轻易跑过去,省省路费省省时间,别浪费感情,特别是招聘什么业务主管经理的...
  12. 电脑中的打印驱动程序如何打包_旧驱动程序会教您如何处理笔记本电脑上的黑屏...
  13. java文件删除失败
  14. linux ext4限制,linux – 限制ext4文件系统中文件的最大大小
  15. MATLAB频谱图绘制
  16. CISCO3945E/K9路由器license激活教程
  17. 当tomcat启动遇到(你的项目名字) is required and cannot be removed from the server(不能部署到server上)
  18. ansible生成巡检报告
  19. 李开复给中国学生的第二封信:从优秀到卓越
  20. java json 长度限制_tomcat解决POST请求过长的限制

热门文章

  1. ArcMap 镶嵌数据集基本使用方法
  2. 用vue写购物车常用的数量增加和减少吧!
  3. Clickhouse 在云原生场景下的部署和使用
  4. 公司副总请各部门经理喝酒,事后有些经理汇报给了老板,没汇报的反而被打压,你怎么看?...
  5. “笨办法”学Python3,Zed A. Shaw,习题20
  6. 微信小程序+阿里物联平台+合宙Air724UG搭建无服务器物联系统(二)---阿里物联平台搭建
  7. 前端/后端 - 表单数据验证 - 个人实践
  8. 学习@Transaction异常自动回滚以及手动回滚和回滚部分SQL服务
  9. 【学习】如何制作手机端html模板(REM的实际应用)
  10. 我成为了CSDN优秀资源分享达人