树模型相关介绍(决策树,随机森林,Adaboost, BDT, GBDT, XGboost, lightGBM) |
您所在的位置:网站首页 › 随机森林和adaboost算法的联系 › 树模型相关介绍(决策树,随机森林,Adaboost, BDT, GBDT, XGboost, lightGBM) |
决策树的理解: 1.2 分类树 信息熵:用来衡量不确定性的指标,不确定性是一个事件出现不同结果的可能性,计算公式如下 条件熵:在给定随记变量Y的条件下,随机变量X的不确定性 信息增益:熵-条件熵,代表了在一个条件下,信息不确定性减少的程度 1.2.2 基尼指数 基尼指数:在样本集合中一个随机选中的样本被分错的概率 注意:Gini指数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高,反之,集合越不纯;当集合中所有样本为一个类时,基尼指数为0 计算方法: CART树是一个二叉树,对于一个具有多个取值(超过2个)的特征,需要计算以每个取值作为划分点,对样本D划分之后子集的纯度Gini(D, Ai),然后从所有可能划分的Gini(D,Ai)中找出Gini指数最小的划分,这个划分的划分点,就是使用特征A对样本集合D进行划分的最佳划分点 1.3回归树 回归树:用树模型做回归问题,每一片叶子都输出一个预测值,预测值一般是叶子节点所含训练集元素输出的均值 回归树的分支标准:标准方差 回归树使用某一特征将原集合分为多个子集,用标准方差衡量子集中的元素是否相近,越小表示越相近 2.1 集成学习简介 集成学习:通过构建并组合多个学习器来完成学习任务的算法,集成学习常用的有两类: Bagging:基学习器之间无强依赖关系,可同时生成并行化方法 Boosting:基学习器之间存在强烈的依赖关系,必须串行生成基分类器的方法 前向分步:在训练过程中,下一轮迭代产生的分类器是在上一轮基础上训练得到的,即 2.2 随机森林 随机森林=bagging+决策树 同时训练多个决策树,预测时综合考虑多个结果进行预测,如取多个节点的均值(回归),或者是众数(分类) 优势: 消除了决策树容易过拟合的缺点减小了预测的方差,预测值不会因训练数据的小变化而剧烈变化![]() 随机性体现在两点: 从原来的训练数据集随机(带放回的bootstrap)取一个子集作为森林中某个决策树的训练数据集每次选择分叉的特征时,限定为在随机选择的特征的子集中寻找一个特征![]() 注意:随机森林不但数据随机选,特征也是随机选 2.3 Adaboost • Adaboost的思想是将关注点放在被错误分类的样本上,减小上一轮被正确分类的样本权值,提高被错误分类的样本权值 • Adaboost采用加权投票的方法,分类误差小的弱分类器的权重大,而分类误差大的弱分类器的权重小
2.4.1 BDT 提升树(boosting decision tree):提升树是以cart决策树为基学习器的集成学习方法 第一个训练集是随机选取的数据,后面两个的训练集都是预测值和真实值的残差作为训练集 2.4.2 GBDT GBDT: Gradient boosting decision tree,即梯度上升决策树,可理解为梯度提升+决策树;利用最速下降的近似方法,利用损失函数的负梯度拟合基学习器。 GBDT是用梯度提升的决策树(cart), CART树回归将空间划分为K个不相交的区域,并确定每个区域的输出ck,表达式为
2.5.4 系统设计——分块并行 在建树的过程中,最耗时的是找最优的切分点(这个可以用近似贪心算法解决),而这个过程中,最耗时的部分是将数据排序;为了减少排序的时间,提出Block结构存储数据 • Block中的数据以稀疏格式CSC进行存储 • Block中的特征进行排序(不对缺失值排序) • Block中特征还需存储指向样本的索引,这样才能根据特征的值来取梯度 • 一个block中存储一个或多个特征的值 2.6 lightGBM lightGBM是一款常用的GBDT工具包,速度比XGBOOST快,精度也还可以,他的设计理念是: • 单个机器在不牺牲速度的情况下,尽可能使用上更多的数据 • 多机并行的时候,通信的代价尽可能地低,并且在计算上可做到线性加速 因此其使用分布的GBDT,选择了基于直方图的决策树算法 直方图算法:把连续的浮点特征值离散化为k个整数(也就是分桶bins的思想),比如[0,0.1]->0, [0.1,0.3]->1;并根据特征所在的bin对其进行梯度累加和个数统计,然后根据直方图,寻找最优的切分点 ![]() ![]() ![]() 2.6.2 直方图算法改进-GOSS算法 样本梯度越小,样本训练误差越小,表示样本已训练的很好,因此在lightGBM中采用了one-side采样方式来适配:GOSS(gradient-based one-side sampling)采样策略,它保留所有大梯度样本,对小梯度样本进行随机抽样。 2.6.2 直方图算法改进——EFB算法 高维数据通常是稀疏的,且许多特征互斥(即两个或多个特征不会同时为非0),lightGBM根据这一特点提出了EFB(exclusive feature bundling)算法将互斥特征进行合并,能合并的特征为一个#bundle,从而将特征的维度降下来,相应的,构建histogram所耗费的时间复杂度也从O(#data*#feature)变为O(#data*#bundle), 其中#feature>>#bundle;但是该方法有两大难点: 哪些特征可以合并为一个bundle? ———Greedy bundle 如何将特征合并为bundle,实现降维?——merge exclusive features 这种剪枝策略的**好处是可以进行多线程的并行化,且不容易发生过拟合**;缺点是同一层的叶子节点分裂增益可能已经比较低了,没必要再进行分裂,导致对生成树不是最优的,换句话说,它的生长效率没有那么高 LightGBM的生长策略是leaf-wise,以降低模型损失最大化为目的,对当前所有叶子节点中切分增益最大的leaf节点进行切分;leaf-wise的缺点是会生成比较深的决策树,为了防止过拟合,可在模型参数中设置决策树的深度。 2.6.3 系统设计 LightGBM具有支持高效并行的特点,原生支持并行学习,目前支持: 特征并行 数据并行 Voting并行(数据并行的一种) 2.6.4 系统设计——特征并行 特征并行是并行化决策树中寻找最优切分点的过程。特征并行是将对特征进行划分,每个worker找到局部的最佳切分点,使用点对点通信找到全局的最佳切分点。 2.6.4 系统设计——数据并行 数据并行目标是并行化整个决策学习的过程,每个worker拥有部分数据和全部的特征,独立的构建局部直方图,合并后得到全局的直方图,在全局直方图中寻找最优切分点进行分裂 2.6.5 lightGBM实践 使用xgboost设置树的深度,在lightGBM中是叶子节点的个数: |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |