XGBoost相关知识-1

一、XGBoost简介

XGBoost:eXtreme Gradient Boosting

XGBoost简介

--Gradient Boosting Machines

Machines:机器学习模型,建模数据产生规律,最小化目标函数

目标函数通常包含两部分:

1、损失函数:与任务有关(选择与训练数据匹配最好的模型)

回归:残差平方

分类:0-1损失,logistic损失

2、正则项:与模型复杂度有关(选择最简单的模型)

 L2正则

 L1正则


Boosting Machines

Boosting:将弱学习器组合成强学习器

弱学习器:比随机猜测性能好的学习器

常用弱学习器:决策树/分类回归树

    --决策树:每个叶子节点对应一个决策

    --分类回归树:每个叶子节点有个预测分数,比决策树更灵活

第一个Boosting算法:Adaptive Boosting(AdaBoost)

弱分类器:只有一个分裂的决策树

不断的加入新的弱学习器,直到达到终止条件

-强学习器:弱学习器的加权先行组合

--XGBoost的特别之处,权重与其正确率有关

Friedman将AdaBoost推广到一般Gradient Boosting框架,得到Gradient Boosting Machines(GBM):将boosting视作一个数值优化问题,采用类似梯度下降的方式优化求解

XGBoost的特别之处:

1、正则化:以正则话提升,标准的GBM的实现没有显示的正则化步骤,正则化对减少过拟合有帮助

2、并行处理,相比GBM有了速度的飞跃,自动利用单机cpu的多核进行并行运算,支持gpu加速,支持分布式

3、高度的灵活性:允许用户自定义优化目标和评价标准,只需损失函数的一阶导数和二阶导数

4、剪枝:当新增分裂带来负增益时,GBM会停止分裂,XGBoost一直分裂到指定的最大深度,然后回过头来剪枝

5、内置交叉验证:xgboost允许在每一轮boosting迭代中使用交叉验证-》可以方便的获得最优boosting迭代次数,GBM使用网格搜索,智能检测有限个值

6、两者都支持在线学习

XGBoost的优势

执行速度快,模型性能:在结构化数据集上,在分类、回归、排序预测建模上表现突出

XGBoost处理科学任务的一般流程:

                                     设置训练参数                         

训练数据读取--》数据导入-------》模型训练---》模型评估

                                                                    |

                                                                训练好的模型

xgboost实战简单任务:

数据集:xgboost安装包的demo数据

任务:根据蘑菇的22个特征判断蘑菇是否有毒

总样本数:8124  可食用:4208 ,51.8% 有毒:3916,48.2%

训练样本:6513  测试样本:1611

特征:Demo中22维特征经过处理,变成了126维特征向量



XGBoost与sklearn一起使用



如果没有测试集合,与sklearn用split

plot可视化







k-折交叉验证


  • 通常 k-折交叉验证是评估机器学习模型的黄金准则(k=3, 5, 10)

  • 当类别数目较多,或者每类样本数目不均衡时,采用stratified

    叉验证

  • 当训练数据集很大, train/test split带来的模型性能估计偏差很

    小,或者模型训练很慢时,采用train/test split

  • 对给定问题找到一种技术,速度快且能得到合理的性能估计

  • 如果有疑问,对回归问题,采用10-fold cross-validation ; 对分类,采用stratified 10-fold cross-validation

  • 下面还是用原来的数据集数据,用决策树,随机森林等算法查看效果                      












猜你喜欢

转载自blog.csdn.net/weixin_41362649/article/details/81056584
今日推荐