归一化、标准化的区别与Python实现

5 篇文章 0 订阅
1 篇文章 0 订阅

一、标准化与归一化的概念

标准化:通过特征的平均值和标准差,将特征缩放成一个标准的正态分布,缩放后均值为0,方差为1。但数值并非一定是正态的。特别适用于数据的最大值和最小值未知,或存在孤立点。

归一化:利用特征的最大值和最小值,将特征缩放到[0,1]区间

二、标准化

标准化表达式:样本值减去均值除以标准差
x ′ = x − mean ⁡ ( x ) σ x^{\prime}=\frac{x-\operatorname{mean}(x)}{\sigma} x=σxmean(x)
标准化是为了方便数据的下一步处理,标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。

三、归一化

归一化表达式:样本值减去均值除以最大值与最小值之差
x ′ = x − min ⁡ ( x ) max ⁡ ( x ) − min ⁡ ( x ) x^{\prime}=\frac{x-\min (x)}{\max (x)-\min (x)} x=max(x)min(x)xmin(x)
不同特征往往具有不同的量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据归一化处理,以解决数据指标之间的可比性。原始数据经过数据归一化处理后,各指标处于[0,1]之间。

四、应用场景

(1)对处理后的数据范围有严格要求,使用归一化
(2)数据存在异常值和较多噪音,此时归一化受异常值影响,用标准化
(3)在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,标准化表现更好
(4)在使用梯度下降的方法求解最优化问题时, 归一化/标准化后可以加快梯度下降的求解速度,即提升模型的收敛速度。
(5)概率模型(树形模型)不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、RF。
(6)当采用普通的线性回归的时候,是无需标准化的。因为标准化前后,不会影响线性回归预测值。
(7)在不涉及距离度量、协方差计算、数据不符合正太分布的时候,使用归一化合适

五、python实现

5.1 归一化

from sklearn.preprocessing import MinMaxScaler
# 创建MinMaxScaler()对象
preprocess = MinMaxScaler()
data = [[10, 10, 15, 10],
            [5, 1, 21, 5],
            [1, 2, 15, 12]]
data = preprocess.fit_transform(data)
print(data)

5.2 标准化

from sklearn.preprocessing import StandardScaler
# 创建StandardScaler()对象
preprocess = StandardScaler()
data = [[10, 10, 15, 10],
            [5, 1, 21, 5],
            [1, 2, 15, 12]]
data = preprocess.fit_transform(data)
print(data)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值