Feature Engineering(特征工程)——方法汇总

本文总结了特征工程的三大类方法:维度不变的特征工程,如标准化和Winsorize;升维特征工程,包括one-hot编码、新模型生成等;以及广泛应用的方法,如自定义映射和模型迁移。通过对特征的处理,提升机器学习模型的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Feature Engineering(特征工程)

希望目标值 y y y和特征 x = [ x 1 , x 2 , . . . , x p ] x=[x_{1},x_{2},...,x_{p}] x=[x1,x2,...,xp] p p p表示特征数量)之间存在某种关系: y ≈ y ^ = θ 1 f 1 ( x 1 ) + θ 2 f 2 ( x 2 ) + . . . + θ p f p ( x p ) y\approx \hat{y}=\theta_{1}f_{1}(x_{1})+\theta_{2}f_{2}(x_{2})+...+\theta_{p}f_{p}(x_{p}) yy^=θ1f1(x1)+θ2f2(x2)+...+θpfp(xp)

f i ( x i ) f_{i}(x_{i}) fi(xi)称为特征映射函数或者基底函数,寻找合适的特征映射函数(基底函数)称为Feature Engineering(特征工程),而寻找合适的系数 θ i \theta_{i} θi就是最小二乘问题,具体实现过程见之前的笔记。

下面对常用的特征工程方法进行汇总,主要包括三类:特征升维、降维和维度不变三种情况。顾名思义,就是增加、减少和保持原数据的特征数量(original features)不变。

一、维度不变的特征工程方法

  1. Standardize Feature(标准化)
    标准化方法有很多,最常用的是最大最小值标准化和z-score标准化,以后者为例,将源数据转化成标准正态分布数据,标准化公式为 f i ( x i ) = x i − X ‾ S f_{i}(x_{i})=\frac{x_{i}-\overline{X}}{S} fi(xi)=SxiX
  2. Winsorize Feature
    该方法是以Winsor名字命名的,因此没有中文翻译。具体操作就是通过给定阈值(Threshold= θ \theta θ)将源数据缩小范围至 [ − θ , θ ] [- \theta,\theta] [θ,θ],计算公式如下
    f i ( x i ) = { x i , x i ∈ [ − θ , θ ] − θ , x i < − θ θ , x i > θ f_{i}(x_{i})=\left\{ \begin{aligned} x_{i}&,x_{i} \in [- \theta,\theta] \\ -\theta&,x_{i}<-\theta\\ \theta&,x_{i}>\theta \end{aligned} \right. fi(xi)=xiθθ,xi[θ,θ],xi<θ,xi>θ

二、升维特征工程

  1. Expanding Categories(增加类别,包括多分类任务中经常用到的one-hot向量
    当某个特征对应样本的数值只有简单的几个数时,比如1,-1,0,2,这样可以增加4个布尔特征(Boolean Feature),其中一个新特征的值为:当 x = 1 x=1 x=1时, f ( x ) = 1 f(x)=1 f(x)=1;当 x = − 1 , 0 , 2 x=-1,0,2 x=1,0,2时, f ( x ) = 0 f(x)=0 f(x)=0,通过其他几个数构造的新特征计算方法同理。
    x 1 = − 1 , 0 , 1 x_{1}=-1,0,1 x1=1,0,1为例,可以生成两个新特征:
    f 1 ( x 1 ) = { 1 , x 1 = − 1 0 , x i = 0 0 , x i = 1 f 2 ( x 1 ) = { 0 , x 1 = − 1 0 , x i = 0 1 , x i = 1 f_{1}(x_{1})=\left\{ \begin{aligned} 1&,x_{1}=-1 \\ 0&,x_{i}=0\\ 0&,x_{i}=1 \end{aligned} \right. f_{2}(x_{1})=\left\{ \begin{aligned} 0&,x_{1}=-1 \\ 0&,x_{i}=0\\ 1&,x_{i}=1 \end{aligned} \right. f1(x1)=100,x1=1,xi=0,xi=1f2(x1)=001,x1=1,xi=0,xi=1
    原特征和新特征对应样本的值如下表所示。
x 1 x_{1} x1 f 1 ( x 1 ) f_{1}(x_{1}) f1(x1) f 2 ( x 1 ) f_{2}(x_{1}) f2(x1)
-110
000
101
  1. Generalize Additional Model(标准化新增模型)
    该方法对应源数据的每个特征可以增加2个特征,因此进行完该操作之后特征数量变成了 3 n 3n 3n
    对应 x i x_{i} xi的两个新特征分别为 x ~ i 1 = m i n { x i + a , 0 } \widetilde{x}_{i1}=min\left\{x_{i}+a , 0\right\} x i1=min{xi+a,0} x ~ i 2 = m a x { x i − b , 0 } \widetilde{x}_{i2}=max\left\{x_{i}-b , 0\right\} x i2=max{xib,0} x ~ i 1 \widetilde{x}_{i1} x i1表示取源数据 − a -a a下方的数或者0, x ~ i 2 \widetilde{x}_{i2} x i2表示源数据 b b b上方的数或者0。
  2. Products and Interaction(交叉相乘)
    该方法是为了生成新特征 x ~ = x i x j , i , j = 1 , 2 , . . . , p \widetilde{x}=x_{i}x_{j},i,j=1,2,...,p x =xixj,i,j=1,2,...,p
  3. Stratified Model(分层模型)
    将源数据进行聚类,提取每个类别的样本数据作为新的特征。如特征“收入”可以变成“男性收入”和“女性收入”。

三、应用比较广泛的特征工程方法

  1. Custom Mapping(自定义映射)
    取某 m m m个特征 x i 1 , x i 2 , . . . , x i m x_{i_{1}},x_{i_{2}},...,x_{i_{m}} xi1,xi2,...,xim进行自定义映射到新的特征 x p + 1 x_{p+1} xp+1
  2. Prediction from Other Model(模型迁移)
    将已知模型的结果数据作为新的模型输入特征。
  3. Random Features(随机特征,特别常用
    希望加入 K K K个随机特征,构造随机矩阵 R p ∗ K R_{p*K} RpK,新的特征就是 Y N ∗ K = X N ∗ p R p ∗ K Y_{N*K}=X_{N*p}R_{p*K} YNK=XNpRpK
  4. Neural Network Features(神经网络提取特征)
    应用卷积神经网络、记忆网络等网络结构提取数据特征是目前研究的一大热点问题,这里不多写了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值