【零基础系列】XGBoost算法

本文详细介绍了XGBoost算法,从集成学习的基础知识到XGBoost的目标函数推导,再到单棵树的构建优化,探讨了如何通过目标函数找到最优树。同时,文章通过对比随机森林回归和线性回归,分析了树的数量对模型性能的影响,提出寻找最佳n_estimators的方法。
摘要由CSDN通过智能技术生成

本文意图

  1. 欣赏XGBoost目标函数的推导过程
  2. 理解XGBoost的几个重要超参数的意义
  3. 明白在实际使用时,如何调整树的数量这个超参数

目录

本文意图

第一部分 目标函数推导

1.1 基础知识铺垫

1.1.1 集成学习基本概念

1.1.2 AdaBoost完整流程

1.1.3 XGBoost完整流程

1.2 定义目标函数的思路

1.3 目标函数的推导

1.3.1 如何对样本预测的更准?引入和

1.3.2 如何评价一颗树?引入和

1.3.3 引入和,求解

第二部分 目标函数优化

2.1 单棵树建树流程

2.1.1 暴力枚举法找最优树

2.1.2 贪心算法找分裂点

2.1.3 单棵树什么时候停止分裂?

2.2 XGBoost完整流程

2.3 一些其他细节

2.3.1 应对稀疏矩阵

2.3.2 列块并行学习

第三部分 对树数量的探索

3.1 对比随机森林回归和线性回归

3.2 使用学习曲线观察树的棵树对模型的影响

3.3 引入泛化误差,找到最佳的n_estimators

3.4 在测试集上检测模型效果

3.5 关于n_estimators的结论


第一部分 目标函数推导

1.1 基础知识铺垫

1.1.1 集成学习基本概念

  • 弱评估器:

只要比随机猜测要准,即准确率>50%就达标的预测器

  • Bagging(随机森林)

一次性建立多个平行且独立的弱评估器,用这些弱评估器的结果进行平均

  • Boosting(GDBT)

逐一构建弱评估器,每次迭代过程中都随机再增加一棵树

1.1.2 AdaBoost完整流程

  1. 初始化训练数据权值分布。假设有N个样本,每个训练样本初始被赋予相同权值1/N
  2. 迭代训练弱分类器。每次迭代中,若一个样本被准确分类,降低它的权值;相反,若一个样本被错误分类提高它的权值。使用权值更新过的样本集继续训练下一个分类器
  3. 将各个弱分类器组合。若一个弱分类器的误差率小加大它的权重,使其在最终分类函数中起较大作用;相反,若一个弱分类器误差率大,减小它的权重,使其在最终分类函数中起较小作用

1.1.3 XGBoost完整流程

在开始目标函数推导之前,我们先来大致的了解一下XGBoost的完整流程。在查看下面流程的过程中,你一定会对眼花缭乱的公式感到困惑。公式中的每个字母是什么意思?为什么要使用这个公式?这个公式是如何得来的?这些问题将在后续得到一一解答!

1.2 定义目标函数的思路

在机器学习算法中,定义目标函数的思路通常是:选取一个损失函数,作为衡量模型预测是否准确的依据,控制模型偏差;设定一个正则化项,作为衡量模型泛化能力的依据,控制模型方差。

XGBoost的作者陈天奇的思路也不例外。我们将XGBoost的目标函数分成两个部分,损失函数和正则化项,并在后面的部分分别对这两个部分作详细的说明。

 

1.3 目标函数的推导

1.3.1 如何对样本预测的更准?引入$${g_i}$$$${h_i}$$

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值