特征处理时,数据标准化和归一化 标准化有什么区别

26171人阅读
机器学习MachineLearning(37)
Math(31)
http://这里主要讲连续型特征归一化的常用方法。离散参考[]。基础知识参考:[][]数据的标准化(normalization)和归一化&&& 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。&&& 目前数据标准化方法有多种,归结起来可以分为直线型方法(如极值法、标准差法)、折线型方法(如三折线法)、曲线型方法(如半正态性分布)。不同的标准化方法,对系统的评价结果会产生不同的影响,然而不幸的是,在数据标准化方法的选择上,还没有通用的法则可以遵循。归一化的目标1 把数变为(0,1)之间的小数&&&&&&& 主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。2 把有量纲表达式变为无量纲表达式&&&&&&& 归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。 比如,复数阻抗可以归一化书写:Z = R + jωL = R(1 + jωL/R) ,复数部分变成了纯数量了,没有量纲。 另外,微波之中也就是电路分析、信号系统、电磁波传输等,有很多运算都可以如此处理,既保证了运算的便捷,又能凸现出物理量的本质含义。归一化后有两个好处1. 提升模型的收敛速度如下图,x1的取值为0-2000,而x2的取值为1-5,假如只有这两个特征,对其进行优化时,会得到一个窄长的椭圆形,导致在梯度下降时,梯度的方向为垂直等高线的方向而走之字形路线,这样会使迭代很慢,相比之下,右图的迭代就会很快(理解:也就是步长走多走少方向总是对的,不会走偏)2.提升模型的精度归一化的另一好处是提高精度,这在涉及到一些距离计算的算法时效果显著,比如算法要计算欧氏距离,上图中x2的取值范围比较小,涉及到距离计算时其对结果的影响远比x1带来的小,所以这就会造成精度的损失。所以归一化很有必要,他可以让各个特征对结果做出的贡献相同。&&& 在多指标评价体系中,由于各评价指标的性质不同,通常具有不同的量纲和数量级。当各指标间的水平相差很大时,如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中的作用,相对削弱数值水平较低指标的作用。因此,为了保证结果的可靠性,需要对原始指标数据进行标准化处理。&&& 在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。数据无量纲化处理主要解决数据的可比性。经过上述标准化处理,原始数据均转换为无量纲化指标测评值,即各指标值都处于同一个数量级别上,可以进行综合测评分析。从经验上说,归一化是让不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。3. 深度学习中数据归一化可以防止模型梯度爆炸。数据需要归一化的机器学习算法需要归一化的模型:&&&&&&& 有些模型在各个维度进行不均匀伸缩后,最优解与原来不等价,例如SVM(距离分界面远的也拉近了,支持向量变多?)。对于这样的模型,除非本来各维数据的分布范围就比较接近,否则必须进行标准化,以免模型参数被分布范围较大或较小的数据dominate。&&&&&&& 有些模型在各个维度进行不均匀伸缩后,最优解与原来等价,例如logistic regression(因为θ的大小本来就自学习出不同的feature的重要性吧?)。对于这样的模型,是否标准化理论上不会改变最优解。但是,由于实际求解往往使用迭代算法,如果目标函数的形状太“扁”,迭代算法可能收敛得很慢甚至不收敛。所以对于具有伸缩不变性的模型,最好也进行数据标准化。不需要归一化的模型:&&&&&&& ICA好像不需要归一化(因为独立成分如果归一化了就不独立了?)。&&&&&& 基于平方损失的最小二乘法OLS不需要归一化。[]常见的数据归一化方法min-max标准化(Min-max normalization)/0-1标准化(0-1 normalization)也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:其中max为样本数据的最大值,min为样本数据的最小值。def Normalization(x):&&& return [(float(i)-min(x))/float(max(x)-min(x)) for i in x]如果想要将数据映射到[-1,1],则将公式换成:x*=x-xmeanxmax-xminx_mean表示数据的均值。def Normalization2(x):&&& return [(float(i)-np.mean(x))/(max(x)-min(x)) for i in x]这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。log函数转换通过以10为底的log函数转换的方法同样可以实现归一下,具体方法如下:看了下网上很多介绍都是x*=log10(x),其实是有问题的,这个结果并非一定落到[0,1]区间上,应该还要除以log10(max),max为样本数据最大值,并且所有的数据都要大于等于1。atan函数转换用反正切函数也可以实现数据的归一化。使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上,而并非所有数据标准化的结果都映射到[0,1]区间上。z-score 标准化(zero-mean normalization)最常见的标准化方法就是Z标准化,也是SPSS中最为常用的标准化方法,spss默认的标准化方法就是z-score标准化。也叫标准差标准化,这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:x*=x-μσ其中μ为所有样本数据的均值,σ为所有样本数据的标准差。z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。标准化的公式很简单,步骤如下  1.求出各变量(指标)的算术平均值(数学期望)xi和标准差si ;  2.进行标准化处理:  zij=(xij-xi)/si  其中:zij为标准化后的变量值;xij为实际变量值。  3.将逆指标前的正负号对调。  标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。def z_score(x, axis):
x = np.array(x).astype(float)
xr = np.rollaxis(x, axis=axis)
xr -= np.mean(x, axis=axis)
xr /= np.std(x, axis=axis)
# print(x)
return x为什么z-score 标准化后的数据标准差为1?x-μ只改变均值,标准差不变,所以均值变为0(x-μ)/σ只会使标准差除以σ倍,所以标准差变为1Decimal scaling小数定标标准化这种方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于属性A的取值中的最大绝对值。将属性A的原始值x使用decimal scaling标准化到x'的计算方法是:x'=x/(10^j)其中,j是满足条件的最小整数。例如 假定A的值由-986到917,A的最大绝对值为986,为使用小数定标标准化,我们用每个值除以1000(即,j=3),这样,-986被规范化为-0.986。注意,标准化会对原始数据做出改变,因此需要保存所使用的标准化方法的参数,以便对后续的数据进行统一的标准化。Logistic/Softmax变换[]模糊量化模式新数据=1/2+1/2sin[派3.1415/(极大值-极小值)*(X-(极大值-极小值)/2) ] X为原数据数据标准化/归一化的编程实现python库实现和调用[
]from: ref:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2629905次
积分:25498
积分:25498
排名:第246名
原创:534篇
转载:30篇
评论:245条
文章:21篇
阅读:121124
阅读:39582
文章:13篇
阅读:79476
阅读:46817
文章:16篇
阅读:116183
文章:18篇
阅读:57356
Contact me归一化用于文本分类中的特征向量计算
归一化,也即数据标准化。是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。以下是两种归一化方法:
一、min-max标准化(Min-Max Normalization)
归一化,也即数据标准化。是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。以下是两种归一化方法:
一、min-max标准化(Min-Max Normalization)
也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 - 1]之间。归一化映射如下: f:x→y=x-xminxmax-xmin
二. 向量求模标准化
如 a? =(1,2,3),计算得模为|a? |=12+22+3212+22+32√=3.742,则a? new=(13.742,23.742,33.742).
版权声明:本文内容由互联网用户自发贡献,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至: 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
用云栖社区APP,舒服~
【云栖快讯】红轴机械键盘、无线鼠标等753个大奖,先到先得,云栖社区首届博主招募大赛9月21日-11月20日限时开启,为你再添一个高端技术交流场所&&
阿里云流计算(Aliyun StreamCompute)是运行在阿里云平台上的流式大数据分析平台,提供给用户在云...
快速、完全托管的TB/PB级数据仓库解决方案,向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更...
一种适用于大规模并行批处理作业的分布式云服务。可支持海量作业并发规模,系统自动完成资源管理,作业调度和数据加载,...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
MaxCompute75折抢购
Loading...5931人阅读
机器学习(37)
、数据挖掘工作中,数据前期准备、数据预处理过程、特征提取等几个步骤几乎要花费数据工程师一半的工作时间。同时,数据预处理的效果也直接影响了后续模型能否有效的工作。然而,目前的大部分学术研究主要集中在模型的构建、优化等方面,对数据预处理的理论研究甚少,可以说,很多数据预处理工作仍然是靠工程师的经验进行的。从业数据建模/挖掘工作也有近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′=x-x?&、&y′=y-y?
新数据的协方差为
σ′xy=1n-1∑in(x′i-x?′)(y′i-y?′)
由于&x?′=0、&y?′=0&,因此
σ′xy=1n-1∑inx′iy′i
而原始数据协方差为
σxy=1n-1∑in(x′i-x?′)(yi-y?)
=1n-1∑in(x′i-0)(yi-y?)
=1n-1∑in(xi-x?)(yi-y?)
因此&σ′xy=σxyσxy
做方差归一化后:
x′=x-x?σx&、&y′=y-y?σy
σ′xy=1n-1∑in(x′i-0)(y′i-0)
=1n-1∑in(x-x?σx)(y-y?σy)
=1(n-1)?σxσy∑in(xi-x?)(yi-y?)
=>σ′xy=σxyσxσy
使用第一种方法进行计算,为方便分析,我们只对X维进行线性函数变换
计算协方差
σ′xy=1n-1∑in(c?xi-c?x?)(yi-y?)
=cn-1∑in(xi-x?)(yi-y?)
=>σxy=σ′xyc
=>σ′xy=c?σxy
可以看到,使用第一种方法(线性变换后),其协方差产生了倍数值的缩放,因此这种方式无法消除量纲对方差、协方差的影响,对PCA分析影响巨大;同时,由于量纲的存在,使用不同的量纲、距离的计算结果会不同。
而在第二种归一化方式中,新的数据由于对方差进行了归一化,这时候每个维度的量纲其实已经等价了,每个维度都服从均值为0、方差1的正态分布,在计算距离的时候,每个维度都是去量纲化的,避免了不同量纲的选取对距离计算产生的巨大影响。
总结来说,在算法、后续计算中涉及距离度量(聚类分析)或者协方差分析(PCA、LDA等)的,同时数据分布可以近似为状态分布,应当使用0均值的归一化方法。其他应用中更具需要选用合适的归一化方法。
转自:http://blog.csdn.net/zbc/article/details/
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:297168次
积分:3683
积分:3683
排名:第9261名
原创:76篇
转载:138篇
(2)(1)(2)(1)(1)(8)(9)(10)(5)(9)(7)(7)(17)(37)(12)(26)(13)(4)(14)(5)(1)(5)(10)(3)(3)(3)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 特征数据归一化 的文章

 

随机推荐