自由式学习
748人加入学习
(0人评价)
机器学习-Sklearn(第三版)
价格 免费
该课程属于 1515-小刀-算法方向-金融风控-就业:是 请加入后再学习

数据预处理与特征工程

数据挖掘的五大流程:获取数据、数据预处理、特征工程、建模、上线验证

数据预处理preprocessing & impute

一、数据无量纲化(统一规格,特例:决策树、树的集成算法不需要)

1、中心化 zero-centered/mean subtraction

本质是所有记录减去一个固定值

1)preprocessing.MinMaxScaler

  • 数据归一化Normalization:数据收敛到[0,1]之间,归一化后的数据服从正态分布
  • 参数feature_range:控制缩放范围,默认[0,1]
  • 如何用numpy实现归一化?使用公式

    import numpy as np
    x=[[-1,2],[-0.5,6],[0,10],[1,18]]
    x=np.array(x)#转成数组
    #归一化
    x_nor=(x-x.min(axis=0))/(x.max(axis=0)-x.min(axis=0))
    x_nor

2)preprocessing.StandardScaler

  • 数据标准化Standardization/Z-score normalization:把数据变成标准正态分布(均值为0,方差为1)
  • 标准化训练完查看均值和方差的属性?(自动按列计算)
    scaler.mean_
    scaler.var_

3)如何选择?

  • 归一化对异常值敏感,一般选标准化
  • 不涉及协方差计算、需要压缩到某个区间:归一化
  • 只压缩,不中心化:MaxAbsScaler
  • 异常值多、噪声大分位数RobustScaler

2、缩放处理 scale

本质是所有记录除以一个固定值

[展开全文]

数据标准化:数据按照均值中心化后,再按标准差缩放,数据就会变成均值为0方差为1的正态分布

API:from sklearn.preprocessing import StandardScaler

[展开全文]

StandardScaler

当数据(x)按均值(μ)中心化后,再按标准差(σ)缩放,数据就会服从为均值为0,方差为1的正态分布(即标准正态分 布),而这个过程,就叫做数据标准化(Standardization,又称Z-score normalization),公式如下:

对于StandardScaler和MinMaxScaler来说,空值NaN会被当做是缺失值,在fit的时候忽略,在transform的时候 保持缺失NaN的状态显示。

并且,尽管去量纲化过程不是具体的算法,但在fit接口中,依然只允许导入至少二维数 组,一维数组导入会报错。通常来说,我们输入的X会是我们的特征矩阵,现实案例中特征矩阵不太可能是一维所以不会存在这个问题。

StandardScaler和MinMaxScaler选哪个?

大多数机器学习算法中,会选StandardScaler来进行特征缩放,因为MinMaxScaler对异常值非常敏感。

 

[展开全文]