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

随机森林random forest的pro和con是什么?
优势是accuracy高,但缺点是速度会降低,并且解释性interpretability会差很多,也会有overfitting的现象。
为什么要最大化information gain?
从root到leaf,使得各class distribution的Entropy不断减低。如果相反的话,就会增加预测的不确定性。
熵entrophy的意义是什么?
首先信息量的大小和可能情况的对数函数取值有关系。变量的不确定情况越大,熵越大。
如何避免在随机森林中出现overfitting?
对树的深度的控制也即对模型复杂度的控制,可以在一定程度上避免overfitting,简言之就是shallow tree。此外就是prune,把模型训练比较复杂,看合并节点后的subtree能否降低generation error。随机选择训练集的subset,也可以实现避免overfitting。
Bagging的代价是什么?
Bagging的代价是不用单次决策树来做预测,具体哪个变量起到重要作用变得未知,所以bagging改进了预测准确率但损失了解释性。
Random forest和bagged tree的区别是什么?
随机森林的构建过程中,当考虑每个split时,都只从所有p个样本中选取随机的m个样本,作为split candidate。特别的m大概会取p的平方差。其核心目的是decorrelate不同的树。bagged tree和random forest的核心区别在于选择subset的大小。
什么是GBDT?
通过boosting的方法迭代性的构建week decision tree的ensemble。其优势是不需要feature normalization,feature selection可以在学习过程中自动的体现。并且可以指定不同的loss function。但是boosting是一个sequential process,并非并行化的。计算非常intensive,对高维稀疏数据的feature vector表现相当poor。
GBDT训练的步骤是什么?
使用information gain来获得最好的split。然后根据best split来partition数据。低于cut的数据分至left node,高于cut的数据分至right node。接下来进行boosting,梯度函数可以有多种形式,Gradient是下一棵树的目标。
MapReduce如何实现GBDT呢?
每一个mapper得到<feature value> 以及<residual weight>。reducer积累cuts并且sort。Split数据依据cut,并且输出到DFS。
Classification tree和Regression tree的区别是什么?

回归树的output label是continnuous,而分类树的output label是离散的。因此目标函数也要做相应的调整。特别的regression tree所给出的是probabilistic, non-linear regression,regression tree可以associate未知的独立的测试数据和dependent,continuous的预测。

本文转自博客园知识天地的博客,原文链接:随机森林和GBDT的几个核心问题,如需转载请自行联系原博主。

时间: 2024-08-02 11:10:38

随机森林和GBDT的几个核心问题的相关文章

机器学习中的算法(1)-决策树模型组合之随机森林与GBDT

机器学习中的算法(1)-决策树模型组合之随机森林与GBDT. 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等.但是同时,单决策树又有一些不好的地方,比如说容易over-fitting,虽然有一些方法,如剪枝可以减少这种情况,但是还是不够的. 模型组合(比如说有Boosting,Bagging等)与决策树相关的算法比较多,这些算法最终的结果是生成N(可能会有几百棵以上)棵树,这样可以大大的减少单决策树带来的毛病,

决策树模型组合之(在线)随机森林与GBDT

前言: 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等.但是同时, 单决策树又有一些不好的地方,比如说容易over-fitting,虽然有一些方法,如剪枝可以减少这种情况,但是还是不够的. 模型组合(比如说有Boosting,Bagging等)与决策树相关的算法比较多,这些算法最终的结果是生成N(可能会有几百棵以上)棵树,这样可以大 大的减少单决策树带来的毛病,有点类似于三个臭皮匠等于一个诸葛亮的做法,虽然这几

GBDT和随机森林的区别

