1. 合成特征
合成特征(Synthetic Features)是通过对现有特征进行变换、组合或衍生得到的新特征。这些新特征可以捕捉原始数据中隐含的模式或关系,从而提升模型的表现和预测能力。合成特征在特征工程中起着重要作用,特别是在提高模型的复杂性和表达能力方面。包括以下类型:
(1)将一个特征与其本身或其他特征相乘(称为特征组合)
(2)两个特征相除
(3)对连续特征进行分桶(分箱),以分为多个区间分箱。
2. 特征的简单变换
2.1 数值特征的变换和组合
特征的线性组合仅适用于决策树以及基于决策树的集成学习算法(如Gradient Boosting,随机森林),因为树模型不擅长捕获不同特征之间的相关性。而SVM、线性回归、神经网络等模型自身可以线性组合。常用的数值特征的变换和组合如下:
(1)多项式特征
(2)比例特征:X1/X2
(3)绝对值
(4)max(X1,X2),min(X1,X2),X1 or X2
2.2 类别特征与数值特征的组合
用N1和N2表示数值特征,用C1和C2表示类别特征,利用Pandas的grouply操作可以创造出以下几种有意义的新特征(其中,C2可以是离散化了的C1)
(1)中位数:median(N1)_by(C1)
(2)算术平均数:mean(N1)_by(C1)
(3)众数:mode(N1)_by(C1)
(4)最小值:min(N1)_by(C1)
(5)最大值:max(N1)_by(C1)
(6)标准差:std(N1)_by(C1)
(7)方差:var(N1)by(C1)
(8)频数:freq(C2)(C1)
3 用决策树创造新特征
在决策树算法中,每一个样本都会被映射到决策树的一片叶子上,因此我们可以把样本经过每一棵决策树映射后的index(自然数)或one-hot-vector(哑编码得到的稀疏矢量)作为一项新的特征加入模型中。
具体实现可以采用apply()方法和decision_path()方法,其在sklearn和xgboost中都可以用。
3.1 特征组合
特征组合是指通过单独的特征进行组合(相乘或求笛卡尔积)而形成的合成特征,有助于表示非线性关系。
3.1.1 对非线性规律进行编码
给定 x 1 x_{1} x1