zoukankan      html  css  js  c++  java
  • P9 归一化以及标准化对比

    http://bilibili.com/video/BV184411Q7Ng?p=9

     

     Python程序举例:

    """
    对数据进行归一化处理
    """
    from sklearn.preprocessing import MinMaxScaler
    
    
    
    
    
    
    def mMinMaxScaler():
        """
        对数据进行归一化处理
        :return:
        """
        mMinMaxScaler=MinMaxScaler()
        data=mMinMaxScaler.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46],])
        print(data)
        return None
    
    if __name__=="__main__":
        mMinMaxScaler()

    运行结果:

    C:UsersTJAppDataLocalProgramsPythonPython37python.exe D:/qcc/python/mnist/data_guiyihua.py
    [[1. 0. 0. 0. ]
    [0. 1. 1. 0.83333333]
    [0.5 0.5 0.6 1. ]]

    Process finished with exit code 0

    注解:

    1. 对于每一列特征都要处理。
    """
    对数据进行归一化处理
    """
    from sklearn.preprocessing import MinMaxScaler
    
    
    
    
    
    
    def mMinMaxScaler():
        """
        对数据进行归一化处理
        :return:
        """
        mMinMaxScaler=MinMaxScaler(feature_range=(2,3))
        data=mMinMaxScaler.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46],])
        print(data)
        return None
    
    if __name__=="__main__":
        mMinMaxScaler()

    运行结果:

     注解:

    1. 归一化到一个指定的区间。
    2. 默认是归一化到[0, 1]的。

    注解: 

    1. 飞行里程数多的话,可能这个人是个商务人士,但同时陪伴家人的时间可能很少。
    2. 觉得3个特征同等重要的时候,就要对数据进行归一化处理。

     注解:

    1. 如果不进行归一化,小值将淹没在大值中,小值的参考作用将失去。

     

     注解:

    1. 在做归一化的时候,如果有异常点,会怎样?
    2. 归一化对异常点无法抵抗,会造成数据归一化错误。

    """
    对数据进行归一化处理
    """
    from sklearn.preprocessing import MinMaxScaler
    
    
    
    
    
    
    def mMinMaxScaler():
        """
        对数据进行归一化处理
        :return:
        """
        mMinMaxScaler=MinMaxScaler(feature_range=(0,1))
        data=mMinMaxScaler.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46],])
        print(data)
        return None
    
    if __name__=="__main__":
        mMinMaxScaler()

     无异常数据的归一化结果:

    """
    对数据进行归一化处理
    """
    from sklearn.preprocessing import MinMaxScaler
    
    
    
    
    
    
    def mMinMaxScaler():
        """
        对数据进行归一化处理
        :return:
        """
        mMinMaxScaler=MinMaxScaler(feature_range=(0,1))
        data=mMinMaxScaler.fit_transform([[90,2,10,1040],[60,4,15,45],[75,3,13,46],])
        print(data)
        return None
    
    if __name__=="__main__":
        mMinMaxScaler()

    有异常数据之后的归一化结果:

    解决办法:标准化。

     

     

     

     

     数据标准化示例代码:

    """
    对数据进行标准化处理
    """
    from sklearn.preprocessing import MinMaxScaler, StandardScaler
    
    
    
    
    
    
    def stdardScaler():
        """
        对数据进行标准化处理,即处理成均值为0,标准差为1的数据
        :return:
        """
        std=StandardScaler()
        data=std.fit_transform([[1.,-1.,3.],[2.,4.,2.],[4.,6.,-1.]])
        print(data)
        return None
    
    if __name__=="__main__":
        stdardScaler()

    运行结果:

     注解:

    1. 可以看到,没一列的平均值都是0.
    2. 相对于对数据进行归一化,对数据进行标准化的好处是不容易受到异常点的影响。

     注解:

    1. 并不是所有数据都要进行归一化、标准化的。
  • 相关阅读:
    Android开发 GradientDrawable详解
    Android开发 ShapeDrawable详解
    Android开发 ViewPager删除Item后,不会更新数据和View
    Android开发 输入法调用学习
    Android开发 EditText的开发记录
    Android开发 TextView的开发记录
    Android开发 获取View的尺寸的2个方法
    Android开发 获取视频中的信息(例如预览图或视频时长) MediaMetadataRetriever媒体元数据检索器
    Android开发 Tablayout的学习
    Python 模块-zipfile
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/14207527.html
Copyright © 2011-2022 走看看