最大值最小值归一化&标准归一化(均值归一化,标准归一化)

本文介绍了两种常见的数据预处理方法:最大最小值归一化和标准归一化。最大最小值归一化易受离群值影响,可能导致数据集中在0-1范围内的一端。标准归一化则通过计算均值和标准差进行缩放,对离群值的敏感性较低,适合样本量大的情况。在实际应用中,应当根据数据特性选择合适的归一化方法,并确保训练集和测试集的标准化一致。代码示例展示了如何使用sklearn库实现这两种归一化操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 最大值最小值归一化

Xjmin是Xj所在列的最小值

Xjmax是Xj所在列的最大值

问题:

能做到归一化(0-1zhi之间),但是一旦数据中有一个离群值(特别大的值)就会出现这个离群值做完归一化后特别趋近于1,而其他值特别趋近于0。

异常值特别大的话那么最大值和最小值差距比较大。所以一般不会使用最大最小值归一化。

标准归一化

经过处理的数据符合标准正态分布即均值为0,标准差为1的标准正态分布。

Xmean:X所在列的均值

Standard Deviation:X所在列的标准差

标准差的公式会考虑到所有样本数据,所以受离群值影响会小一些。在样本足够多的情况下比较稳定。

但是如果使用标准归一化不一定会把数据缩放到0-1之间。

 标准差是方差的开根号:

方差为0说明所有的特征都是平均值

方差很大说明所有特征都比较离散

如果样本都是正的,那么所有的的参数θ在调整的时候可能都朝着一个方向调整。

标准归一化可以是样本缩放的同时,也可以使样本有正有负,这样就可以让不同的

θ朝着不同方向调整直接到达最优解,减少迭代次数。

在用代码使用归一化的时候,测试集和训练集使用同一个scaler对象(持久化)训练,不过前提是测试集和训练集以及未来的新数据集是同分布的。

#基于sklearn代码实现最大最小值归一化

from sklearn.preprocessing import MinMaxScaler

# 数据归一化
def Maxminscale():
    # feature_range指定2-3之间的范围
    mm = MinMaxScaler(feature_range=(2, 3))
    data = mm.fit_transform([[89, 79, 1, 14], [78, 111, 33, 754], [82, 234, 11, 23]])
    print(data)

结果缩放到2-3之间

#基于sklearn代码实现标准归一化

from sklearn.preprocessing import StandardScaler

# 标准归一化
def standscaler():
    ss = StandardScaler()
    data = ss.fit_transform([[89, 79, 1, 14], [78, 111, 33, 754], [82, 234, 11, 23]])
    print(data)

标准差缩放后的结果

<think>好的,用户想了解最大-最小归一化(max-min normalization)在数据预处理中的优点。首先,我需要回忆一下这个方法的定义和常见应用场景。最大-最小归一化通常是将数据线性转换到某个范围,比如[0,1]或者[-1,1],公式应该是这样的:$x' = \frac{x - \text{min}}{\text{max} - \text{min}}$。这样处理后,所有特征的值都会落在同一尺度上,有助于机器学习模型的训练。 接下来,我需要根据用户提供的引用内容来寻找可能的关联点。例如,引用[2]提到了最大值归一化(Max Normalization),虽然它只是用最大值归一化,但可能和最大-最小归一化有类似的目的,比如消除量纲影响。不过用户的问题是关于max-min的,所以需要重点分析它的优点。 然后,用户可能想知道为什么选择最大-最小归一化而不是其他方法,比如Z-score标准化或者最大值归一化。这时候需要比较不同方法的优缺点。例如,Z-score处理后的数据均值为0,标准差为1,但数据范围可能不固定,而max-min可以确保所有数据在固定区间内,这对某些需要输入值范围的算法(如神经网络)可能更有好处。 另外,用户可能关心数据预处理中的常见问题,比如不同特征的尺度差异大导致模型训练不稳定的情况。这时最大-最小归一化能有效解决这个问题,因为它将所有特征缩放到相同范围,使得梯度下降等优化过程更高效。 还需要考虑引用中的其他内容。例如,引用[3]提到优化网络结构以提高算法准确性和降低时间复杂度,这可能和预处理步骤简化数据复杂度有关联。但不确定是否直接相关。引用[4]讨论了贪心算法的局限性,如对噪声敏感,而好的数据预处理(如归一化)可能有助于减少噪声的影响,提升模型鲁棒性。 然后,我需要组织这些点,形成结构清晰的回答。通常优点包括消除量纲差异、保持数据分布、适用性广、数值稳定性、提升收敛速度等。每个优点都需要简明扼要地解释,并可能引用相关资料支持。 同时,用户可能需要了解与其他方法的对比,所以在相关问题中可以生成关于不同归一化方法对比的问题,或者max-min的局限性,这样有助于用户进一步学习。 需要确保回答中使用正确的中文术语,并且数学公式使用$$...$$格式。例如,给出归一化的公式: $$x_{\text{new}} = \frac{x - \text{min}(X)}{\text{max}(X) - \text{min}(X)}$$ 同时,检查是否有引用可以关联。比如引用[2]中的最大值归一化,虽然不同,但可以作为对比。但用户的问题是关于max-min的,所以重点不在那里。可能引用其他内容中提到的数据增强或正则化(如引用[5]中的AutoAugment)间接相关,但不确定,可能暂时不直接引用。 最后,确保回答中的每个优点都清晰,并且结合实际应用场景,比如图像处理、梯度下降优化等,这样用户更容易理解。</think>### 最大-最小归一化的优点 最大-最小归一化(Max-Min Normalization)是一种常用的数据预处理方法,其公式为: $$x_{\text{new}} = \frac{x - \text{min}(X)}{\text{max}(X) - \text{min}(X)}$$ 其中$X$表示原始数据列。该方法通过线性变换将数据映射到指定范围(通常为$[0,1]$或$[-1,1]$),具有以下优点: 1. **消除量纲差异** 不同特征可能具有完全不同的量纲(例如身高以“米”为单位,收入以“万元”为单位),直接输入模型会导致数值较大的特征主导训练过程。归一化后所有特征处于同一尺度,提升了模型的公平性和稳定性[^2]。 2. **保留原始数据分布** 与标准化(如Z-score)不同,最大-最小归一化不改变数据的分布形状,仅进行线性缩放。这对需要保持原始数据关系的任务(如图像像素值归一化)尤为重要。 3. **提升算法收敛速度** 在梯度下降等优化过程中,归一化后的数据可避免因特征尺度差异导致的梯度震荡,加速收敛。例如,神经网络的权重更新效率会显著提高。 4. **适应模型输入范围限制** 某些模型(如SVM、神经网络)对输入数据的范围敏感。例如,SVM的核函数计算或激活函数(如Sigmoid)在固定范围内表现更优,归一化可确保输入符合要求。 5. **数值稳定性增强** 归一化减少了极端值(如离群点)对计算的影响。例如,在距离计算(如KNN、聚类)中,尺度统一能避免某些特征因数值过大而主导距离度量[^4]。 --- ### 示例应用场景 - **图像处理**:将像素值从$[0,255]$压缩到$[0,1]$,减少计算溢出风险。 - **推荐系统**:将用户评分归一化,消除不同评分标准的影响。 - **金融风控**:统一收入、负债等特征的尺度,提升逻辑回归模型的解释性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值