人工智障-XGBoost简介

人工智障-XGBoost简介

XGBoost是专注于梯度提升算法的机器学习函数库,此函数库速度快,且学习效果优良。

1,GBDT算法原理

XGBoost实现的是一种通用的Tree Boosting算法,此算法的一个代表为GBDT(梯度提升决策树)。GBDT原理首先利用训练集和样本真正值训练一棵树,然后使用这棵树预测训练集,得到每个样本的预测值,由于预测值与真值存在偏差,所以二者相减可以得到残差,接下来训练第二棵树,此时不使用真值,而是使用残差作为标准答案。两棵树训练完成后,可以再次得到每个样本的残差,训练第三棵树,树的总棵树可以通过监控某些指标来停止训练。预测新样本的时候,每棵树都会有一个输出值,将这些输出值相加,皆可以得到最终预测值。

2,XGBoost的改进

2.1 损失函数从平方损失推广到二阶可导损失

GBDT的核心是在于后面的树是拟合的前面预测值的残差,这样可以一步步逼近真实值。XGBoost的方法是,将损失函数做泰勒展开到二阶,使用前两阶作为改进残差,可以证明,传统GBDT使用的残差是泰勒展开到一阶的结果。

2.2 加入了正则化项

正则化方法是数学中用来解决不适定问题的一种方法,正则化是为了限制模型的复杂度,模型越复杂,越有可能记住训练数据,导致训练误差达到很低,而测试误差很高,也就是发生了过拟合。

2.3支持列抽样

列抽样是指训练每棵树的时候,不是使用所有特征,而是从中抽取一部分来训练这棵树。这种方法是用在随机森林中

3, XGBoost运行这么快

3.1 连续性特征的处理

决策树在训练时进行分叉,对于连续性特征,枚举所有可能分叉点将会十分耗时

3.2 利用数据稀疏性

对离散特征做one-hot处理,



猜你喜欢

转载自blog.csdn.net/googler_offer/article/details/81019790