论文阅读-XGBoost: A Scalable Tree Boosting System
来源:互联网 发布:qt淘宝兼职刷单流程 编辑:程序博客网 时间:2024/05/16 17:03
1 , 简介
Tianqi Chen大神提出了一种可扩展性的端到端基于树的boosting系统,这个系统可以处理稀疏性数据,通过分布式加权直方图算法去近似学习树,这个系统也提供基于缓存的加速模式、数据压缩、分片功能。机器学习应用于垃圾邮件分类、基于上下文植入广告、阻止银行恶意袭击的漏洞检测系统、探测引发物理显现的事件。有两个重要的因子驱动这些成功的应用:发现数据之间相关性的模型、从大量数据集中学习到有趣的模型。
梯度boosting回归树已经被证明在大量的系统中有好的效果,例如:标准分类基准、应用于排序的boosting树变体、应用于广告点击预测,当然boosting树是集成学习方法的一种,大量应用于比赛。XGboost已经应用于大量的实战系统,在29个kaggle比赛中,17个获胜者使用了XGboost,这些获胜者一部分单独使用XGboost或者通过与神经网络集成,比赛的获胜者也指出有小部分的继承学习的算法效果比XGboost好。
XGboost能够在一系列的问题上取得良好的效果,这些问题包括存销预测、物理事件分类、网页文本分类、顾客行为预测、点击率预测、动机探测、产品分类。多领域依赖数据分析和特征工程在这些结果中扮演重要的角色。XGboost在所有场景中提供可扩展的功能,XGBoost可扩展性保证了相比其他系统更快速,XGBoost算法优势具体体现在:处理稀疏数据的新奇的树的学习算法、近似学习的分布式加权直方图。XGBoost能够基于外存的计算,保障了大数据的计算,使用少量的节点资源可处理大量的数据。XGBoost的主要贡献:
构建了高可扩展的端到端的boosting系统。
提出了具有合理理论支撑的分布分位调整框架。
介绍了一个新奇的并行适应稀疏处理树学习算法。
提出了基于缓存快的结构便于外存树的学习。
已经有人做了并行树、基于外存的计算、缓存的计算、稀疏特征的学习等一些列工作,这篇文章最重要的是能够把很多特征结合到一个系统中。
文章的组织结构:boosting树的正则化(防止过拟合)、树的split方法(decision Tree 使用Gini划分)、系统设计、实验。
2 , Tree Boosting 简述
2.1 XGboost的正则化目标
一种标准的正则化目标项= differentiable convex loss function + regularization,即损失函数+正则项。
L衡量预测值与真实值的差异,Ω作为模型复杂度的惩罚项,对于树的叶子节点个数和叶子节点权重的正则,防止过拟合,即simple is perfect,正则化项比RGF模型更加简单。
2.2 梯度boosting树
树的集成模型不能在传统的欧几里得空间中找到合适的解,而应该通过迭代求近似解。表示通过t次迭代去近似真实的值,这样可以添加迭代更新项,也就是boosting的想法:
将损失项在处泰勒展开:
gi和hi分别为L的一阶、二阶偏导(梯度),移除常数项:
将Ω展开:
可以看到左侧为对于所有样本求目标函数的和,右边是对于所有叶子节点求正则惩罚项(需要把两项相加),将每个叶子节点拆分为样本集:
如图:
将样本分解为每个节点上的样本,所以目标函数化简为统一的在叶子节点上的和:
如果固定了树的结构,即目标函数只与ω叶子权重相关,所以可通过对目标函数关于ω求导,得:
带入目标函数可得最优解:
方程(6)作为衡量树结构质量的指标,这个分数类似于决策树中的纯度,只是这个评价树的指标通过目标函数获得,而不是自定义的,如图:
列举所有可能的树的结构是不可能的,应该在初始叶子节点上通过贪心算法迭代添加分支。IL和IR是split(划分)之后左右节点的集合。I = IL U IR,所以loss function变为:
左 + 右 - 合并的形式通常作为评估划分的评价指标,对照公式(6),应该使上式最大。
2.3 收缩(学习速率)和列抽样(借鉴随机深林)
3 分割算法
3.1 基础精确的贪心算法
3.2 近似算法
3.3 加权分位法
3.4 稀疏自适应分割策略
4 , 系统设计
4.1 适应于并行学习的列块
4.2 自适应缓存的访问
4.3 核外计算的块
5 相关的工作
6 端到端的评估工作
6.1 系统实现
6.2 数据集
6.3 分类
6.4 排序
6.5 外存实验
6.6 分布式实验
- 论文阅读-XGBoost: A Scalable Tree Boosting System
- XGBoost: A Scalable Tree Boosting System
- [论文阅读]词汇树 Scalable Recognition with a Vocabulary Tree
- 论文阅读-LightGBM: A Highly Efficient Gradient Boosting Decision Tree
- A Distributed, Scalable Monitoring System
- 论文阅读报告:PortLand:A Scalable Fault-Tolerant Layer 2 Data Center Network Fabric
- 论文阅读——译文:Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
- 论文阅读——译文:PortLand:A Scalable Fault-Tolerant Layer 2 Data Center Network Fabric
- Scalable Recognition with a Vocabulary Tree
- BayesWipe: A Scalable Probabilistic Framework 论文笔记及其错误
- Scalable Person Re-id:A Benchmark论文笔记
- Sponsored Feature: Building a Highly Scalable 3D Particle System
- ceph翻译 Ceph: A Scalable, High-Performance Distributed File System
- boosting tree
- 【论文阅读笔记】Deep Learning based Recommender System: A Survey and New Perspectives
- Gradient Tree Boosting (GBM, GBRT, GBDT, MART)算法解析和基于XGBoost/Scikit-learn的实现
- 论文阅读报告:Spyglass : Fast Scalable Metadata Search for Large-Scale Storage Systems
- 论文阅读笔记 - Omega: flexible,scalable schedulers for large compute clusters
- Python简单的小实验输出对应车站的中文简写(主要是为了解决汉字编码问题)
- Error:Execution failed for task ':app:mergeDebugResources'. > Crunching CrunCruncher Iicon_light.pn
- 存储模型2---虚拟存储技术
- 5.C++面向过程的方式写的推箱子游戏
- Qt悬浮气泡
- 论文阅读-XGBoost: A Scalable Tree Boosting System
- Java序谈之String类的成员方法以及使用方法
- form表单上传文件时,需要的配置
- SpringBoot系列<五>全局异常处理
- 机器学习实战 Python3编译存在的各种问题
- lintcode 2:尾部的零
- C++与matlab存储方式的不同
- XGBoost参数详解
- Java基本类型所占存储空间大小的整理