数据归一化和两种常用的归一化方法

数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。以下是两种常用的归一化方法:

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

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

clip_image002

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

二、Z-score标准化方法

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

clip_image004

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

 

Z-score标准化的sklearn方法:http://blog.youkuaiyun.com/u011630575/article/details/79406612


数据的标准化(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不需要归一化。

<think>好的,我现在需要回答用户关于归一化数据处理机器学习中的应用及实现的问题。首先,我需要明确用户的需求,他们可能想了解归一化的基本概念、为什么需要归一化、具体应用场景以及如何实现。根据用户提供的引用资料,我需要结合这些信息来组织回答。 首先,用户提供的引用[1]提到了归一化的定义作用,引用[4]详细比较了标准化归一化的区别及适用场景。这些将是回答的基础。我需要先解释归一化的定义,然后说明其作用,比如消除量纲影响、加速模型收敛等。接着,应用场景部分可以引用[4]提到的神经网络深度学习模型,以及数据不符合正态分布的情况。 然后是实现方法,用户可能希望看到具体的归一化技术,比如Min-Max归一化Z-Score标准化,这部分需要详细说明公式步骤。引用[4]中提到了这两种方法的代码实现,但用户的问题可能不需要代码,不过可以简要提及。此外,还需要注意引用对应的参考资料,确保正确标注来源。 接下来,我需要考虑用户可能存在的疑问,比如归一化标准化的区别,这时候需要引用[4]的内容来解释两者的不同之处应用场景。同时,用户可能想知道在什么情况下应该使用归一化,这时候可以结合引用[1][4]中的适用场景进行说明。 在组织内容时,要保持结构清晰,分点回答。可能需要分为几个部分:定义、作用、应用场景、实现方法、与标准化的区别。每个部分都需要引用相关的资料,比如在定义部分引用[1],在应用场景区别部分引用[4]。 另外,用户提到的引用[2][3]可能涉及更具体的应用案例效果,比如批量归一化在深度学习中的应用,或者归一化对模型准确率的影响。这些可以作为补充信息,增强回答的全面性。 需要注意,回答中所有的数学公式需要按照用户的要求使用$...$或$$...$$格式。例如,Min-Max归一化的公式应该写成$$x' = \frac{x - \text{min}(X)}{\text{max}(X) - \text{min}(X)}$$,并确保LaTeX语法正确。 最后,生成的相关问题需要与归一化相关,可能包括优化方法、不同归一化技术的比较、实际应用案例等,确保问题能引导用户进一步探索。 总结步骤: 1. 定义归一化,引用[1][4]。 2. 解释归一化的作用,如消除量纲、加速收敛等。 3. 应用场景,如神经网络、非正态数据,引用[4]。 4. 实现方法,包括Min-MaxZ-Score,公式步骤。 5. 与标准化的区别,引用[4]。 6. 代码示例(可能简要提及)。 7. 相关问题生成,如优化、应用场景等。 需要检查是否所有引用都正确标注,并且内容准确无误。同时,确保使用中文回答,结构清晰,分点明确,符合用户的要求。</think>### 归一化数据处理机器学习中的应用及实现 #### 1. 归一化的定义 归一化(Normalization)是将数据按比例缩放至特定区间(通常为$[0,1]$或$[-1,1]$)的过程,以消除量纲差异对模型的影响。其核心目标是**使不同特征的数值范围统一**,从而提升模型训练效率精度[^1]。 --- #### 2. 归一化的作用 - **消除量纲影响**:当特征的单位或范围差异较大时(如身高“米”与体重“千克”),模型可能偏向大范围特征,归一化可平衡权重。 - **加速模型收敛**:梯度下降类算法在归一化后参数更新更稳定,收敛速度更快[^4]。 - **提高模型泛化能力**:避免某些特征因数值过大主导模型训练。 --- #### 3. 应用场景 - **深度学习与神经网络**:批量归一化(Batch Normalization)常用于隐藏层输入标准化,缓解梯度消失/爆炸问题[^2]。 - **非正态分布数据**:当数据分布不满足正态性时,归一化比标准化更适合。 - **特征范围差异大**:例如图像处理中像素值范围为$[0,255]$,归一化到$[0,1]$可简化计算。 --- #### 4. 实现方法 ##### (1) Min-Max归一化 公式: $$x' = \frac{x - \text{min}(X)}{\text{max}(X) - \text{min}(X)}$$ 步骤: 1. 计算数据集的最小值$\text{min}(X)$最大值$\text{max}(X)$。 2. 将每个数据点按公式线性映射到$[0,1]$。 **适用场景**:数据分布无明显边界或需要固定范围时(如图像处理)。 ##### (2) Z-Score标准化(标准化与归一化的区别) 虽然标准化(Standardization)常与归一化对比,但其公式为: $$x' = \frac{x - \mu}{\sigma}$$ 其中$\mu$为均值,$\sigma$为标准差。 **区别**: - 标准化保留异常值,归一化对异常值敏感。 - 标准化适用于正态分布数据(如线性回归、SVM),归一化适合非正态数据(如神经网络)。 --- #### 5. 代码实现示例(Python) ```python from sklearn.preprocessing import MinMaxScaler, StandardScaler import numpy as np # Min-Max归一化 data = np.array([[1.0], [2.0], [3.0]]) scaler = MinMaxScaler() normalized_data = scaler.fit_transform(data) # 输出:[0, 0.5, 1] # Z-Score标准化 scaler_z = StandardScaler() standardized_data = scaler_z.fit_transform(data) # 均值为2,标准差为0.816,输出:[-1.2247, 0, 1.2247] ``` --- #### 6. 关键注意事项 - **训练集与测试集统一缩放**:需用训练集的$\text{min}$$\text{max}$参数处理测试集,避免数据泄露。 - **稀疏数据慎用**:归一化可能破坏稀疏性(如文本处理中的词频向量)。 ---
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值