这些技术被广泛用于机器学习中,以提高模型准确性,尤其是在处理复杂或噪声数据集时。通过结合多个视角,集成学习提供了一种克服单个模型的局限性并实现改进优化的方法。 3
梯度提升是一种机器学习技术,它将多个弱预测模型组合成一个单一的集成模型。这些弱模型通常是决策树,它们按顺序进行训练以最大限度减少错误并提高准确性。通过组合多个决策树回归器或决策树分类器,梯度提升可以有效地捕捉特征之间的复杂关系。
均方误差 (MSE) 是一种损失函数,用于评估机器学习模型的预测结果与实际数据的匹配程度。MSE 计算预测值和观测值之间的平方差的平均值。MSE 的计算公式为: ,其中 表示实际值 是预测值,而 是观测值。
进一步展开,MSE 量化了回归问题中数据集中表示的预测值与实际值之间的差异。平方步骤有助于确保正误差和负误差都对最终值有贡献,而不会相互抵消。由于误差被平方,这种方法给较大的误差赋予了更大的权重。
为了解释 MSE,通常值越低表示预测与观测之间的一致性越好。然而,在现实世界的场景中,很难实现较低的 MSE,因为固有随机性不仅存在于数据集中,而且存在于总体中。相反,比较一段时间内或不同模型的 MSE 值可以帮助确定预测准确性方面的改进。还需要注意的是,特别追求 MSE 为零几乎总是过拟合的表现。 6
Python 中一些流行的提升方法实现包括极限梯度提升 (XGBoost) 和轻量梯度提升 (LightGBM)。XGBoost 专为速度和性能而设计,用于回归和分类问题。LightGBM 使用了基于树的学习算法,适用于大规模数据处理。这两种方法都能进一步提高准确性,尤其是在处理复杂或噪声数据集时。LightGBM采用一种称为基于梯度的单边采样 (GOSS) 的技术来过滤数据实例以寻找分割点,显著减少了计算开销。集成多种集成学习技术,消除了单个模型的约束,并在数据科学场景中获得了更优的结果。 7,8
以下是梯度提升过程如何运作的逐步分解。
初始化:首先使用训练集建立一个基础学习器模型(通常是决策树),其初始预测是随机生成的。通常,该决策树仅包含少量叶节点或终端节点。这些弱学习器或基础学习器通常因其可解释性而被选作最佳起点。此初始设置为后续迭代的构建铺平了道路。
计算残差:对于每个训练样本,通过从实际值中减去预测值来计算残差误差。此步骤可确定模型预测需要改进的领域。
使用正则化进行优化:在残差计算之后、训练新模型之前,进行正则化过程。此阶段涉及缩减集成中每个新加入的弱学习器的影响。通过仔细校准此尺度,可以控制提升算法前进的速度,从而有助于防止过拟合并实现整体性能优化。
训练下一个模型:使用上一步计算出的残差作为目标,训练一个新的模型或弱学习器来准确预测。此步骤的重点是纠正先前模型所犯的错误,优化整体预测。
集成更新:在此阶段,通常使用单独的测试集来评估更新后的集成(包括新训练的模型)的性能。如果在此数据集上的性能令人满意,则可以通过加入新的弱学习器来更新集成模型;否则可能需要对超参数进行调整。
重复:根据需要重复前面介绍的步骤。每次迭代都会在基础模型的基础上,通过训练新树来完善模型,从而进一步提高模型准确性。如果集成更新和最终模型在准确度上与基线模型相比令人满意,则进入下一步骤。
停止标准:当满足预定停止标准,例如最大迭代次数、目标精度或收益递减时,停止提升过程。这一步骤有助于确保模型的最终预测在复杂性和性能之间达到预期的平衡。
通过集成方法或堆栈将梯度提升与其他机器学习算法相结合,可进一步提高预测准确性。例如,将梯度提升与支持向量机 (SVM)、随机森林或 K 最近邻 (KNN) 混合,可以充分利用每个模型的优势并创建更强大的集成。堆叠方法包括训练多个基础学习器,并使用其输出作为元学习器的输入,元学习器将组合预测结果生成最终输出。 9
在训练过程中监控模型性能并实施提前停止技术,当验证集性能停止改善或开始下降时立即终止提升过程,这有助于防止过拟合。此外,使用 k 折交叉验证等交叉验证策略可以提供更可靠的模型性能评估和超参数调优,从而进一步增强梯度提升的预测能力。
梯度提升对类别不平衡问题敏感,可能导致预测结果偏向多数类。为了解决这个问题,从业者可以采用诸如对少数类进行过采样、对多数类进行下采样,或使用对少数类误分类施加更高惩罚权重的损失函数。
通过实施这些策略并仔细调整超参数,从业者可以在从高维数据分析到复杂环境监测任务等各种应用中显著提高梯度提升的预测准确性和稳健性。
scikit-learn 中的 GradientBoosting Classifier 和 GradientBoostingRegressor 提供了一种实现梯度提升算法的通用方法,适用于分类和回归任务。通过允许用户微调多个参数,这些实现可以根据特定要求和数据特征对提升过程进行自定义。
树深度 (max_depth):控制单个决策树的最大深度,应进行调整以获得最佳性能。更深的树可以捕捉更复杂的关系,但也容易过拟合。
学习率 (learning_rate):确定每棵树对整体集成的贡献程度。较小的学习率会减慢收敛速度并降低过拟合的风险,而较大的学习率可能以潜在过拟合为代价加快训练速度。
树数量 (n_estimators):指指定集成中树的总数。增加此参数可提升性能,但也会增加过拟合风险。
此外,scikit-learn 的梯度提升实现提供了 out-of-bag (OOB)估计,无需单独验证数据集即可评估模型性能。此外,scikit-learn 中的分阶段预测方法可在有新数据时实现增量预测,实现高效实时处理。总之,scikit-learn 的梯度提升实现提供丰富特征,可根据具体需求和数据特征精细调整模型,最终实现卓越的预测性能。 10
处理高维医学数据:梯度提升能有效处理特征数量远多于观测数量的数据集。例如在医疗诊断中,梯度提升可基于包含超过 100 个特征的患者数据来诊断疾病。通过使用决策树作为弱学习器,该算法能够处理传统线性回归模型难以应对的高维问题。该算法还能从稀疏数据中提取有价值信息,使其适用于生物信息学或文本分类等问题。 11,12
降低客户服务流失率: 当现有模型性能不佳时,可使用梯度提升,通过纠正先前的错误来迭代完善预测。其中一个例子是预测电信行业的客户流失率,使用的是传统的逻辑回归模型。公司可以应用梯度提升算法来识别导致客户转而使用其他服务的关键因素,如高通话量或网络性能不佳。通过将这些因素纳入模型,有望提高预测精度并降低流失率。 13
预测山毛榉树存活率:在森林生态系统中,山毛榉叶病对树木健康构成重大威胁。研究人员可开发预测模型,用于识别有山毛榉叶病风险的山毛榉树并预测其存活可能性。通过构建能分析气候数据、土壤质量和树木特征等环境因素的机器学习模型,可计算五年期内山毛榉树存活概率。通过使用梯度提升技术,能够捕捉简单方法可能忽略的复杂模式。该模型可精准识别有山毛榉叶病风险的山毛榉树并准确预测其存活率,帮助研究人员优先采取干预措施有效保护脆弱树木。此用例展示了梯度提升如何在复杂环境监测任务中增强机器学习模型的预测能力。 14
使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。
借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。
通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。
1 Friedman, Jerome H. “Greedy Function Approximation: A Gradient Boosting Machine.” The Annals of Statistics 29, no. 5 (2001): 1189–1232. http://www.jstor.org/stable/2699986.
2 Schapire, R.E. (2013). Explaining AdaBoost. In: Schölkopf, B., Luo, Z., Vovk, V. (eds) Empirical Inference. Springer, Berlin, Heidelberg. https://link.springer.com/chapter/10.1007/978-3-642-41136-6_5
3 Fan, Wenjie, et al. "A Survey of Ensemble Learning: Recent Trends and Future Directions." arXiv preprint arXiv:2501.04871 (2025).
4 Matsubara, Takuo. “Wasserstein Gradient Boosting: A Framework for Distribution- Valued Supervised Learning.” arXiv.org, August 29, 2024. https://search.arxiv.org/paper.jsp?r=2405.09536&qid=1743170618344ler_nCn N_-2014411830&qs=gradient%2Bboosting.
5 Emami, Seyedsaman, and Gonzalo Martínez-Muñoz. 2023. “Sequential Training of Neural Networks with Gradient Boosting.” IEEE Access 11 (January): 42738–50. https://ieeexplore.ieee.org/document/10110967
6 Chen, Tianqi, et al. "Mean Squared Error." Encyclopedia Britannica, 2023. https://www.britannica.com/science/mean-squared-error.
7 XGBoost Developers. "XGBoost: A Scalable Tree Boosting System." GitHub, 2021. https://github.com/dmlc/xgboost/blob/master/README.md .
8 LightGBM Documentation Team. "LightGBM." 2021. https://lightgbm.readthedocs.io/en/stable/ .
9 Konstantinov, Andrei V., and Lev V. Utkin. “A Generalized Stacking for Implementing Ensembles of Gradient Boosting Machines.” In Studies in Systems, Decision and Control, 3–16, 2021. https://link.springer.com/chapter/10.1007/978-3-030-67892-0_1.
10 Documentation of Scikit-Learn “Scikit-Learn” 2007 https://scikit-learn.org/0.21/documentation.html
11. Lecun, Yann, et al. "Gradient-Based Learning Applied to Document Recognition." Proceedings of the IEEE 86, no. 11 (2007): 2278-2324. doi: 10.1109/PROC.2007.898639
12 Zhang, Zhongheng, Yiming Zhao, Aran Canes, Dan Steinberg, and Olga Lyashevska. 2019. “Predictive Analytics with Gradient Boosting in Clinical Medicine.” Annals of Translational Medicine 7 (7): 152–52. https://atm.amegroups.org/article/view/24543/23475.
13 Al Shourbaji, Ibrahim, Na Helian, Yi Sun, Abdelazim G. Hussien, Laith Abualigah, and Bushra Elnaim. 2023. “An Efficient Churn Prediction Model Using Gradient Boosting Machine and Metaheuristic Optimization.” Scientific Reports 13 (1): 14441. https://www.nature.com/articles/s41598-023-41093-6.
14 Manley, William, Tam Tran, Melissa Prusinski, and Dustin Brisson. “Modeling Tick Populations: An Ecological Test Case for Gradient Boosted Trees.” bioRxiv : the preprint server for biology, November 29, 2023. https://pmc.ncbi.nlm.nih.gov/articles/PMC10054924/#:~:text=The%20rapidly%20expanding%20environmental%20data,development%20of%20public%20health%20strategies.