常见的归一化方式介绍与实现

数据标准化是数据分析前的重要步骤,包括min-max归一化和零均值归一化。min-max归一化通过线性变换将数据映射到[0,1]区间,而零均值归一化则使数据映射到均值为0,标准差为1的分布。前者适用于非高斯分布的数据,后者在涉及距离度量或PCA时效果较好。两种方法各有优缺点,适用于不同场景。在实际应用中,要根据数据特性和需求选择合适的方法。

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

数据归一化(数据标准化)

概念:数据标准化(归一化)是处理数据挖掘的一项基本工作,不同的评价指标往往具有不同的量纲(举例:对于房价评价时,楼房面积、房价、楼层等信息。举例2:对于个人患病率就有身高、体重等信息)和量纲单位(举例:面积单位:平方米、平方厘米等),会影响到数据分析的结果,为了消除指标之间的影响,需要进行标准化处理,解决数据之间的可比性。

经过标准化后,各个指标处于同一量级,适合进行综合对比讨论。

归一化的优点

1、归一化后加快梯度下降的速度

2、归一化有可能提高精度

方法一:min-max归一化(Min Max Normalization)

min-max归一化

别名:线性函数归一化、离差标准化

对原始数据进行线性变换,将结果映射到[0,1]之间。

公式如下

\huge X=\frac{X-X_{min}}{X_{max}-X_{min}}

其中X为原始数据,Xmin为最小值,Xmax为最大值。

缺陷:当有新数据加入时,可能导致Xminh

这里利用pandas对数据进行定义,随后利用pandas中的apply函数进行遍历

import pandas as pd
import numpy as np
test_data = pd.DataFrame([[1,1,1],[2,2,2],[3,3,3]])
print(test_data)
def MinMaxNormalization(test_data):
    return test_data.apply(lambda x:(x-np.min(x))/(np.max(x)-np.min(x)))
normalization_data = MinMaxNormalization(test_data)
print(normalization_data)

方法二:零均值归一化(Z-score Normalization)

将原始数据映射到均值为0,标准差为1的分布上。

原始特征的均值为\huge \mu,标准差为\huge \sigma,公式为

\huge z= \frac{x-\mu}{\sigma }

注意:这种归一化要求原始数据近似高斯分布,否则归一化效果较差

import pandas as pd
import numpy as np
test_data = pd.DataFrame([[1,1,1],[2,2,2],[3,3,3]])
print(test_data)
def Z_ScoreNormalization(test_data):
    return test_data.apply(lambda x:(x-np.mean(x))/(np.std(x)))
print(Z_ScoreNormalization(test_data))

如果这里面的某一列标准差为0,会导致Nan。

特点:

1、在分类、聚类算法中,利用向量之间的距离来判断相似性、或者使用PCA进行降维时,零均值归一化表现较好。

2、在不涉及度量、协方差、数据不符合正态分布时,min-max效果较好,比如在图像处理中将RGB转换为灰度图像后将值限定在[0,255]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值