zoukankan      html  css  js  c++  java
  • 归一化和标准化

    一,归一化

    处理不同特征之间数据相差不是太大的问题。

    特征1 特征2 特征3 特征4
    80 2 10 30
    40 4 15 40
    30 3 12 45

    以计算80这个位置进行转换为例,特征1这一列   x‘=(80-30)/(80-30)=1  x''=1*(1-0)+0=1 故80转换化为x''=1 其它位置同理。

    代码如下:

    from sklearn.preprocessing import MinMaxScaler
    def guiyi():
        mm=MinMaxScaler()
        data=mm.fit_transform([[80,2,10,30],[40,4,15,40],[30,3,12,45]])
        print(data)
        return None
    
    if __name__ == '__main__':
        guiyi()

    运行结果如下:

    [[1.         0.         0.         0.        ]
     [0.2        1.         1.         0.66666667]
     [0.         0.5        0.4        1.        ]]

    也可以规定归一化后特征的范围:

    from sklearn.preprocessing import MinMaxScaler
    def guiyi():
        mm=MinMaxScaler(feature_range=(2,3))
        data=mm.fit_transform([[80,2,10,30],[40,4,15,40],[30,3,12,45]])
        print(data)
        return None
    
    if __name__ == '__main__':
        guiyi()

    结果如下:

    [[3.         2.         2.         2.        ]
     [2.2        3.         3.         2.66666667]
     [2.         2.5        2.4        3.        ]]

    二,标准化

    在样本足够多的情况下比较稳定,适合现代嘈杂大数据场景

     同上,继续用上面表格里面的数据进行标准化,代码如下:

    from sklearn.preprocessing import StandardScaler
    def standardScaler():
    
        std=StandardScaler()
    
        data=std.fit_transform([[80,2,10,30],[40,4,15,40],[30,3,12,45]])
        print(data)
        return None
    
    
    if __name__ == '__main__':
        standardScaler()

    运行结果如下:

    [[ 1.38873015 -1.22474487 -1.13554995 -1.33630621]
     [-0.46291005  1.22474487  1.29777137  0.26726124]
     [-0.9258201   0.         -0.16222142  1.06904497]]
  • 相关阅读:
    软件工程第一次作业
    软工热身作业
    OO第四单元
    面向对象——规格总结
    OO电梯作业总结
    JAVA实现表达式求导运算的分析总结
    提问回顾与个人总结
    Flutter的环境配置以及一些常见问题
    软件案例分析
    软件工程结对作业
  • 原文地址:https://www.cnblogs.com/little-monk96/p/14315708.html
Copyright © 2011-2022 走看看