• LCE:一个结合了随机森林和XGBoost优势的新的集成方法


    随机森林 [Breiman, 2001] 和 XGBoost [Chen and Guestrin, 2016] 已成为解决分类和回归的许多挑战的最佳机器学习方法。Local Cascade Ensemble (LCE) [Fauvel et al., 2022] 是一种新的机器学习方法, 它结合了它们的优势并采用互补的多样化方法来获得更好的泛化预测器。因此,LCE 进一步增强了随机森林和 XGBoost 的预测性能。

    本文介绍了 LCE 和相应的 Python 包以及一些代码示例。LCE 包与 scikit-learn 兼容并通过了 check_estimator测试,所以它可以 非常方便的集成到scikit-learn 管道中。

    LCE 简介

    集成方法的构建涉及结合相对准确和多样化的个体预测器。有两种互补的方法可以生成不同的预测变量:(i)通过改变训练数据分布和(ii)通过学习训练数据的不同部分。

    LCE 采用了这两种多样化的方法。(i) LCE 结合了两种众所周知的方法,这些方法可以修改原始训练数据的分布,并具有对偏差-方差权衡的互补效应:bagging [Breiman, 1996](方差减少)和boosting [Schapire, 1990 ](减少偏差)。(ii) LCE 学习训练数据的不同部分,这样可以捕获基于分而治之策略(决策树)无法发现的全局关系。在详细介绍 LCE 如何结合这些方法之前,我们先介绍它们背后的关键概念,这些概念将用于解释 LCE。

    偏差-方差权衡定义了学习算法在训练集之外泛化的能力。高偏差意味着学习算法无法捕捉训练集的底层结构(欠拟合)。高方差意味着算法对训练集的学习过于紧密(过拟合)。所有训练的目标都是最小化偏差和方差。

    Bagging 对方差减少有主要作用:它是一种生成多个版本的预测器(bootstrap replicates)并使用它们来获得聚合预测器的方法。目前 bagging 的最先进的方法是随机森林。

    Boosting 对减少偏差有主要作用:它是一种迭代学习弱预测器并将它们相加以创建最终强预测器的方法。添加弱学习器后,重新调整数据权重,让未来的弱学习器更多地关注先前弱学习器预测错误的示例。目前使用提升的最先进的方法是 XGBoost。图 1 说明了 bagging 和 boosting 方法之间的区别。

    图 1. plant diseases数据集上的 Bagging 与 Boosting。n - 估计器的数量。

    新集成方法 LCE 结合了 boosting-bagging 方法来处理机器学习模型面临的偏差-方差权衡;此外,它采用分而治之的方法来个性化训练数据不同部分的预测误差。LCE 如图 2 所示。

    图 2. plant diseases数据集上的 Local Cascade Ensemble,参考图 1,蓝色为 Bagging,红色为 Boosting。n — 树的数量,XGB — XGBoost。

    具体来说,LCE 基于级联泛化:它按顺序使用一组预测器,并在每个阶段向输入数据集添加新属性。新属性来自预测器(例如,分类器的类概率)给出的输出,称为基础学习器。LCE采用分治策略(决策树)在局部应用级联泛化,并通过使用基于提升的预测器作为基础学习器来减少决策树的偏差。LCE 采用当前性能最好的最先进的 boosting 算法作为基础学习器(XGBoost,例如图 2 中的 XGB¹⁰、XGB¹¹)。在生成树的过程中,将每个决策节点处的基学习器的输出作为新属性添加到数据集(例如,图 2 中的 XGB¹⁰(D¹))来沿树向下传播提升。预测输出表明基础学习器正确预测样本的能力。在下一个树级别,添加到数据集的输出被基础学习器用作加权方案,这样可以更多的关注先前错误预测的样本。最后通过使用 bagging 来减轻由提升树产生的过拟合。Bagging 通过从随机抽样中创建多个预测变量并替换原始数据集(例如,图 2 中的 D¹、D²)以简单多数票聚合树来降低方差。LCE 在每个节点中存储由基学习器生成的模型。

    对于缺失数据的处理。与XGBoost类似,LCE排除了分离的缺失值,并使用块传播。在节点分离过程中,块传播将所有缺失数据的样本发送到错误较少的决策节点一侧。

    LCE 的超参数是基于树的学习中的经典超参数(例如,max_depth、max_features、n_estimators)。此外,LCE 在树的每个节点上学习一个特定的 XGBoost 模型,它只需要指定 XGBoost 超参数的范围。然后,每个 XGBoost 模型的超参数由 Hyperopt [Bergstra et al., 2011] 自动设置,这是一种使用 Parzen 估计树算法的基于顺序模型的优化。Hyperopt 从先前的选择和基于树的优化算法中选择下一个超参数。Parzen 估计树的最终结果一般与超参数设置的网格搜索和随机搜索性能相当并且大部分情况下会更好。

    完整文章

    https://avoid.overfit.cn/post/c10cc8f023484c95bab2bff5dd37c74c

  • 相关阅读:
    java 数组的定义
    java 流程控制语句
    java 跳转语句(break、continue)
    java 循环嵌套
    java连接数据库
    用JAVA给数据库增加和修改数据代码
    简单匿名内部类的写法
    抽象类的定义以及简单代码
    继承多态的简单代码
    单例模式
  • 原文地址:https://www.cnblogs.com/deephub/p/16320204.html
Copyright © 2020-2023  润新知