GBDT和随机森林的相同点: 1.都是由多棵树组成 2.最终的结果都是由多棵树一起决定   GBDT和随机森林的不同点:   1.组成随机森林的树可以是分类树,也可以是回归树:而GBDT只由回归树组成 2.组成随机森林的树可以并行生成:而GBDT只能是串行生成 3.对于最终的输出结果而言,随机森林采用多数投票等:而GBDT则是将所有结果累加起来,或者加权累加起来 4.随机森林对异常值不敏感,GBDT对异常值非常敏感 5.随机森林对训练集一视同仁,GBDT是基于权值的弱分类器的集成 6.随机森林是

独家 | 手把手教随机森林

随机森林-概述   当变量的数量非常庞大时,你将采取什么方法来处理数据?   通常情况下,当问题非常庞杂时,我们需要一群专家而不是一个专家来解决问题.例如Linux,它是一个非常复杂的系统,因此需要成百上千的专家来搭建.   以此类推,我们能否将许多专家的决策力,并结合其在专业领域的专业知识,应用于数据科学呢?现在有一种称为"随机森林"的技术,它就是使用集体决策来改善单一决策产生的随机结果.在这种方法中,每个软件"专家"使用树型算法来完成它们的任务,然后使用这样的树

从决策树到随机森林:树型算法的原理与实现

在本篇文章中,我们将会介绍决策树的数学细节(以及各种 Python 示例)及其优缺点.你们将会发现它们是很简单的,并且这些内容是有助于理解的.然而,与最好的监督学习方法相比,它们通常是没有竞争力的.为了克服决策树的各种缺点,我们将会聚焦于各种概念(附有 Python 实例),比如自助聚集或袋装(Bootstrap Aggregating or Bagging),还有随机森林(Random Forests).另一种广泛使用的提升方法会在以后进行单独讨论.每种方法都包括生成多种树,这些树被联合起来,

干货|从决策树到随机森林:树型算法的实现原理与Python 示例

基于树(Tree based)的学习算法在数据科学竞赛中是相当常见的.这些算法给预测模型赋予了准确性.稳定性以及易解释性.和线性模型不同,它们对非线性关系也能进行很好的映射.常见的基于树的模型有:决策树.随机森林和提升树. 在本篇文章中,我们将会介绍决策树的数学细节(以及各种 Python 示例)及其优缺点.你们将会发现它们很简单,并且这些内容有助于理解.然而,与最好的监督学习方法相比,它们通常是没有竞争力的.为了克服决策树的各种缺点,我们将会聚焦于各种概念(附有 Python 实例),比如自助

分类器-如何利用随机森林图像分类?具体实现方法?

问题描述 如何利用随机森林图像分类?具体实现方法? 如题 想对一个PNG格式图像进行分类,没有找到相关的例子可以参考,请问有人做过类似的工作,有比较容易使用的随机森林分类器的库可以使用的吗? 解决方案 http://www.cnblogs.com/hrlnw/p/3850459.html 只介绍原理

随机森林 VS 梯度提升机——模型融合之我见

更多深度文章,请关注:https://yq.aliyun.com/cloud 博主信息:Xavier Amatriain, 前机器学习领域研究员,如今就职于Quora. 随机森林相比于梯度提升决策树,主要有以下两个优点: 随机森林比梯度提升机更容易训练 随机森林比梯度提升机更难过拟合 对于第一点来说,随机森林通常只需要设置一个超参数即可:每个节点上随机选取的特征数量.在大多数情况下,将该参数设置为特征总数的平方根,模型足以取得不错的效果.而梯度提升机的超参数则包括提升树的数量和深度.学习率等等.

r语言 随机森林-用R语言实现随机森林的代码

问题描述 用R语言实现随机森林的代码 我需要用R语言实现随机森林的分类 R语言以前没学过 但是需要用 所以我想看看 别人是怎么使用 R语言实现随机森林的分类 解决方案 具体代码如下: install.packages("randomForest") #安装randomForest函数包 #将表1数据保存为csv格式文件,并将汉字指标名称替换为X1-X12,瓦斯涌出量替换成Y dataall<-read.csv("C: 瓦斯数据.csv") # 读取数据 lib