XGB算法梳理
- 算法原理
- 损失函数
- 分裂结点算法
- 正则化
- 对缺失值处理
- 优缺点
- 应用场景
- sklearn参数
XGBoost是基于GBDT(Gradient Boosting Decision Tree) 改进而来的,
xgboost的基础是梯度提升算法,提升法中最著名的算法包括Adaboost和梯度提升树,梯度提升树可以有回归树和分类树,两者都是以CART树算法为主流,xgboost背后也是CART树,这意味着xgboost中所有树都是二叉树。
该算法思想就是不断地添加树,不断地进行特征分裂来生长一棵树,每次添加一个树,其实是学习一个新函数,去拟合上次预测的残差。当我们训练完成得到k棵树,我们要预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数,最后只需要将每棵树对应的分数加起来就是该样本的预测值。
1.算法原理
2.损失函数
3.分裂结点算法
当数据量十分庞大,以致于不能全部放入内存时,Exact Greedy 算法就会很慢。因此XGBoost引入了近似的算法。即对每一个特征进行「值」采样。原来需要对每一个特征的每一个可能分割点进行尝试,采样之后只针对采样的点(分位数)进行分割尝试,这种方