美文网首页
预处理与缩放(归一化/标准化/正则化)

预处理与缩放(归一化/标准化/正则化)

作者: dreampai | 来源:发表于2019-01-14 16:17 被阅读0次
    • StandardScaler 确保每个特征的平均值为 0、方差为 1,使所有特征都位于同一量级。
    • MinMaxScaler 移动数据,使所有特征都刚好位于 0 和 1 之间。
    • Normalizer 它对每个数据点进行缩放,使得特征向量的欧式长度等于 1 。

    1、归一化(StandardScaler )

    公式为: (X-mean)/std 计算时对每个属性/每列分别进行。

    将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是,对于每个属性/每列来说所有数据都聚集在0附近,方差为1。

    from sklearn.preprocessing import StandardScaler
    import numpy as np
    
    X = np.array([[ 1., -1.,  2.],
                   [ 2.,  0.,  0.],
                   [ 0.,  1., -1.]])
    
    scaler=StandardScaler()
    scaler.fit(X)
    print(scaler.mean_)
    print(scaler.var_)
    print(scaler.transform(X))
    

    2、将属性缩放到一个指定范围

    使用这种方法的目的包括:

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

    在构造类对象的时候也可以直接指定最大最小值的范围:feature_range=(min, max),此时应用的公式变为:

    X_std=(X-X.min(axis=0))/(X.max(axis=0)-X.min(axis=0))
    X_scaled=X_std/(max-min)+min

    from sklearn.preprocessing import MinMaxScaler
    import numpy as np
    
    X = np.array([[ 1., -1.,  2.],
                   [ 2.,  0.,  0.],
                   [ 0.,  1., -1.]])
    
    scaler=MinMaxScaler()
    X_train_minmax=scaler.fit_transform(X)
    print(X_train_minmax)
    

    3、正则化

    from sklearn.preprocessing import Normalizer
    import numpy as np
    
    X = np.array([[ 1., -1.,  2.],
                   [ 2.,  0.,  0.],
                   [ 0.,  1., -1.]])
    
    scaler=Normalizer(norm='l2')
    X=scaler.fit_transform(X)
    print(X)
    

    相关文章

      网友评论

          本文标题:预处理与缩放(归一化/标准化/正则化)

          本文链接:https://www.haomeiwen.com/subject/xjqjdqtx.html