精华内容
下载资源
问答
  • 我在学李宏毅的机器学习课程,助教给的回归作业代码中有数据标准化的操作。 我听过数据标准化,还有归一化、批量归一化等等,但不是很懂,不知道他们具体是什么、有什么区别。 百度上找了挺多文章,讲得都不是很系统...

    前言

    我在学李宏毅的机器学习课程,助教给的回归作业代码中有数据标准化的操作。

    我听过数据标准化,还有归一化、批量归一化等等,但不是很懂,不知道他们具体是什么、有什么区别。

    百度上找了挺多文章,讲得都不是很系统,比如大多文章都没讲懂标准化和归一化的区别或者是不同文章讲的内容矛盾了。

    用谷歌一搜,就找到了很多很有价值的相关文章,然后我也写了这篇文章做个记录。

    相对来讲,中文社区要比英文社区差些,部分原因是名词滥用或中英翻译问题,比如标准化和归一化、常量指针和指针常量。emmm
    概要

    本文主要讲解了以下内容

    特征缩放是什么/特征缩放的定义
    归一化是什么/归一化的定义
    标准化是什么/标准化的定义
    归一化和标准化的区别
    为什么要进行特征缩放/特征缩放有什么作用
    有哪些常见的特征缩放方法
    什么时候适合进行特征缩放/特征缩放方法的应用
    

    名词定义

    这几个词是有区别的,特别是标准化和归一化,不要滥用(在本文中也请区分这几个词)。
    中文 英文
    特征缩放 Feature Scaling
    标准化 Standardization(Z-Score Normalization)
    归一化 Normalization

    可以认为Feature Scaling包括Standardization和Normalization,其中Standardization可以叫做Z-Score Normalization。
    为什么需要进行特征缩放

    使用单一指标对某事物进行评价并不合理,因此需要多指标综合评价方法。多指标综合评价方法,就是把描述某事物不同方面的多个指标综合起来得到一个综合指标,并通过它评价、比较该事物。

    由于性质不同,不同评价指标通常具有不同的量纲和数量级。当各指标相差很大时,如果直接使用原始指标值计算综合指标,就会突出数值较大的指标在分析中的作用、削弱数值较小的指标在分析中的作用。

    为消除各评价指标间量纲和数量级的差异、保证结果的可靠性,就需要对各指标的原始数据进行特征缩放(也有数据标准化、数据归一化的说法,但不准确,所以不推荐这么叫)。

    由于量纲和数量级不同,所以需要特征缩放。特征缩放可以显著提升部分机器学习算法的性能,但它对部分算法没有帮助。
    基于梯度下降的算法(Gradient Descent Based Algorithms)

    在基于梯度下降进行优化的算法中,需要进行特征缩放,比如线性回归、逻辑回归、神经网络等。

    因为计算梯度时会使用特征的值,如果各特征的的取值范围差异很大,不同特征对应梯度的值就会差异很大。

    为保证平滑走到最优点、按相同速率更新各特征的权重,需要进行特征放缩。

    通过特征放缩,可以使数值范围变小,进而加速梯度下降。
    基于距离的算法(Distance-Based Algorithms)

    在基于距离进行优化的算法中,需要进行特征缩放,比如K近邻、K-Means、SVM、PCA等。

    因为这些算法是基于数据点的特征值计算它们的距离,距离越小则两者越相似。
    基于树的算法(Tree-Based Algorithms)

    基于树的算法对特征(features)的数值范围并不敏感,比如决策树。

    决策树仅基于单个feature拆分节点,并不受其它feature的影响。
    线性判别分析、朴素贝叶斯等算法

    这两个算法处理了特征数量级差异大的问题,因此不需要进行特征缩放。
    四种特征缩放的方法

    标准化和归一化都可以实现特征缩放,但两者是有区别的。

    假设我们有一份数据x
    ,它有N行M列,即有N个对象,每个对象有M个特征,xij表示对象i的特征j

    Standardization(Z-Score Normalization)
    Mean Normalization
    Min-Max Normalization
    Unit Vector Normalization/Scaling to unit length
    

    标准化(Standardization/Z-Score Normalization)

    定义
    
    公式为x^[:,j]=x[:,j]−mean(x[:,j])std(x[:,j])
    

    http://www.jlshsmc.com
    ,其中mean代表平均值,std

    代表标准差,

    mean(x[:,j])=1N⋅∑Ni=1x[i,j]

    std(x[:,j])=1N−1⋅∑Ni=1(x[i,j]−μj)2−−−−−−−−−−−−−−−−−−−√

    。
    
    特点
    
    使数据的平均值变为0、标准差变为1,不改变数据的分布类型,数值范围不一定,消除了数据的量纲差异。
    
    假设
    
    标准化假设数据是正态分布,但这个要求并不十分严格,如果数据是正态分布则该技术会更有效。
    
    何时使用
    
    当我们使用的算法假设数据是正态分布时,可以使用Standardization,比如线性回归、逻辑回归、线性判别分析。
    
    因为Standardization使数据平均值为0,也可以在一些假设数据中心为0(zero centric data)的算法中使用,比如主成分分析(PCA)。
    

    归一化(Normalization)

    特点
    
    把数据调整到[0,1],并且消除了数据的量纲差异。
    
    也可以把数据调到[-1,1],在使用SVM和Adaboost时就需要这样。
    
    何时使用
    
    当我们不知道数据分布时或者我们知道数据不是正态分布时,这是一个很好的方法。
    
    换种说法就是,当我们使用的算法没有假设数据的分布类型时,就可以使用Normalization,比如K近邻算法和人工神经网络。
    

    Mean Normalization

    定义
    
    x^[:,j]=x[:,j]−mean(x[:,j])max(x[:,j])−min(x[:,j])
    

    其中mean
    代表平均值,max代表最大值,min

    代表最小值。
    
    特点
    
    把数据调到[-1,1],平均值为0
    
    何时使用
    
    一些假设数据中心为0(zero centric data)的算法,比如主成分分析(PCA)。
    

    Min-Max Normalization

    定义
    
    x^[:,j]=x[:,j]−min(x[:,j])max(x[:,j])−min(x[:,j])
    

    其中max
    代表最大值,min
    http://www.yujingcy.com
    代表最小值。

    特点
    
    把数据调到[0,1]
    
    何时使用
    
    当处理具有严格数值范围要求的数据(比如图片)时,这非常有用。
    

    Unit Vector Normalization/Scaling to unit length

    定义
    
    x^[i,:]=x[i,:]||x[i,:]||
    

    把每个对象的特征向量变成单位长度。

    特点

    把数据调到[0,1]

    何时使用

    当处理具有严格数值范围要求的数据(比如图片)时,这非常有用。

    展开全文
  • 数据的标准化

    2016-08-18 12:29:55
    在机器学习中领域中的数据分析之前,通常需要将数据标准化,利用标准化后得数据进行数据分析。...标准化的定义:标准化用一句话说就是:把数据经过处理后使之限定在一定的范围内。 那么我们为什么要

    在机器学习中领域中的数据分析之前,通常需要将数据标准化,利用标准化后得数据进行数据分析。数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。


    标准化的定义:

    标准化用一句话说就是:把数据经过处理后使之限定在一定的范围内。
    那么我们为什么要对数据进行标准化呢?
    我们假设现在有两个变量,都是均匀分布,X1范围是100000到200000,X2的范围是1到2。
    很显然,这些落点会基本处于一条直线上,我们称这条直线为L。
    这里写图片描述
    也就是说,如果现在我们要做一个classification的话,X2几乎可以被忽略。X2很无辜的被干掉了,仅仅因为所谓量纲的问题。

    即便X2不被干掉,我们现在继续求解,来做 gradient descent。 很显然,如果某一步我们求得的下降方向不在直线L上,几乎可以肯定肯定这步不会下降。这就会导致不收敛,或者收敛很慢。
    例子来自知乎:https://www.zhihu.com/question/20455227/answer/25238709

    标准化的一般方法:

    1、min-max标准化(Min-Max Normalization)

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

    其中max为样本数据的最大值,min为样本数据的最小值。

    2、Z-score标准化方法

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

    这里写图片描述

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

    参考自:http://webdataanalysis.net/data-analysis-method/data-normalization/

    展开全文
  • 最近看了一篇文章清楚的阐述了归一化和标准化的定义、适用场景、物理意义及使用意义。经过原作者授权以后,我想进行转发并加上我的一些理解,和更多的人一起学习进步。在机器学习和数据挖掘中,经常会听到两个名词:...

    很多的时候我发现很多人和我一样我对机器学习的基本概念一知半解,比如我经常会听到归一化及标准化,傻傻分不清楚。最近看了一篇文章清楚的阐述了归一化和标准化的定义、适用场景、物理意义及使用意义。经过原作者授权以后,我想进行转发并加上我的一些理解,和更多的人一起学习进步。

    在机器学习和数据挖掘中,经常会听到两个名词:归一化(Normalization)与标准化(Standardization)。它们具体是什么?带来什么益处?具体怎么用?本文来具体讨论这些问题。

    一、是什么

    1. 归一化

    常用的方法是通过对原始数据进行线性变换把数据映射到[0,1]之间,变换函数为:


    其中minmin是样本中最小值,maxmax是样本中最大值,注意在数据流场景下最大值与最小值是变化的。另外,最大值与最小值非常容易受异常点影响,所以这种方法鲁棒性较差,只适合传统精确小数据场景。

    2. 标准化

    常用的方法是z-score标准化,经过处理后的数据均值为0,标准差为1,处理方法是:


    其中μμ是样本的均值,σσ是样本的标准差,它们可以通过现有样本进行估计。在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。

    二、带来什么

    归一化的依据非常简单,不同变量往往量纲不同,归一化可以消除量纲对最终结果的影响,使不同变量具有可比性。比如两个人体重差10KG,身高差0.02M,在衡量两个人的差别时体重的差距会把身高的差距完全掩盖,归一化之后就不会有这样的问题。

    标准化的原理比较复杂,它表示的是原始值与均值之间差多少个标准差,是一个相对值,所以也有去除量纲的功效。同时,它还带来两个附加的好处:均值为0,标准差为1。

    均值为0有什么好处呢?它可以使数据以0为中心左右分布(这不是废话嘛),而数据以0为中心左右分布会带来很多便利。比如在去中心化的数据上做SVD分解等价于在原始数据上做PCA;机器学习中很多函数如SigmoidTanhSoftmax等都以0为中心左右分布(不一定对称)。

    标准差为1有什么好处呢?这个更复杂一些。对于xixi与xi′xi′两点间距离,往往表示为


    其中dj(xij,xi′j)dj(xij,xi′j)是属性jj两个点之间的距离,wjwj是该属性间距离在总距离中的权重,注意设wj=1,∀jwj=1,∀j并不能实现每个属性对最后的结果贡献度相同。对于给定的数据集,所有点对间距离的平均值是个定值,即


    是个常数,其中


    可见第jj个变量对最终整体平均距离的影响是wj⋅¯djwj⋅d¯j,所以设wj∼1/¯djwj∼1/d¯j可以使所有属性对全数据集平均距离的贡献相同。现在设djdj为欧式距离(或称为二范数)的平方,它是最常用的距离衡量方法之一,则有


    其中varjvarj是Var(Xj)Var(Xj)的样本估计,也就是说每个变量的重要程度正比于这个变量在这个数据集上的方差。如果我们让每一维变量的标准差都为1(即方差都为1),每维变量在计算距离的时候重要程度相同。

    三、怎么用

    在涉及到计算点与点之间的距离时,使用归一化或标准化都会对最后的结果有所提升,甚至会有质的区别。那在归一化与标准化之间应该如何选择呢?根据上一节我们看到,如果把所有维度的变量一视同仁,在最后计算距离中发挥相同的作用应该选择标准化,如果想保留原始数据中由标准差所反映的潜在权重关系应该选择归一化。另外,标准化更适合现代嘈杂大数据场景。

    展开全文
  • string对象的定义和初始: string标准库支持几个构造函数.构造函数是一个特殊成员函数,定义如何初始该类型的对象. 下面列出几个string类型常用的构造函数.当没有明确指定对象初始式时,系统将使用默认构造函数...

    string对象的定义和初始化:

    string标准库支持几个构造函数.构造函数是一个特殊成员函数,定义如何初始化该类型的对象.

    下面列出几个string类型常用的构造函数.当没有明确指定对象初始化式时,系统将使用默认构造函数:
    string s1; //默认构造函数,s1为空串
    string s2(s1); //将s2初始化为s1的一个副本
    string s3("value");  //将s3初始化为一个字符串字面值常量
    string s4(n,'c');   //将s4初始化为字符'c'的n个副本 

    警告:标准库string类型和字符串字面值

    因为历史原因以及为了与C语言兼容,字符串字面值与标准库string类型不是同一种类型.这一点很容易引起混乱,编程时一定要注意区分字符串字面值和string数据类型的使用,这很重要.

    string是stl中的类模板,C++的字符串字面值的类型是const char[N],两者不是一回事。

    string是STL模板里面的  使用vector来编写的  char*是以'\0'结尾 但是string不是的

    string里隐含了个char *指针,这个指针指向真正存放字符串字面值的内存地址。

    习题:

    3.21什么是默认构造函数?

    默认构造函数就是在没有显式初始化式时调用的构造函数.它由不带参数的构造函数,或者为所有形参提供默认实参的构造函数定义.如果定义某个类的变量时没有提供初始化式,就会使用默认构造函数.如果用户使用的类中没有显式定义任何构造函数,编译器就会自动为该类生成默认构造函数,称为合成的默认构造函数.

    3.22列举出三种初始化String对象的方法.

    1.不带初始化式,使用默认构造函数初始化string对象.

    2.使用一个已存在的string对象作为初始化式,将新创建的string对象初始化为已存在对象的副本.

    3.使用字符串字面值作为初始化式,将新创建的string对象初始化为字符串字面值的副本.

    3.23s和s2的值分别是什么?

    string s;
    int main(){
     string s2;
    }

    s和s2均为空字符串.

    展开全文
  • 虚拟化的定义

    2014-10-11 21:36:13
    虚拟化是一个广义术语,各行各业对虚拟化的理解均不同,不同的人对虚拟化的理解不同,所以没有一个标准的定义。但是,无论怎么理解,虚拟化的本质就是将现有的计算机资源通过虚拟化的技术分割成若干个计算机资源,...
  • 哪位能告诉我,一个语言自上而下文法(或自下而上文法)是由这个语言的标准化组织给出,还是由 编译器设计者给出?如标准化组织给出C语言BNF到底是LL(1)文法还是LALR文法?
  • GB_T 18391.4-2001信息技术 数据元规范与标准化 第4部分_ 数据定义的编写规则与指南
  • 数字化车间作为智能制造的核心单元,涉及信息技术、自动化技术、机械制造、物流...实现数字化车间技术要求和求语规范化的统一,对于支撑数字化车间建设,完善智能制造标准体系,推进智能制造高质量发展具有重要意义。
  • 实数公理化定义

    千次阅读 2018-02-23 08:17:05
     说明:1961年,美国数学家鲁宾逊在实数公理基础上,利用数理逻辑模型论紧致性定理,证明实数标准模型存在,这就是超实数需要诞生。由此,无穷小微积分就名正言顺了。袁萌 2月23日附:实数公理化定义: ...
  • 当 w = 0 时(默认值),S 按 N-1 进行标准化。当 w = 1 时,S 按观测值数量 N 进行标准化。w 也可以是包含非负元素权重矢量。在这种情况下,w 长度必须等于 std 将作用于维度长度。 2.matlab均方根误差RMS...
  • 公理化定义

    2019-06-30 20:50:36
    若对称函数序列Hm(p1,p2,...,pm)满足下列性质(1)标准化:H21212=1(2)连续性:H2(p,1−p)为p连续函数(3)组合法则:Hm(p1,p2,...,pm)=Hm−1(p1+p2,...,pm)+(p1+p2)H2(p1p1+p2,p2p1+p2)\begin{array}{l} 若对称函数序列...
  • Z-Score:定义,公式 和 数据标准化

    千次阅读 2020-12-08 17:07:20
    z-score主要应用是测量原始数据与数据总体均值相差多少个标准差。 z-score是比较测试结果与正常结果一种方法。测试与调查结果往往有不同单位和意义,简单地从结果本身来看可能毫无意义。当我们知道小明数学...
  • 数据特征标准化和归一化的区别

    千次阅读 2019-09-28 14:04:06
    **归一化和标准化经常被搞混,程度还比较严重,非常干扰大家的理解。为了方便后续的讨论,必须先明确二者的定义。** 一、标准化/归一化定义 归一化和标准化经常被搞混,程度还比较严重,非常干扰大家的理解...
  • 标准化的发展 国内标准化的发展 标准化机构 定义:标准化机构是指制定、发布和管理各种标准的国际组织、区域性组织、政府或非政府组织、行业组织等。 级别:不同的标准化机构,所定制的标准的级别也不同。...
  • 目录 目录 常量 声明与定义 ...规则8.1(强制):函数应当具有原型声明,且原型在函数的定义和调用范围内都是可见的。 建议: 在头文件中声明函数(即给出其原型),并在所有需要该函数原...
  • 标准化后C++中,定义在for循环内部变量,循环外部不可使用 #include using namespace std; int main() { int sum = 0; for(int i = 0; i ; ++i) { sum += i; } i = 3; //报错,由于在标准化后C++...
  • c语言 有理数的标准化

    千次阅读 2020-04-24 17:04:17
    有理数的标准化 数学计算中经常要用到有理数(分数)。在有理数范围内进行算术运算,结果仍在有理数范围内。下面来设计和实现“有理数类型”。 // 定义有理数类型 typedef struct { // 分子, 分母 int num, den; } ...
  • 机器学习中的标准化和归一化

    千次阅读 2018-08-20 10:22:39
    今天在看别人博客的时候看到标准化和归一化,这是一个很...为了方便后续的讨论,必须先明确二者的定义。 归一化 就是将训练集中某一列数值特征(假设是第i列)的值缩放到0和1之间。方法如下所示: 标准化...
  • Paper:自动驾驶领域L级别SAE标准《道路机动车辆驾驶自动系统相关术语分类和定义&Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles》翻译与解读 ...
  • 中心化和标准化

    千次阅读 2018-09-03 20:55:01
    1 为什么会谈到中心化和标准化呢? 因为在阅读《推荐系统》一书,学习“改进余弦相似度”和“Pearson”相关系数时,都谈到了减去均值...3 为什么要提出中心化和标准化的方法? 4 中心化和标准化的实际应用有哪些?...
  • 标准化与归一化的区别?

    千次阅读 2018-12-18 13:55:33
    答:简单来说,标准化是依照特征矩阵列处理数据,其通过求z-score方法,将样本特征值转换到同一量纲下。 归一化是依照特征矩阵行处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有...
  • 新的HTML5标准中定义了一系列的标签,更语义化的定义页面层次和逻辑,不需要自己定义相关的DIV,HTML5提供了现成的标签来完成结构化定义。 浏览器兼容性:Internet Explorer 9, Firefox, Opera, Chrome 以及 Safari...
  • 归一化方式_标准化

    2020-01-08 16:23:01
    归一化后有两个好处: (1)归一化后加快了梯度下降求最优解速度。 (2)归一化有可能提高精度(归一化是让不同维度之间特征在数值上有一定比较性) ...定义:也称为离差标准化,是对原始数据线...
  • 该样条工具箱提供了基于节点向量一般定义、B样条基函数阶数及其系数定义样条曲线和曲面可能性。 This Spline toolbox provides the possibility to define spline curves and surfaces according to the ...
  • 归一化和标准化

    2018-12-24 16:27:23
    归一化和标准化一、定义1.归一化2.标准化二、区别 一、定义 1.归一化 常用方法是通过对原始数据进行线性变换把数据映射到[0,1]之间,变换函数为: :y=(x-min)/(max-min): 这种方法有个缺陷就是当有新数据加入...
  • 标准化和归一化

    2020-04-09 12:42:28
    归一化(0-1 normalization/ min-max normalization) 把数变为(0,1)之间小数,特征数据范围不同归一化后方便统一处理 ...经过处理数据符合标准正态分布,z-score标准化方法适用于属性A最大...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,499
精华内容 6,599
关键字:

标准化的定义