目录
Paper Reading 是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方,具体的细节还需要以原文的内容为准。
研究动机
基于树的集成学习方法的置信区间通常很大,这表明这些算法的实验数据方差较高。一种可能的解释是,这些方法都在原始特征空间或线性变换的特征空间上拟合训练数据,因此这些算法可能难以充分描述自变量和因变量之间的关系。解决此类问题的一个可能方法是设计更好的特征空间,GP 所构造的特征可以显著提高决策树算法的预测性能,然而就平均预测性能而言仍然不如极端随机树。
一个可能的解决方案是基于集成学习的原理,将多个构造的特征组合起来,最后保留一组最佳构造特征。但是这类算法可能会直接抛弃不利于训练的特征,而这些特征不见得同样不利于测试集。考虑到这个问题,一个方法是保留进化过程中表现相对较差,但相对更加多样化的特征,形成一个集成模型。
文章贡献
文章提出了一种进化森林算法,它将多组非线性特征组合成一个倾斜的随机森林。本算法中使用了遗传规划(GP)方法来构造非线性特征,每个GP个体代表一组特征。为了获得最优的随机森林,算法在外部存储了进化过程中各种表现良好的 GP 个体。在进化结束时,根据存储的 GP 个体建立一组决策树,形成最终的集成模型。
文章的主要贡献有:
- 提出了一种生成随机森林的新方法,它侧重于使用含有进化过程的特征构造方法来合成表达特征,这提高了随机森林的性能。实验结果表明,这些构造的特征可以用来提高其他基于成学习算法的性能。
- 在单个决策树上评估每个 GP 个体,并通过特殊的选择算子保持多样性,最后结合几个个体构建一个随机森林。与传统的特征构建方法相比,本算法提高了48倍的效率,同时保持了相当的预测性能。
进化森林算法
整体框架
EF 算法的种群中,每个个体都是一组GP树用于构建多个特征。评估GP个体时先用这些特征训练决策树,然后使用5折交叉验证方案来计算其适应度值,表现良好的GP个体被另外存储,在进化过程结束时形成目标进化森林。
个体设计
本文中使用的 GP 树来构造特征的方法与其他基于 GP 的特征构造方法类似,在 EF 中的 GP 树可以转换为一组可用于训练决策树的特征。由于进化多个简单特征可能比构建一个复杂特征更简单,本文也采用了较为简单的个体结构。每个 GP 个体包含两个特征(也就是每个 GP 树只有 3 个节点,分别是根节点和其左右子树),然后利用根节点的运算符来拟合两个特征,以此构造新特征。
本文的算法使用随机构建的决策树作为基础学习器,每个决策树都是基于合成特征构建的斜决策树。随着进化算法的运行,算法将预测效果好的决策树另外存储,最终形成 EF。
交叉变异
在进化过程中,每次从每个 GP 个体中随机挑选一棵 GP 树,执行如下变异和交叉操作。为了保持种群多样性,算法记录过去生成的所有个体,并强制变异算子生成新个体。
- 突变:随机选择一个子树,并将其替换为随机生成的树;
- 交叉:随机将一个父级的子树替换为另一个父级的子树。
适应度评估
算法采用五折交叉验证方案来估计泛化损失,四折用于训练决策树模型,另一折用于验证,采用绝对误差作为损失值。本文的算法没有将 5 个所有损失值求平均,转化为一个标量适应值,而是将这些损失值组成一个适应度向量,由于使用多个值来表示个体的适合度,因此需要设计一个特殊的选择算子来从总体中选择最适合的个体。
选择算子
选择算子的最简单的设计方法是将这个向量求和,形成一个标量,然后使用传统的锦标赛选择算子来选择最合适的个体。然而由于多样性是影响集成学习系统性能的一个重要因素,因此选择算子应该支持多样的预测行为,本文选择了自动词典库选择算子。
精英保留
算法使用一个独立的结构来存储较优的 GP 个体,对于每个新生成的 GP 个体,如果存档大小小于预定义容量,则 GP 个体将直接保存。否则如果新的 GP 优于最差的 GP,则将替换档案中最差的 GP。为了简单起见,在这一步中对每个 GP 个体的适应度向量取平均,使用得到的标量作为适应度作为替换个体的依据。
最终在进化过程结束时,每个被保存的 GP 个体将被用来构建一个数据集,并为每个构建的训练集训练一棵决策树,最终所有这些决策树将形成一个森林。
实验分析
数据集和基线方法
实验共使用了 117 个数据集,最大的数据集有 40768 条记录,最小的数据集有 47 条记录,所有数据集的特征数从 2 到 124 不等。
对比算法则选择了一些基于树的学习算法进行比较,可分为两类。一类是基于袋装树的算法,包括随机森林(RF)、轮转森林(RoF)、极端随机树(ET)和深度森林(DT),这些算法的一个主要特点是个体分类器的构建过程是独立的。另一类是基于增强树的方法,AdaBoost、GBDT、DART、XGBoost、LightGBM 和 CatBoost。本文实验使用的评价指标为均方误差 MSE,表中是 GP 算法的参数设置。
特征构建比较
为了验证基于进化的特征构建方法的有效性,本文的方法与 RBF、PCA 和 RP 这 3 个特征构造方法进行了比较。结果表明 RBF 和 RP 的性能相似,PCA 的性能优于它们,但是在超过三分之二的数据集上,这三种方法的性能都明显低于本文的方法。
算法性能比较
本文的算法在每次迭代中评估一棵树,最终聚合多棵树以形成一个森林。为了验证本文算法在性能方面的优化,对传统的基于包装器的特征构造方法和本文的方法进行了对比实验。实验结果表明,两种方法的预测性能没有显著差异。
传统方法的训练时间成本通常平均超过一小时,相比之下本文的方法平均花费不超过 2 分钟,平均加速比高达 47 倍。
参数设置的影响
参数方面,首先研究了集成规模的影响:随着集合规模大小的增加,这些数据集上的 loss 减少。
同时集合规模大小的增加可令多样性逐渐提高,可见较大的集成尺寸对 loss 有积极影响。但如果超过一个临界值,即使集成规模进一步增加,也无法进一步改善损失值。
接着研究了 GP 树数量的影响:本文采用的是一种多树 GP 范式,虽然它可能会导致额外的计算和内存成本,但通过实验表明多树范式总是优于单树范式。拥有更多的树并不总是意味着更好的表现,更多的树会导致更大的搜索空间,这意味着需要更多的计算资源才能获得满意的结果。
算法组件的选择
算法组件方面,首先研究了基分类器的影响:EF 使用随机决策树作为基分类器,但是它也同样支持其他基分类器。实验证明使用随机树作为基分类器的 EF 优于使用普通决策树作为基分类器的EF。
选择运算符方面:使用三种选择算子对所有数据集进行了实验,使用字典库选择算子作为基选择算子,并将其与大小分别为 3 和 25 的锦标赛选择算子进行比较。实验表明当使用普通决策树作为基础学习器时,在 53 和 98 个数据集上,使用词汇库选择算子的 EF 分别优于使用这两种类型的锦标赛选择算子的 EF。当采用随机决策树作为基础学习器时,带有锦标赛选择算子的 EF 略好一些。
算法对比
算法还与现有的基于 GP 的特征构建和集成学习方法进行比较,根据实验结果,基于决策树的集成学习方法进化森林优于传统的基于 GP 的特征构建和集成学习方法。同时它还与与 11 种基于树的算法进行比较,包括 4 种基于袋装树的算法和 6 种基于增强树的算法。在袋装算法中除 EF 外,极端随机树的性能最好,而深度森林的性能稍差。对于所有袋装模型,EF 在超过一半的数据集上都显著优于它们。
实验结果表明在六种 Boost 算法中 CatBoost 是最好的,但在 117 个基准数据集中 EF 在 56 个数据集上的表现优于 CatBoost。
构造特征的效果
EF 在训练结束时能构造出大量新特征,同时每个决策树都可以计算所使用的每个特性的重要性。此处将 EF 中每个不同特征的特征重要性值相加,根据它们的重要性值的排名。为了验证这些特征的效果,实验选择前一半的特征,并将其应用于现有的算法。在超过一半的实验数据集上,构造的特征优于现有的特征。
优点和创新点
本文发表于《IEEE Transactions on Evolutionary Computation》期刊,属于中科院 SCI 期刊分区(2022年12月最新升级版)1区、CCF-B。个人认为,本文有如下一些优点和创新点可供参考学习:
- GP 中的个体都只有两层,然后通过集成多个 GP 树来保证构建的新特征具有多样性,在提高性能的同时仍有不错的拟合效果;
- 使用构建的新特征训练单个基分类器,并且通过实验选择了较好的基分类器;
- 在适应度度量方面,没有采用某个标量作为适应度,而是通过一个适应度向量加上特定的选择算子来进行度量;
- 实验数据丰富有力,在 117 个数据集上进行了实验,并从 7 个不同的方面来评价本文提出的算法的优势,说服力强。