sklearn数据预处理 - 归一化

本文详细介绍了数据预处理中的四种关键方法:MinMaxScalar、MaxAbsScalar、StandardScaler和RobustScaler,以及QuantileTransformer的非线性转换。这些方法分别用于将数据归一化到特定区间、缩放至标准正态分布、移除中位数并按分位数范围进行缩放,以及通过累积密度函数进行非线性投影。

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

MinMaxScalar

将数据归一化到[0,1],计算公式如下:
Xscaled=X−X.min(axis=0))X.max(axis=0)−X.min(axis=0)∗(max−min)+min X_{scaled} = \frac{X - X.min(axis=0))}{X.max(axis=0) - X.min(axis=0)}*(max - min)+min Xscaled=X.max(axis=0)X.min(axis=0)XX.min(axis=0))(maxmin)+min
其中min,max = feature_range,为归一化后数据的区间,默认是[0,1]。
MinMaxScalar归一化得到的数据会完全落入[0,1]区间内(z-score没有类似区间),而且能使数据归一化落到一定的区间内,同时保留原始数据的结构。

MaxAbsScalar

将数据归一化到[-1,1],计算公式如下:
Xsacled=X∣X∣.max(axis=0) X_{sacled} = \frac{X}{|X|.max(axis=0)} Xsacled=X.max(axis=0)X
同MinMaxScalar相同,MaxAbsScalar得到的数据会完全落入[-1, 1]区间内(z-score没有类似区间),而且能使数据归一化落到一定的区间内,同时保留原始数据的结构。

MinMaxScalar和MaxAbsScalar的优点:

  1. 对于方差非常小的属性可以增强其稳定性;
  2. 维持稀疏矩阵中为0的条目

StandardScaler

将数据缩放到均值为0,方差为1,计算公式如下:
Xsacled=X−X.mean(axis=0)X.std(axis=0) X_{sacled} = \frac{X - X.mean(axis=0)}{X.std(axis=0)} Xsacled=X.std(axis=0)XX.mean(axis=0)
StandardScaler适合大多数的数据类型的数据,得到的数据是以0为均值,1为方差的正态分布,但这种方法改变了原始数据的结构,因此不适宜用于对稀疏矩阵做数据预处理
StandardScaler也能够接受 scipy.sparse 作为输入,只要参数 with_mean=False 被准确传入它的构造器。否则会出现 ValueError 的错误,因为默认的中心化会破坏稀疏性,并且经常会因为分配过多的内存而使执行崩溃。

RobustScaler

计算公式如下:
Xscaled=X−X.median(axis=0)X.quantile(max)−X.quantile(min)X_{scaled} = \frac{X - X.median(axis=0)}{X.quantile(max) - X.quantile(min)} Xscaled=X.quantile(max)X.quantile(min)XX.median(axis=0)
如果数据包含许多异常值,可以使用RobustScaler或robust_scaler。
RobustScaler将中位数当做数据的中心,移除中位数,然后根据分位数范围(默认为IQR,0.75分位数和0.25分位数间距)

QuantileTransformer

此变换是非线性的。通过累积密度函数投影原始值。可以通过设置参数将数据转化为均匀分布或是高斯分布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值