Paper Reading: Gradient Boosted Feature Selection
Paper Reading 是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需要以原文的内容为准,博客中的图表若未另外说明则均来自原文。
论文概况 | 详细 |
---|---|
标题 | 《Gradient Boosted Feature Selection》 |
作者 | Zhixiang (Eddie) Xu, Gao Huang, Kilian Q. Weinberger, Alice X. Zheng |
发表会议 | ACM SIGKDD Conference on Knowledge Discovery and Data Mining(KDD) |
发表年份 | 2014 |
会议等级 | CCF-A |
论文代码 | 文中未公开 |
作者单位:
- Washington University in St
- Tsinghua University
- GraphLab
研究动机#
特征选择是机器学习中的一个重要问题,有效的特征选择可以降低内存的需求,提高训练和测试的速度更快,并且让分类器拥有更好的泛化性能。很多线性特征选择算法在挖掘特征和标签之间的线性依赖关系方面非常有效,然而当特征以非线性方式相互作用时效果就有所降低。非线性特征选择算法可以处理非线性相互作用,但是这类算法的计算和内存复杂度通常随着训练集的大小呈超线性增长。随着数据集规模的增长,可扩展性和非线性特征选择的权衡成为一个困难的问题。
文章贡献#
本文关注当数据集包含大量样本时的特征选择算法,主要使用梯度增强回归树实现,设计的模型称为梯度增强特征选择 GBFS。在梯度增强框架的基础上,采用贪心 CART 算法构建树。CBFS 对新特征产生的分割将受到惩罚,但如果是重用以前选择的特征就可以避免这个惩罚。当 GBFS 学习回归树的集合时,可以自然地发现特征之间的非线性相互作用。与随机森林的 FS 相比,GBFS 能够实现将特征选择和分类同时进行优化。实验环节在几个不同难度和大小的真实世界数据集上进行评估,结果表明 GBFS 优于或相当于随机森林特征选择的准确性和特征选择的性能,同时可以有效地处理特征间依赖关系。
预备知识#
数据集由从未知分布中采样的输入向量 {x1,…,xn}∈Rd 和相应的标签 {y1,…,yn}∈Y 组成。基于 L1 范数 Lasso 的特征选择结合了线性分类和 L1 正则化,公式如下所示,根据预测问题通常私用均方误差损失或对数损失。
L1 正则化的目的是在防止过拟合的同时为特征选择引入稀疏性,但是 L1 正则化这两种影响本质上是联系在一起的,没有办法调节任何一种影响。针对这个问题,引入了由元素运算定义的上限的 Capped L1 正则化,如下公式所示。Capped L1 相对于标准 L1 的优点是:一旦提取了一个特征,它的使用就不会受到进一步的惩罚。它只会惩罚特征的使用,而不会干扰权重的大小。但是 Capped L1 不是凸的,因此不容易优化。
Capped L1 可以与 L1 或 L2 正则化组合使用,可以通过调整相应的正则化参数来控制特征提取和正则化之间的权衡。
加权的 L1 正则化比普通 L1 正则化更适合于特征选择,然而它仍然是线性的,限制了分类器的灵活性。引入非线性的方法包括核学习和 Boosting,其中 Boosting 假设可以用有限深度回归树对数据进行预处理。设 H 为所有回归树的集合,输入通过 φ(x)=[h1(x),…,h|H|(x)]T 映射到 R|H|,在这个变换后的空间中学习一个线性分类器,如下公式所示。
其中 β 是一个用来选择树的稀疏线性向量,假设在没有泛化损失的情况下,通过排序 H 中的树使得 β 的前 T 项不为零,得到如下公式所示的最终分类器。
本文方法#
梯度增强特征选择#
在公式 (4) 中有 L1 和 Capped L1 两个罚项,第一个惩罚项用于减少过拟合,第二个惩罚项用于选择特征。在目前的形式中,Capped L1 的作用是选择树而不是特征,因此必须对其进行一些修改以显式地惩罚特征选择。
为了模拟由树集合提取的特征总数,本文定义了一个二值矩阵 F∈{0,1}d×T。当且仅当树 ht 使用特征f 时 Fft=1,这样就可以用公式(6)表示分配给提取特征 f 的树的总权重。
修改 qε(β) 来惩罚分配给特征的实际权重,得到的目标函数如公式(7)所示。如果 ε 足够小(ε≤minf∑Tt=1Fftβt|),可以设置 µ=1/ε。
优化#
公式(7)所示的函数优化是非凸不可微的,因此本文通过梯度增强将其最小化。设 L(β) 表示要最小化的损失函数,L(β)t 表示 βt 的梯度。此时总有一个非负的最优 β,搜索具有最陡负梯度的维数 t* 可以形式化为公式(8)。
由于优化的每一步都以固定的步长 α>0 增加 β 的一个维度,因此经过 T 次迭代后,β 的 L1 范数可以写成 |β|1=αT 的形式。这意味着惩罚 β 的 L1 在 T 次迭代后将提前停止,因此可以去掉 λ|β|1 项,引入 T 作为等效的超参数。
为了找到第 T'+1 代的最速下降方向,本文将梯度分解为两部分。其中一部分用于损失函数 l(),另一部分用于 Capped L1 惩罚,如公式(9)所示。由于 Fft 和 βt 都是非负的,因此可以去掉 Fftβt 的绝对值符号。
当 ∑tFftβt=ε 时,在给定的尖点处,梯度 qε(∑tFftβt) 无法被明确地定义或计算。此时因为 βt 从不减小,可以如公式(10)所示取右极限。
如果设置 ε=α(α>0 是步长),则当且仅当特征 f 已经在前一次迭代的树中使用时 qε(∑tFftβt)≥ε。令 φf=1 表示特征 f 未被使用,反之设 φf=0。此时可以结合这两种情况的梯度,用 φfFft 代替 ▽qε(∑tFftβt),得到公式(11)。
注意当且仅当特征 f 是第一次从树 t 中选择时,φfFft=1,换言之第二项有效地惩罚了使用许多以前未选择的特征的树。
贪婪的树结构#
通过公式(11)可以计算任意树的梯度,但是找到最优的 t* 仍然需要搜索所有的树。此处将对 t* 从搜索所有可能的维度转变为搜索最佳树 ht,实现对指定的损失函数的最小化,这种新的搜索方式可以通过 CART 来近似。
应用链式法则并将 ∂t/∂βt 分解为损失函数的导数,即在每个输入 H(xi) 处评估的当前预测值和偏导数 ∂H(xi)/∂βt,如公式(12)所示。
其中 H(xi)=βTh(xi) 是所有 ht(xi) 的线性和,也就是对训练数据的预测。因此 ∂H(xi)/∂βt=ht(xi)。如果让 gi=-∂l/∂H(xi) 表示负梯度,可以将公式(12)重新表述为公式(13)。
将 H 限制为仅归一化的树(即 ∑ih2t(xi)=1),然后可以在公式(13)中加入两个常数项 1/2·∑ih2t(xi) 和 1/2·∑ig2i,得到如公式(14)所示的二项式方程。
现在得到了一个带有惩罚的平方损失的不纯度函数,该函数可以通过贪婪的 CART 算法找到学习回归树的好的解。公式(14)中的第一项奖励特征分裂以最好地匹配损失函数的负梯度,而第二项则奖励在之前的迭代中已经使用过的特征上的分裂。整体的算法流程如下伪代码所示。
结构化特征选择#
在一些具体应用中可能存在一些稀疏性的模式,有时可以将特征分组到包中,此时特征选择的目标是选择尽可能少的包。本文的框架可以通过特征成本函数 φf 处理结构化的稀疏性模式,可以定义当且仅当过去没有使用过与特征 f 相同的包中的特征 φf=1,反之则 φf=0。在树中使用特定包中的特征时,分类器被鼓励除非难以继续优化,否则尽可能只使用该包中的特征。
在最一般的设置中,可以定义 φf:Ω→R+0作为一个函数,将选择的特征集和代价建立联系。例如对医学图像进行分类时,特征是原始像素,特征组被设置为是感兴趣的局部区域。此时 φf(Ω) 可能会降低 Ω 中像素周围像素的代价,鼓励具有局部性的特征选择。
实验结果#
合成数据集实验#
下图展示了一个有三个特征的二分类合成数据集,该数据在二维或三维上都不是线性可分的,其中 z 为冗余特征。随机选择 90% 的样本作为训练集,其余的作为测试集。左图展示的是 L1 逻辑回归的结果,L1-LR 成功地检测并忽略了冗余特征 z。但它对 x 的权重也为零,只选择了单个特征 y,因此它在测试集上的错误率有 54.05%。右图展示了 GBFS 的结果,可见 GBFS 不仅可以识别冗余特征 z,还可以同时选择特征 x 和 y,实现了测试集上的 0% 分类误差。
结构特征选择实验#
在一些具体的问题上可能存在对稀疏性模式的约束,GBFS 可以基于预先指定的特征结构来运行。在 Affymetrix 基因芯片数据集中,选择样本中最小强度最高的 2000 个基因,根据其生物学意义将其聚类为 9 个簇/袋。将 62 个样本随机按 4:1 划分为训练集和测试集,重复 10 次实验。下图展示了从一个随机划分中选择的特征,以及在 10 次实验中的平均分类性能。选中的特征显示为绿色,未选中的特征显示为蓝色。如果分类器选择了至少一个特征,则用红/白框突出显示。比较的方法有 L1 逻辑回归(L1-LR)、随机森林特征选择(RF-FS)、HSIC Lasso 和 Group Lasso。
可见 GBFS 侧重于选择特定集合中的特性,这方便地揭示了疾病与基因簇/包之间的联系。Group Lasso 也可以处理结构化特征,但是该方法的 L2 正则化对特征权值有副作用,从而导致更高的分类错误率。L1-LR、RF-FS、HSIC Lasso 不考虑特征结构的信息,从不同的特征集合中选择特征,使得结果难以解释。在分类精度方面,GBFS 和 Random Forest 的测试集错误率最低。
基准数据集实验#
使用真实基准数据集进行实验,数据集的基本信息如下表所示。对比的算法有 L1 逻辑回归(L1-LR)、随机森林特征选择(RF-FS)、最小冗余最大相关性(mRMR)、HSIC Lasso,按照 4:1 划分为训练集和测试集,重复 5 次实验。
下图展示了不同算法在中小型数据集上的特征选择和分类性能,可见在所有中小型数据集上,GBFS 要么优于或相当于 RF-FS。与 RF-FS 不同的是,GBFS 能同时进行特征选择和训练分类器,RF-FS 需要在特征选择后重新训练分类器。
kddcup99 数据集的特征选择和分类结果如下图所示,当特征选择较少时 GBFS 比随机森林(RF-FS)和 L1-LR 具有更低的错误率。
为了评估所选特征的质量,在最小数据集 uspst 上应用所有算法来选择特征子集,然后再训练 SVM 模型。下图展示了这些方法对应的错误率,可见 GBFS 在少数选定特征的区域中获得最低的错误率。随着越来越多的特征被选择,最终所有的 FS 算法收敛到相似的值。
优点和创新点#
个人认为,本文有如下一些优点和创新点可供参考学习:
- 本文在提升树的基础上进行改进,对原来的优化目标中引入了对特征选择的优化,能够在训练分类器的同时一并完成特征选择;
- 针对 L1 正则化无法分离提高泛化和精简特征的问题,本文引入了 Capped L1 对其解耦;
- 公式推导部分步骤详细,且具有一定的灵活性和可扩展性,对后续的研究提供了重要参考。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)