1、RF 原理
 
用随机的方式建立一个森林,森林里面有很多的决策树,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。
 
2、RF 优缺点
 
优点:
(1)在数据集上表现良好,两个随机性的引入,使得随机森林不容易陷入过拟合。
(2)在当前的很多数据集上,相对其他算法有着很大的优势,两个随机性的引入,使得随机森林具有很好的抗噪声能力
(3)能够处理很高维度(feature 很多)的数据,并且不用做特征选择,对数据集的适应能力强,既能处理离散数据,也能处理连续型数据,数据集无需规范化。
(4)可生成一个 Proximities = (pij) 矩阵,用于度量样本之间的相似性:pij=aij/N, aij表示样本i和j出现在随机森林中同一个叶子结点的次数,N随机森林中树的棵数
(5)在创建随机森林的时候,对 generlization error 使用的是无偏估计
(6)训练速度快,可以得到变量重要性排序(两种:基于 OOB 误分率的增加量和基于分裂时的 GINI 下降量)
(7)在训练过程中,能够检测到 feature 间的相互影响
(8)容易做成并行化方法
(9)实现比较简单
 
缺点:
(1)需要大量的维护工作
(2)对于小量数据集和低维数据集的分类不一定可以得到很好的效果。
(3)执行速度虽然比 Boosting 等快,但是比单个的决策树慢很多。
(4)可能会出现一些差异度很小的树,淹没了一些正确的决策。
(5)当我们需要推断超出范围的独立变量或非独立变量,随机森林做的并不好,我们最好使用如 MARS 那样的算法。
(6)随机森林算法在训练和预测时都比较慢。
(7)如果需要区分的类别十分多,随机森林的表现并不会很好。
 
3、RF 的优化点
 
(1)候选特征数 K
K 越大,单棵树的效果会提升,但树之间的相关性也会增强
 
(2)决策树数量 M
M 越大,模型效果会有提升,但计算量会变大
 
4、RF 和 GBDT 的联系和区别
 
联系:
 
RF 和 GBDT 都是在决策树上进行改造或者集成完成的。
 
区别:
 
随机森林:决策树 + bagging  = 随机森林
梯度提升树:决策树 + Boosting = GBDT

1. RF 原理
 
多个决策树同时建模,生成的结果,输出的结果是集体输出的众数决定的,随机森林可以通过收集很多树的子节点对各个类别投票,然后选择获得最多投票的类别作为判断结果。通过计算”森林“的所有子节点的值的平均值来解决回归问题。
随机森林既可以解决回归问题,也可以解决分类问题。

2. RF 优缺点
 
优点: 可以使用更少的重要变量,获得最好的预测性能 1、在数据集上表现良好,相对于其他算法有较大的优势(训练速度、预测准确度);2、能够处理很高维的数据,并且不用特征选择,而且在训练完后,给出特征的重要性;3、容易做成并行化方法。
缺点:在噪声较大的分类或者回归问题上回过拟合。

3. RF 的优化点
基于随机森林的智能算法特征选择和参数优化混合算法,通过二进制编码,对树的规模、子属性个数和特征选择同时搜索,以最小化袋外数据误差为目标函数。实验选择高维二分类和多分类数据,对比了无特征选择下,参数传统取值和混合遗传随机森林、混合粒子群随机森林和混合鱼群随机森林算法的结果,从F值、G-mean、AUC和OOB error等多个指标表明该算法可以提高随机森林的性能,为特征选择和参数优化提供了新思路。

4. RF 和 GBDT的联系和区别
随机森林,决策树基础上使用Bagging,Bagging可以简单的理解为:放回抽样,多数表决(分类)或简单平均(回归),同时Bagging的基学习器之间属于并列生成,不存在强依赖关系。
GBDT,决策树基础上使用Boosting,与传统的Boosting区别较大,它的每一次计算都是为了减少上一次的残差,而为了消除残差,我们可以在残差减小的梯度方向上建立模型,所以说,在GradientBoost中,每个新的模型的建立是为了使得之前的模型的残差往梯度下降的方法,与传统的Boosting中关注正确错误的样本加权有着很大的区别。

by the way:

RF的两个随机指的是
随机选取划分特征:对于决策树的每个节点,先从该节点的属性集合中随机选取包含k个属性的子集,再从这个子集中选择一个最优属性进行划分,一般推荐k=log2d
随机选取样本:有放回的随机选取样本,因此每个弱学习器的训练样本是有重叠的样本子集。

