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)
  • 相关阅读:
    use paramiko to connect remote server and execute command
    protect golang source code
    adjust jedi vim to python2 and python3
    install vim plugin local file offline
    add swap file if you only have 1G RAM
    datatables hyperlink in td
    django rest framework custom json format
    【JAVA基础】网络编程
    【JAVA基础】多线程
    【JAVA基础】String类的概述和使用
  • 原文地址:https://www.cnblogs.com/wzdLY/p/9671214.html
Copyright © 2011-2022 走看看