美文网首页
数据预处理:归一化、标准化

数据预处理:归一化、标准化

作者: taon | 来源:发表于2019-04-12 16:51 被阅读0次

    归一化:

    1、把数变为(0,1)之间的小数,主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。
    2、把有量纲表达式变为无量纲表达式
    归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。

    归一化算法有:

    1.线性转换:

    y=(x-minvalue)/(maxvalue-minvalue)
    

    2.对数函数转换:

     y=log10(x)
    

    3.反余切函数转换:

     y=atan(x)*2/pi
    

    归一化编程实现:

    import numpy as np
    from sklearn.preprocessing import MinMaxScaler #preprocessing:数据预处理模块
    
    a = np.array([[13,62,9],[-3,6,18],[100,51,29]])# create a 3*3 matrix
    model = MinMaxScaler()#MinMaxScale(copy  = True,feature_range = (0,1))
    train_a = model.fit_transform(a)
    print(a)
    
    array([[0.15533981, 1.        , 0.        ],
       [0.        , 0.        , 0.45      ],
       [1.        , 0.80357143, 1.        ]])
    

    标准化

    数据的标准化是将数据按比例缩放,使之落入一个小的特定区间。由于信用指标体系的各个指标度量单位是不同的,为了能够将指标参与评价计算,需要对指标进行规范化处理,通过函数变换将其数值映射到某个数值区间。
    Z-score标准化,我们在衡量数据的分布时,通过对数据进行标准化,将数据转换为均值0,标准差为1的分布。

    Z-score = (X-mean(x))/std
    

    标准化的编程实现:

    #scale()方法
    import numpy as np
    from sklearn.preprocessing import scale
    a = np.array([[13,62,9],[-3,6,18],[100,51,29]])
    train_a = scale(a)
    print(train_a)
    
    array([[-0.52293602,  0.92188257, -1.18195176],
           [-0.87647023, -1.38970358, -0.08151391],
           [ 1.39940625,  0.46782101,  1.26346568]])
    
    #StandardScaler()方法
    import numpy as np
    from sklearn.preprocessing import StandardScaler
    a = np.array([[13,62,9],[-3,6,18],[100,51,29]])
    model = StandardScaler()#StandardScaler(copy=True, with_mean=True, with_std=True)
    print(model.fit_transform(a))
    
    array([[-0.52293602,  0.92188257, -1.18195176],
           [-0.87647023, -1.38970358, -0.08151391],
           [ 1.39940625,  0.46782101,  1.26346568]])
    

    从上面的结果中可以看出,scale()和StandardScaler()方法的执行结果是相同的,所以在对数据进行标准化处理的时候,任选一种就行。

    相关文章

      网友评论

          本文标题:数据预处理:归一化、标准化

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