算法简介
xgboost算法是一种boosting的集成学习算法,是将多个弱学习模型进行组合,从而获得更好的效果,使得组合后的模型有更强的泛化能力, 它通常是由基本的回归树(CART)树模型组成
如图所示:通过输入用户的年龄,性别来判断用户喜欢玩游戏的得分值
上面是一个CART的实例,它是将输入的样本根据输入的属性分配到不同的叶子节点中,每个叶子节点中都会得到一个预测分值
由于单个CART模型过于简单,常常会出现过拟合的现象,所以可以用多棵树进行预测
假设现在有K个树,那么预测模型表示为
fk(xi)就是某个叶子节点的预测值,当建立了K-1棵树后,第K颗树的对应的叶子节点的预测值如何确定?
通常的方法是用叶子节点内的样本的标签值的均值,能不能通过目标函数进行优化得到呢?
目标函数
在XGboost算法中,目标函数由损失函数和正则项组成,如下式所示:
损失函数表示
(1)平方误差函数
(2)如果不是平方误差