zoukankan      html  css  js  c++  java
  • 连续数值变量的一些特征工程方法:二值化、多项式、数据倾斜处理

    二值化处理:将细粒度的度量转化成粗粒度的度量,使得特征的差异化更大。

    from sklearn.datasets import load_iris
    import pandas as pd
    
    X,y = load_iris(return_X_y=True)    
    
    df_X = pd.DataFrame(X,columns=list("ABCD"))
    
    from sklearn.preprocessing import Binarizer
    
    df_X["A"].describe()
    
    bn = Binarizer(threshold=5.843333)
    
    df_X["A"] = bn.transform(df_X["A"].values.reshape(-1,1))

    特征多项式交互:捕获特征之间的相关性

    from sklearn.datasets import load_iris
    import pandas as pd
    
    X,y = load_iris(return_X_y=True)    
    
    df_X = pd.DataFrame(X,columns=list("ABCD"))
    
    from sklearn.preprocessing import PolynomialFeatures
    
    pnf = PolynomialFeatures(degree=2,interaction_only=True)
    
    temp  = pnf.fit_transform(df_X[["A","B"]].values)
    
    for i,column in enumerate(list("EFGH")):
        df_X[column] = temp[:,i]

    数据分布倾斜的处理:

      log变化:log变化倾向于拉高那些落在较低的幅度范围内自变量的取值,压缩那些落在较高的幅度范围内自变量的取值,log变化能够稳定数据的方差,使数据的分布接近于正太分布并使得数据与分布的均值无关。Box_Cox变换也有相似的效果,出现负数,使用常数进行偏移。

    from sklearn.datasets import load_iris
    import pandas as pd
    import numpy as np
    
    X,y = load_iris(return_X_y=True)    
    
    df_X = pd.DataFrame(X,columns=list("ABCD"))
    
    df_X["A"].hist(bins=10)
    
    df_X["log_A"] = np.log10(df_X["A"])
    
    df_X["log_A"].hist(bins=10)
  • 相关阅读:
    String/StringBuffer
    二维数组的打印,查找等
    二叉树的各种遍历
    本地安装部署ActiveCollab
    为什么我们不使用JIRA
    本地安装部署禅道
    本地安装部署Jira
    拖拉插件 drag drop
    C++二维数组 取地址 复制给 二维指针
    解决:CentOS下的 error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or dir
  • 原文地址:https://www.cnblogs.com/wzdLY/p/9671214.html
Copyright © 2011-2022 走看看