RF 和 GBDT联系和区别的更多相关文章

  1. RF、GBDT、XGBOOST常见面试算法整理

    1.  RF(随机森林)与GBDT之间的区别 相同点: 1)都是由多棵树组成的 2)最终的结果都是由多棵树一起决定 不同点: 1)  组成随机森林的树可以是分类树也可以是回归树,而GBDT只由回归树组 ...

  2. GBDT,Adaboosting概念区分 GBDT与xgboost区别

    http://blog.csdn.net/w28971023/article/details/8240756 ============================================= ...

  3. RF和GBDT的区别

    Random Forest ​采用bagging思想,即利用bootstrap抽样,得到若干个数据集,每个数据集都训练一颗树. 构建决策树时,每次分类节点时,并不是考虑全部特征,而是从特征候选集中选取 ...

  4. GBDT XGBOOST的区别与联系

    Xgboost是GB算法的高效实现,xgboost中的基学习器除了可以是CART(gbtree)也可以是线性分类器(gblinear). 传统GBDT以CART作为基分类器,xgboost还支持线性分 ...

  5. LR、SVM、RF、GBDT、XGBoost和LightGbm比较

    正则化 L1范数 蓝色的是范数的解空间,红色的是损失函数的解空间.L2范数和损失函数的交点处一般在坐标轴上,会使\(\beta=0\),当然并不一定保证交于坐标轴,但是通过实验发现大部分可以得到稀疏解 ...

  6. AI工程师基础知识100题

    100道AI基础面试题 1.协方差和相关性有什么区别? 解析: 相关性是协方差的标准化格式.协方差本身很难做比较.例如:如果我们计算工资($)和年龄(岁)的协方差,因为这两个变量有不同的度量,所以我们 ...

  7. 随机森林RF、XGBoost、GBDT和LightGBM的原理和区别

    目录 1.基本知识点介绍 2.各个算法原理 2.1 随机森林 -- RandomForest 2.2 XGBoost算法 2.3 GBDT算法(Gradient Boosting Decision T ...

  8. RF, GBDT, XGB区别

    GBDT与XGB区别 1. 传统GBDT以CART作为基分类器,xgboost还支持线性分类器(gblinear),这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回 ...

  9. GBDT(Gradient Boost Decision Tree)

    原文:http://blog.csdn.net/aspirinvagrant/article/details/48415435 GBDT,全称Gradient Boosting Decision Tr ...

随机推荐

  1. 缩点+出入度 poj1236

    题目链接:https://vjudge.net/contest/219056#problem/H 题意:先输入n,代表接下来有n个点,接下来n行,第i行里面的数(假设是)a,b...0(到0表示结束) ...

  2. 大数据hadoop的伪分布式搭建

    1.配置环境变量JDK配置 1.JDK安装 个人喜欢在 vi ~/.bash profile   下配置 export JAVA_HOME=/home/hadoop/app/jdk1.8.0_91ex ...

  3. 22. Generate Parentheses (backTracking)

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...

  4. f5版本升级

    1)上传系统IOS及Hotfix 点击import按钮,选择要上传的文件.上传成功的话就会显示上传成功的10.2.4的iso文件 2)通过CLI命令行方式上传补丁 通过SSH工具将ISO以及Hotfi ...

  5. Django1.0和2.0中的rest_framework的序列化组件之超链接字段的处理

    大家看到这个标题是不是有点懵逼,其实我就是想要一个这样的效果 比如我get一条书籍的数据,在一对多的字段中我们显示一个url,看起来是不是很绚! 下面我们就来实现这么一个东西 首先我们一对多字段中的一 ...

  6. swift4.2 打印devicetoken

    import UIKit import UserNotifications @UIApplicationMain class AppDelegate: UIResponder, UIApplicati ...

  7. C# 创建WebService的简单示例

    工具Visual Studio 2013 1.创建一个空的Web应用程序. 2.鼠标右击项目,添加->新建项 选择Web服务(ASMX),点击添加.一个简单的webservice就创建完成了.

  8. SQL update语句 更新和查询同一张表 冲突

    #update 和 select在同一张表的时候会显示冲突  报错信息: [Err] 1093 - You can't specify target table 'tb_a' for update i ...

  9. 使用SQL语句创建数据库1——创建一个数据库文件和一个日志文件的数据库

    目的:创建一个数据库文件和一个日志文件的数据库 在matser数据库下新建查询,输入的命令如下: USE master——指向当前使用的数据库.创建数据库实际上是向master数据库中增加一条数据库信 ...

  10. Spring mvc项目导出jar包无法识别正常映射问题

    笔者的代码很简单,平常的配置文件,web.xml如下 <servlet> <!--名称 --> <servlet-name>springmvc</servle ...