连续数值变量的一些特征工程方法:二值化多项式数据倾斜处理

Posted wzdly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连续数值变量的一些特征工程方法:二值化多项式数据倾斜处理相关的知识,希望对你有一定的参考价值。

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

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)

 

以上是关于连续数值变量的一些特征工程方法:二值化多项式数据倾斜处理的主要内容,如果未能解决你的问题,请参考以下文章

机器学习实战基础:sklearn中的数据预处理和特征工程 数据预处理 Preprocessing & Impute 之 处理分类特征:处理连续性特征 二值化与分段

机器学习实战基础:sklearn中的数据预处理和特征工程 数据预处理 Preprocessing & Impute 之 处理分类特征:处理连续性特征 二值化与分段

特征工程

ALINK(二十六):特征工程特征离散化二值化 (BinarizerBatchOp)

机器学习中连续型特征的二值化与分段,一文读懂

机器学习特征工程之连续变量离散化:等频分箱