随机森林和GBDT的区别

原创 2017年06月30日 00:20:54

一,随机森林

随机森林是一个用随机方式建立的,包含多个决策树的集成分类器。其输出的类别由各个树投票而定(如果是回归树则取平均)。假设样本总数为n,每个样本的特征数为a,则随机森林的生成过程如下:

  1. 从原始样本中采用有放回抽样的方法选取n个样本;
  2. 对n个样本选取a个特征中的随机k个,用建立决策树的方法获得最佳分割点;
  3. 重复m次,获得m个决策树;
  4. 对输入样例进行预测时,每个子树都产生一个结果,采用多数投票机制输出。

随机森林的随机性主要体现在两个方面:

  1. 数据集的随机选取:从原始的数据集中采取有放回的抽样(bagging),构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。
  2. 待选特征的随机选取:与数据集的随机选取类似,随机森林中的子树的每一个分裂过程并未用到所有的待选特征,而是从所有的待选特征中随机选取一定的特征,之后再在随机选取的特征中选取最优的特征。

以上两个随机性能够使得随机森林中的决策树都能够彼此不同,提升系统的多样性,从而提升分类性能。

随机森林的优点

  1. 实现简单,训练速度快,泛化能力强,可以并行实现,因为训练时树与树之间是相互独立的;
  2. 相比单一决策树,能学习到特征之间的相互影响,且不容易过拟合;
  3. 能处理高维数据(即特征很多),并且不用做特征选择,因为特征子集是随机选取的;
  4. 对于不平衡的数据集,可以平衡误差;
  5. 相比SVM,不是很怕特征缺失,因为待选特征也是随机选取;
  6. 训练完成后可以给出哪些特征比较重要。

随机森林的缺点

  1. 在噪声过大的分类和回归问题还是容易过拟合;
  2. 相比于单一决策树,它的随机性让我们难以对模型进行解释。

二,GBDT (Gradient Boost Decision Tree 梯度提升决策树)

GBDT是以决策树为基学习器的迭代算法,注意GBDT里的决策树都是回归树而不是分类树。Boost是”提升”的意思,一般Boosting算法都是一个迭代的过程,每一次新的训练都是为了改进上一次的结果。
GBDT的核心就在于:每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测值后能得真实值的累加量。比如A的真实年龄是18岁,但第一棵树的预测年龄是12岁,差了6岁,即残差为6岁。那么在第二棵树里我们把A的年龄设为6岁去学习,如果第二棵树真的能把A分到6岁的叶子节点,那累加两棵树的结论就是A的真实年龄;如果第二棵树的结论是5岁,则A仍然存在1岁的残差,第三棵树里A的年龄就变成1岁,继续学习。
GBDT优点是适用面广,离散或连续的数据都可以处理,几乎可用于所有回归问题(线性/非线性),亦可用于二分类问题(设定阈值,大于阈值为正例,反之为负例)。缺点是由于弱分类器的串行依赖,导致难以并行训练数据。

三,随机森林和GBDT的区别:

  1. 随机森林采用的bagging思想,而GBDT采用的boosting思想。这两种方法都是Bootstrap思想的应用,Bootstrap是一种有放回的抽样方法思想。虽然都是有放回的抽样,但二者的区别在于:Bagging采用有放回的均匀取样,而Boosting根据错误率来取样(Boosting初始化时对每一个训练样例赋相等的权重1/n,然后用该算法对训练集训练t轮,每次训练后,对训练失败的样例赋以较大的权重),因此Boosting的分类精度要优于Bagging。Bagging的训练集的选择是随机的,各训练集之间相互独立,弱分类器可并行,而Boosting的训练集的选择与前一轮的学习结果有关,是串行的。
  2. 组成随机森林的树可以是分类树,也可以是回归树;而GBDT只能由回归树组成。
  3. 组成随机森林的树可以并行生成;而GBDT只能是串行生成。
  4. 对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,或者加权累加起来。
  5. 随机森林对异常值不敏感;GBDT对异常值非常敏感。
  6. 随机森林对训练集一视同仁;GBDT是基于权值的弱分类器的集成。
  7. 随机森林是通过减少模型方差提高性能;GBDT是通过减少模型偏差提高性能。
版权声明:本文为博主原创文章,未经博主允许不得转载。

GBDT和随机森林的区别

GBDT和随机森林的相同点: 1、都是由多棵树组成 2、最终的结果都是由多棵树一起决定 GBDT和随机森林的不同点: 1、组成随机森林的树可以是分类树,也可以是回归树;而GBDT只由回归树组成 ...
  • keepreder
  • keepreder
  • 2015年08月04日 10:20
  • 11830

随机森林、GBDT和逻辑回归理解与对比

随机森林 随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分...
  • baoyan2015
  • baoyan2015
  • 2017年02月20日 17:13
  • 2893

随机森林与GBDT

1. 随机森林 1.1 决策树 决策树分为两大类,分类树和回归树。分类树是我们比较熟悉的决策树,比如C4.5分类决策树。分类树用于分类标签值,如晴天/阴天、用户性别、网页是否是垃圾页面。而回归...
  • u010089444
  • u010089444
  • 2017年04月06日 22:03
  • 4996

常见算法(logistic回归,随机森林,GBDT和xgboost)

3.随机森林 随机森林是一个包含多个决策树的分类器,构建过程如下: 1)决策树相当于一个大师,通过自己在数据集中学到的知识对于新的数据进行分类。但是俗话说得好,一个诸葛亮,玩不过三个臭皮匠。随...
  • zhixiongzhao
  • zhixiongzhao
  • 2017年05月18日 19:22
  • 2970

随机森林和GBDT的几个核心问题

随机森林random forest的pro和con是什么? 优势是accuracy高,但缺点是速度会降低,并且解释性interpretability会差很多,也会有overfitting的现象。 ...
  • u010159842
  • u010159842
  • 2015年07月03日 09:28
  • 3904

理解GBDT算法(一)——理论

这篇讲到的GBDT的基本思想是“积跬步以至千里”!也就是说我每次都只学习一点,然后一步步的接近最终要预测的值(完全是gradient的思想~)。换句话来说,我们先用一个初始值来学习一棵决策树,叶子处可...
  • puqutogether
  • puqutogether
  • 2014年12月16日 10:32
  • 17724

GBDT和随机森林的区别

GBDT和随机森林的相同点: 1、都是由多棵树组成 2、最终的结果都是由多棵树一起决定 GBDT和随机森林的不同点: 1、组成随机森林的树可以是分类树,...
  • Jinlong_Xu
  • Jinlong_Xu
  • 2017年09月07日 20:43
  • 453

GBDT(MART) 迭代决策树入门教程 | 简介

在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下:                GBDT(Gradient Boosting Decision Tree) 又叫 MART(Mul...
  • w28971023
  • w28971023
  • 2012年11月29日 19:12
  • 137704

『机器学习笔记 』GBDT原理-Gradient Boosting Decision Tree

背景 1 Gradient Boosting 2 提升树-boosting tree 回归问题提升树算法 Gradient Boosting Decision Tree 1 函数空间的数值优化...
  • shine19930820
  • shine19930820
  • 2017年03月24日 17:01
  • 7215

简单易学的机器学习算法——梯度提升决策树GBDT

梯度提升决策树(Gradient Boosting Decision Tree,GBDT)算法是近年来被提及比较多的一个算法,这主要得益于其算法的性能,以及该算法在各类数据挖掘以及机器学习比赛中的卓越...
  • google19890102
  • google19890102
  • 2017年02月10日 16:55
  • 15931
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:随机森林和GBDT的区别
举报原因:
原因补充:

(最多只允许输入30个字)