sklearn数据预处理 - 归一化

MinMaxScalar

将数据归一化到[0,1],计算公式如下:
X s c a l e d = X − X . m i n ( a x i s = 0 ) ) X . m a x ( a x i s = 0 ) − X . m i n ( a x i s = 0 ) ∗ ( m a x − m i n ) + m i n 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],计算公式如下:
X s a c l e d = X ∣ X ∣ . m a x ( a x i s = 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,计算公式如下:
X s a c l e d = X − X . m e a n ( a x i s = 0 ) X . s t d ( a x i s = 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

计算公式如下:
X s c a l e d = X − X . m e d i a n ( a x i s = 0 ) X . q u a n t i l e ( m a x ) − X . q u a n t i l e ( m i n ) 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

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值