sklearn对数据进行预处理

1.MaxAbsScaler:归一化到 [ -1 , 1 ]

将每个特征按其最大绝对值进行缩放。该估计器对每个特征进行缩放和单独转换,使训练集中每个特征的最大绝对值为1.0。它不转移/中心数据,因此不破坏任何稀疏性。这个标量也可以应用于稀疏的CSR或CSC矩阵。
使用示例:

>>> from sklearn.preprocessing import MaxAbsScaler
>>> X = [[ 1., -1.,  2.],
...      [ 2.,  0.,  0.],
...      [ 0.,  1., -1.]]
>>> transformer = MaxAbsScaler().fit(X)
>>> transformer
MaxAbsScaler()
>>> transformer.transform(X)
array([[ 0.5, -1. ,  1. ],
       [ 1. ,  0. ,  0. ],
       [ 0. ,  1. , -0.5]])

Methods:

  • fit(self, X[, y]): 计算用于以后缩放的最大绝对值。
  • fit_transform(self, X[, y]): 填充数据,然后转换它。
  • get_params(self[, deep]): 获取此估计器的参数。
  • inverse_transform(self, X): 将数据缩减到原始表示(即反归一化)
  • partial_fit(self, X[, y]): 在线计算X的最大绝对值,方便以后缩放。
  • set_params(self, **params): 设置此估计器的参数。
  • transform(self, X): Scale the data

2.Z-score

通过计算训练集中样本的相关统计量,对每个特征分别进行定心和定标。然后存储均值和标准差,通过变换后的数据进行定心和定标。
数据集的标准化是许多机器学习估计器的一个常见需求:如果单个特征或多或少不像标准的正态分布数据(例如均值和单位方差为0的高斯分布),它们可能会表现得很糟糕。

主要作用: 使变量减去它的均值。其实就是一个平移的过程,平移后所有数据的中心是(0,0)。对于每个属性/每列来说所有数据都聚集在0附近,方差为1。

实现时有两种方法:

  1. 使用sklearn.preprocessing.scale()函数,可以直接将给定数据进行标准化。
import numpy as np
from sklearn.preprocessing import scale
X = np.array([[ 1., -1.,  2.], 
              [ 2.,  0.,  0.],
              [ 0.,  1., -1.]])
X_scaled = scale(X)
print X_scaled
#[[ 0.         -1.22474487  1.33630621]
# [ 1.22474487  0.         -0.26726124]
# [-1.22474487  1.22474487 -1.06904497]]
print X_scaled.mean(axis = 0)
#[ 0.  0.  0.]
print X_scaled.std(axis = 0)
#[ 1.  1.  1.]
  1. 使用sklearn.preprocessing.StandardScaler类,使用该类的好处在于可以保存训练集中的参数(均值、方差)直接使用其对象转换测试集数据。
>>> from sklearn.preprocessing import StandardScaler
>>> data = [[0, 0], [0, 0], [1, 1], [1, 1]]
>>> scaler = StandardScaler()
>>> print(scaler.fit(data))
StandardScaler()
>>> print(scaler.mean_)
[0.5 0.5]
>>> print(scaler.transform(data))
[[-1. -1.]
 [-1. -1.]
 [ 1.  1.]
 [ 1.  1.]]
>>> print(scaler.transform([[2, 2]]))
[[3. 3.]]

对于 StandardScaler类有
Methods

  • fit(self, X[, y]): 计算平均值和std以供以后缩放使用。
  • fit_transform(self, X[, y]): 填充数据,然后转换它。
  • get_params(self[, deep]): 获取此估计器的参数。
  • inverse_transform(self, X): 将数据缩减到原始表示(即反归一化)
  • partial_fit(self, X[, y]): 在线计算X上的平均值和std,以便以后缩放。
  • set_params(self, **params): 设置此估计器的参数。
  • transform(self, X): 通过定心和定标来实现标准化

未完待续

参考链接:
sklearn官网
hudongni1博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值