VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • 集成学习之Xgboost(16)

TT为第t棵树中总叶子节点的个数,Ij被定义为每个叶节点 j上面样本下标的集合 Ij=i|q(xi=j),即表示i样本落在第j个叶子节点上,这个定义里的q(xi)要表达的是:每个样本值xi 都能通过函数q(xi)映射到树上的某个叶子节点,从而通过这个定义把两种累加统一到了一起。g是一阶导数,h是二阶导数。这一步是由于xgboost目标函数第二部分加了两个正则项,一个是叶子节点个数(T),一个是叶子节点的分数(w)。

继续把每个叶子节点区域样本的一阶和二阶导数的和单独表示如下:Gj=iϵIjgiHj=iϵIjhi

最终损失函数的形式可以表示为:

 

Obj(t)=j=1T[Giwj+12(Hi+λ)wj2]+γT

 

现在我们得到了最终的损失函数,那么回到前面讲到的问题,如何一次求解出决策树最优的所有J个叶子节点区域和每个叶子节点区域的最优解wj呢?

9. XGBoost损失函数的优化求解

关于如何一次求解出决策树最优的所有J个叶子节点区域和每个叶子节点区域的最优解wj,可以把它拆分成2个问题:

1) 如果我们已经求出了第t个决策树的