zoukankan      html  css  js  c++  java
  • Python数据标准化、归一化

    在进行数据分析或者机器学习时,通常需要对数据进行预处理,其中主要的步骤就是数据标准化/归一化。

    常用的数据标准化和归一化方法主要有:

    1. 最大最小标准化

      y=(x-min(x))/(max(x)-min(x)),x为一序列,即x={x1,x2,x3......},max(x)为最大值,min(x)为最小值

    2. z-score标准化

      y=(x-mean(x))/std(x),mean(x)指的是均值,std(x)指的是标准差,结果会形成均值为0,方差为1的序列

    3. 直接归一化

      y=x/sum(x),sum(x)指的是x序列的和

    其中,Python实现 z-score的方法如下:

    import numpy as np
    aa = np.array([2,3,9,6,8]) bb = np.array([5,6,3,7,9]) cc = np.array([aa, bb]) print(cc) cc_mean = np.mean(cc, axis=0) #axis=0,表示按列求均值 ——— 即第一维,每一列可看做一个维度或者特征 cc_std = np.std(cc, axis=0) cc_zscore = (cc-cc_mean)/cc_std #直接计算,对数组进行标准化,一定要注意维度

    同时,scikit-learn也集成了z-score标准化的方法:

    from sklearn.preprocessing import StandardScaler
    
    scaler = StandardScaler()
    #scaler.fit(cc)                               
    #trans_data_2 = scaler.transform(cc)          
    cc_zscore_sk = scaler.fit_transform(cc)  #与上面numpy的计算结果一致

    Python实现最大最小标准化的代码也很简单:

    cc_min_max = (cc-np.min(cc, axis=0))/(np.max(cc, axis=0)-np.min(cc, axis=0))

    或者使用sklearn包:

    from sklearn.preprocessing import MinMaxScaler
    cc_min_max = MinMaxScaler().fit_transform(cc)

    ##

    注:pandas同样可以类似实现。

    参考:

    https://www.jianshu.com/p/fa73a07cd750

    https://blog.csdn.net/qq_38958113/article/details/98050932

  • 相关阅读:
    1007 正整数分组
    Review: JQuery
    Summary: DOM modification techniques
    B
    D
    C
    hdu5592 倒序求排列+权值线段树
    主席树入门——询问区间第k大pos2104,询问区间<=k的元素个数hdu4417
    二维前缀和好题hdu6514
    莫比乌斯反演理解
  • 原文地址:https://www.cnblogs.com/qi-yuan-008/p/12608006.html
Copyright © 2011-2022 走看看