机器学习之决策树终极分类器:XGBoost

导读:
XGBoost被认为是各类赛事排名第一的算法
Ensenble是集成算法,分为两类:bagging和boosting
bagging:每个人都是专家(List of experts),容易过拟合;把多个拼接到一起,降低方差,即模型的稳定性
boosting:每个人都是普通人(List of weak learners),容易欠拟合

XGBoost

1.优势:

  1. 速度和表现可以超过大部分机器学习模型;
  2. 可以并行化计算
  3. 有大量可调节参数,例如γ\gammaγλ\lambdaλ

2.学习路径:

  1. 如何构造目标函数(Objective function)
  2. 如何近似目标函数(Objective function,优化,求最小/最大值)
  3. 如何引入树到目标函数,改造目标函数
  4. 如何使用贪心算法构造树

其中 从1到2使用了泰勒展开式

1.构造目标函数

假设有KKK棵树:
yi^=∑k=1Kfk(xi),fk∈F(1) \hat{y_{i}} = \sum_{k=1}^{K}f_{k}(x_{i}), f_{k} \in \mathcal{F} \tag{1} yi^=k=1Kfk(xi),fkF(1)
目标函数:
Obj=∑i=1nl(yi,yi^)+∑k=1KΩ(fk)(2) Obj = \sum_{i=1}^{n}l(y_{i},\hat{y_{i}})+ \sum_{k=1}^{K}\Omega(f_{k}) \tag{2} Obj=i=1nl(yi,yi^)+k=1KΩ(fk)(2)

Additive Training

  1. 第零个树的预测值:yi^(0)=0\hat{y_{i}}^{(0)} = 0yi^(0)=0 ---------base case
  2. 第一个树的预测值:yi^(1)=f1(xi)=yi^(0)+f1(xi)\hat{y_{i}}^{(1)} = f_{1}(x_{i}) = \hat{y_{i}}^{(0)} + f_{1}(x_{i})yi^(1)=f1(xi)=yi^(0)+f1(xi)
  3. 第二个树的预测值:yi^(2)=f1(xi)+f2(xi)=yi^(1)+f2(xi)\hat{y_{i}}^{(2)} = f_{1}(x_{i}) + f_{2}(x_{i}) = \hat{y_{i}}^{(1)} + f_{2}(x_{i})yi^(2)=f1(xi)+f2(xi)=yi^(1)+f2(xi)
  4. 第三个树的预测值:yi^(3)=f1(xi)+f2(xi)+f3(xi)=yi^(2)+f3(xi)\hat{y_{i}}^{(3)} = f_{1}(x_{i}) + f_{2}(x_{i}) + f_{3}(x_{i}) = \hat{y_{i}}^{(2)} + f_{3}(x_{i})yi^(3)=f1(xi)+f2(xi)+f3(xi)=yi^(2)+f3(xi)
    ……
  5. 第t个树的预测值:yi^(t)=∑k=1tfk(xi)=yi^(t−1)+ft(xi)\hat{y_{i}}^{(t)} = \sum_{k=1}^{t}f_{k}(x_{i}) = \hat{y_{i}}^{(t-1)} + f_{t}(x_{i})yi^(t)=k=1tfk(xi)=yi^(t1)+ft(xi)

训练第i棵树时,例如第2棵树f2(xi)f_{2}(x_{i})f2(xi),要拟合残差,即真实值和已有的预测之差:yi−y1^(1)y_{i} - \hat{y_{1}}^{(1)}yiy1^(1)

下面就是构造目标函数:
ttt轮的预测值为:yt^(t)=yt^(t−1)+ft(xi)\hat{y_{t}}^{(t)} = \hat{y_{t}}^{(t-1)} + f_{t}(x_i)yt^(t)=yt^(t1)+ft(x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值