
机器学习领域广受赞誉的梯度提升库 XGBoost 发布了 3.2.0 版本。这次更新的焦点无疑是其多目标输出功能的显著增强,为需要同时预测多个相关变量的场景带来了更强大的工具。

此次版本升级建立在 3.1 版本的工作基础上,核心在于引入了基于向量叶子节点的多目标树模型。简单来说,传统的 XGBoost 叶子节点只存储一个标量权重,而新的向量叶子节点可以存储一个权重向量,从而能够同时建模和输出多个目标。
具体来看,这次更新带来了几个关键特性:
- 引入向量叶子节点:这是本次功能强化的基础,使模型能够直接学习多个目标之间的潜在关联。
- 极速扩展性:Reduced Gradient (Sketch Boost):针对 histogram 建树方法引入了简化梯度计算。它通过避免使用完整的梯度矩阵来寻找最优树结构,显著提升了在目标数量较多时的计算效率和可扩展性。
- 全面支持回归目标:不仅支持常规的均方误差损失,现在连平均绝对误差和分位数损失函数也能完美应用于多目标输出场景。

除了核心算法升级,新版本还在易用性和性能方面做了大量改进:
- GPU与CPU性能对齐:使用 GPU 进行训练的用户将获得与 CPU 版本完全对齐的特性支持,可以充分利用硬件加速。
- 丰富的配置项:在多目标树模型中,你现在可以正常使用一系列熟悉的配置,包括:
- 正则化参数(L1/L2、min_split_loss、max_delta_step)
- 采样策略(行采样、列采样及特征权重)
- 特征重要性计算(增益Gain和覆盖率Coverage)
- 模型导出(支持 JSON、文本和 Graphviz 格式)
- 外部内存支持,便于处理超大规模数据集
当然,官方也明确指出,向量叶子节点功能仍在迭代中,目前暂不支持以下特性:
- 分布式训练
- 类别特征处理
- 特征交互约束
- 单调约束(因为输出是向量,定义尚不明确)
- SHAP 归因分析

总结
XGBoost 3.2.0 在多目标预测上的这波更新,诚意十足。通过向量叶子节点和简化梯度等底层优化,它更好地捕捉了多个目标变量间的相关性,同时在计算性能和工业级应用支持(如GPU加速、外部内存)上也有显著提升。对于从事智能 & 数据科学相关工作的开发者而言,这无疑是一个值得深入尝试的重要版本。如果你在探索多输出回归问题,不妨升级体验一下。
对 XGBoost 或其它机器学习技术有更多想法?欢迎到 云栈社区 交流讨论。
|