XGBoost 算法的工作原理

XGBoost 是一种用于分类和回归的监督机器学习方法,用于使用 AutoML 进行训练工具。 XGBoost 是极端梯度提升的缩写。 该方法以决策树为基础,并改进了随机森林和梯度提升等其他方法。 通过使用各种优化方法,它可以很好地处理复杂的大型数据集。

要使用 XGBoost 拟合训练数据集,需要进行初始预测。 基于预测值和观测值计算残差。 使用残差的相似性得分创建带有残差的决策树。 计算叶子中数据的相似度,以及后续拆分中的相似度增益。 比较增益以确定节点的要素和阈值。 每个叶子的输出值也使用残差计算。 对于分类,这些值通常使用比值和概率的对数来计算。 树的输出成为数据集的新残差,用于构建另一棵树。 重复这个过程,直到残差停止减少或达到指定的次数。 与随机森林的工作方式不同,每个后续树都从先前的树中学习,并且分配权重不同。

要使用这个模型进行预测,每棵树的输出乘以学习率被添加到初始预测中,以达到最终值或分类。

XGBoost 使用以下参数和方法来优化算法并提供更好的结果和性能:

  • 规则化 - 在计算相似度得分时使用规则化参数 (lambda),以降低对单个数据的敏感性并避免过度拟合。
  • 修剪 - 选择树复杂度参数 (gamma) 来比较增益。 增益小于 gamma 值的分支被移除。 这样可以通过修剪不必要的分支和减少树的深度来防止过度拟合。
  • 加权分位数草图 - 仅使用加权分位数,而不测试每个可能的值作为分割数据的阈值。 分位数的选择是使用草图算法完成的,该算法可以估计网络上多个系统的分布。
  • 并行学习 - 此方法将数据分成块,这些块可以并行用于创建树或用于其他计算。
  • 稀疏感知分割查找 - XGBoost 通过尝试分割中的两个方向并通过计算增益来找到默认方向来处理数据中的稀疏性。
  • 缓存感知访问 - 这种方法使用系统的缓存来计算相似度得分和输出值。 与主内存相比,高速缓存是一种更快的存取存储器,可以提高模型的整体性能。
  • 用于核外计算的块 - 此方法适用于无法放入缓存或主内存且必须保存在硬盘驱动器中的大型数据集。 数据集被分成块并被压缩。 解压缩主内存中的数据比从硬盘驱动器中读取数据要快。 当数据必须保存在多个硬盘驱动器上时,将使用另一种技术(称为分片)。

其他资源

Chen Tianqi and Guestrin Carlos. 2016. XGBoost: A scalable tree boosting system. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 785–794.

XGBoost 文档


在本主题中
  1. 其他资源