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. Shell教程 之传递参数

    1.Shell传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字, 0 为执行的文件名,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数 ...

  2. Intent Activity跳转 传递数据 Bundle

    1.普通跳转: Intent intent=new Intent(); intent.setClass(MainActivity.this,NewActivity.class); //新建一个Inte ...

  3. JS判断变量类型

    typeof v 只能用于识别基础类型,不能识别对象 v instanceof MyClass 判断类型 Object.prototype.toString.call(v.p) === "[ ...

  4. DBCO

    实现SAP连接外部数据库 也可用SM30维护DBCON的内容 SAP提供了对原生sql的操作,主要有以下几个类组成: CL_SQL_STATEMENT - Execution of SQL State ...

  5. Non-negative Integers without Consecutive Ones

    n位二进制,求不包含连续1的二进制(n位)数字个数. http://www.geeksforgeeks.org/count-number-binary-strings-without-consecut ...

  6. JFinal Web开发学习(二)目录、架构、package设计

    package分类 config是JFinal的项目配置 controller是控制器 handler可以设置全局处理器,例如判断用户请求中是否直接请求 FreeMarker的模板文件ftl或者htm ...

  7. tiny4412 启动方式

    1.iROM(BL0):是指Exynos4412的iROM中固化的启动代码,其作用是初始化系统时钟,设置看门狗,初始化堆和栈,加载8kb的bl1到Exynos4412的一个64kb大小内部sram(I ...

  8. 18.Mysql SQL优化

    18.SQL优化18.1 优化SQL语句的一般步骤 18.1.1 通过show status命令了解各种SQL的执行频率show [session|global] status; -- 查看服务器状态 ...

  9. Oracle触发器(trigger):一般用法

    trigger和procedure,function类似,只不过它不能被显示调用,只能被某个事件触发然后oracle自动去调用.常用的一般是针对一个表或视图创建一个trigger,然后对表或视图做某些 ...

  10. C++中的npos,size_t,size_type

    string类提供了6种查找函数,每种函数以不同形式find命名,这些操作全都返回string::size_type类型的值,以下标形式标记查找匹配所发生的位置,或返回一个名为string::npos ...