特征预处理 - 归一化 & 标准化

特征处理是什么

通过特定的统计方法(数学方法)将数据转换成算法要求的数据.
sklearn.preprosessing
  • 数值型数据: 标准缩放:
    1. 归一化
    2. 标准化
    3. 缺失值
  • 类别型数据:one-hot 编码
  • 时间类型: 时间的切分

归一化

使得某一个特征不会对最终的结果造成更大的影响
sklearn.preprosessing.MinMaxScaler

归一化语法.png

归一化.png

归一化总结

注意在特定场景下最大值最小值是变化的,另外最大值与最小值非常容易受异常点的影响,所以这种方法鲁棒性较差,只适合传统精确小数据场景.

归一化代码

# 归一化

from sklearn.preprocessing import MinMaxScaler

def mm():

    """
    归一化处理  :return:None
    """
    mm = MinMaxScaler(feature_range=(0,1))

    data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,16,460]])

    print(data)

    return None

if __name__ == "__main__":
    mm()

运行结果

[[1.         0.         0.         0.        ]
 [0.         1.         0.83333333 0.01190476]
 [0.5        0.5        1.         1.        ]]

归一化视频

<video style="width:100%;height:100%;" src="http://pg7op1zfx.bkt.clouddn.com/01_%E7%89%B9%E5%BE%81%E5%B7%A5%E7%A8%8B%E4%B9%8B%E7%89%B9%E5%BE%81%E9%A2%84%E5%A4%84%E7%90%86-%E5%BD%92%E4%B8%80%E5%8C%96.mp4"; controls="controls">

标准化

1.特点:通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内(也就是说结果的均值为0,标准差为1的范围内!!)

标准化.png

代码

# 标准化

from sklearn.preprocessing import StandardScaler

def stand():

    """
 标准化缩放  :return:None
 """
  std = StandardScaler()

    data = std.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,16,460]])

    print(data)

    return None

if __name__ == "__main__":
    stand()

运行结果

[[ 1.22474487 -1.22474487 -1.3970014  -0.71977059]
 [-1.22474487  1.22474487  0.50800051 -0.69436692]
 [ 0.          0.          0.88900089  1.41413751]]

运行结果对比



[[1.         0.         0.         0.        ]
 [0.         1.         0.83333333 0.01190476]
 [0.5        0.5        1.         1.        ]]



[[ 1.22474487 -1.22474487 -1.3970014  -0.71977059]
 [-1.22474487  1.22474487  0.50800051 -0.69436692]
 [ 0.          0.          0.88900089  1.41413751]]

本章总结

知识点: 方差, 标准差
拿小本本记下来了.
渐渐熟悉了 python 的语法呢 :sunglasses:

标准化视频

<video style="width:100%;height:100%;" src="http://pg7op1zfx.bkt.clouddn.com/02_%E7%89%B9%E5%BE%81%E5%B7%A5%E7%A8%8B%E4%B9%8B%E5%BD%92%E4%B8%80%E5%8C%96%E4%BB%A5%E5%8F%8A%E6%A0%87%E5%87%86%E5%8C%96%E5%AF%B9%E6%AF%94.mp4"; controls="controls">