Xgboost理解

一、xgboost模型函数形式

  xgboost也是GBDT的一种,只不过GBDT在函数空间进行搜索最优F的时候,采用的是梯度下降法也就是一阶泰勒展开;而xgboost采用的是二阶泰勒展开也就是牛顿法,去每次逼近最优的F,泰勒展开越多与原函数形状越接近,比如在x0处进行展开,其展开越多,x0附近与原函数值越接近,且这个附近的区域越大。另外一个xgboost加入了正则化项,有效防止过拟合。

  xgboost与GBDT都是采用的cart树中的回归树来解决所有问题,回归树的预测输出是实数分数,可以用于回归、分类、排序等任务中。对于回归问题,可以直接作为目标值,对于分类问题,需要映射成概率,比如采用逻辑回归的sigmoid函数。

additive表示附加的,所谓additive training我的理解就是一部分训练误差,另一部分是正则项用以约束参数。

误差函数尽量去拟合训练数据,正则化项则鼓励更加简单的模型。因为当模型简单之后,有限数据拟合出来结果的随机性比较小,不容易过拟合,使得最后模型的预测更加稳定。

二、目标函数

1)参数空间的目标函数

参数空间的目标函数指在构建单棵树的时候如何选择最优的参数。

误差函数可以是square loss,logloss等,正则项可以是L1正则,L2正则等。正则项如果从Bayes角度来看,相当于对模型参数引入先验分布:

L1正则,模型参数服从拉普拉斯分布,对参数加了分布约束,大部分取值为0。

L2正则,模型参数服从高斯分布,对参数加了分布约束,大部分绝对值很小。

2)函数空间的目标函数

函数空间的目标函数是多棵树一起构建的目标损失函数,求解多棵树一起的整体最优解。

 第二部分正则项对每一棵回归树的复杂度进行了惩罚,使得学习出来的模型不容易过拟合。

 哪些指标可以衡量树的复杂度呢?

树的深度,内部节点个数,叶子节点个数,叶子节点分数等。

xgboost采用叶子节点个数T和叶子节点分数w对树的复杂度进行约束:

对叶子节点个数进行惩罚,相当于进行了剪枝。

猜你喜欢

转载自www.cnblogs.com/gczr/p/10412609.html