赞
踩
一、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一起使用
plot可视化
k-折交叉验证
通常 k-折交叉验证是评估机器学习模型的黄金准则(k=3, 5, 10)
当类别数目较多,或者每类样本数目不均衡时,采用stratified交
叉验证
当训练数据集很大, train/test split带来的模型性能估计偏差很
小,或者模型训练很慢时,采用train/test split
对给定问题找到一种技术,速度快且能得到合理的性能估计
如果有疑问,对回归问题,采用10-fold cross-validation ; 对分类,采用stratified 10-fold cross-validation
下面还是用原来的数据集数据,用决策树,随机森林等算法查看效果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。