Ensemble methods 之 Random Forest(随机森林)(收藏)

1. 是什么

如前面所说,决策树有时候会出现过拟合(overfit)的问题,越强大的决策树越可能出现过拟合,但是如果几个模型或者一个模型的几个参数组合起来,就很容易弥补这种问题。

所以,随机森林就是一种ensemble方法中的bagging方法,用原始数据进行训练至完全分裂最后得到多个决策树,对新的数据的预测就是对所有的决策树取平均值来进行预测。

2. 关键概念

  • 采样。样本数量为N,采样数量也为N,但是采取的是有放回的采样(bootstrap)。
  • 训练。决策树完全分裂至所有的叶子节点,不做各种形式的剪枝,不必担心过拟合问题。
  • 组合算法。训练结束之后,对新数据进行预测的时候,会让新数据在所有得到的M个决策树上进行预测,最后对结果进行平均或者进行投票。最早的算法是投票:每个树对每一类投票,sklearn的算法是对各个树进行了平均取结果。
  • 分类和回归。随机森林可以做分类,也可以做回归,但是很显然(实践上也是),做回归有点不靠谱,所以研究随机森林回归意思不大。

3. 算法

没什么特殊的说明,只是熟悉决策树的算法就好了,这里:http://blog.csdn.net/sandyzhs/article/details/46814805

4. 怎么用

class sklearn.ensemble.RandomForestClassifier(n_estimators=10, crite-rion=’gini’, max_depth=None,

min_samples_split=2, min_samples_leaf=1,

min_weight_fraction_leaf=0.0,

max_features=’auto’,

max_leaf_nodes=None, bootstrap=True,

oob_score=False, n_jobs=1, ran-dom_state=None, verbose=0,

warm_start=False, class_weight=None)

其中的大多数参数都是决策树(构成组合算法的小决策树)的参数,随机森林特有的有:

n_estimators=10:决策树的个数,越多越好,但是性能就会越差,至少100左右(具体数字忘记从哪里来的了)可以达到可接受的性能和误差率。

n_jobs=1:并行job个数。这个在ensemble算法中非常重要,尤其是bagging(而非boosting,因为boosting的每次迭代之间有影响,所以很难进行并行化),因为可以并行从而提高性能。1=不并行;n:n个并行;-1:CPU有多少core,就启动多少job。

warm_start=False:热启动,决定是否使用上次调用该类的结果然后增加新的。

class_weight=None:各个label的权重。

进行预测可以有几种形式:

predict_proba(x):给出带有概率值的结果。每个点在所有label的概率和为1.

predict(x):直接给出预测结果。内部还是调用的predict_proba(),根据概率的结果看哪个类型的预测值最高就是哪个类型。

predict_log_proba(x):和predict_proba基本上一样,只是把结果给做了log()处理。

5. 应用场景和限制

主要用来做分类。缺点不多,基本上没有看到。它有很多的优点,比如:

  • 在当前的很多数据集上,相对其他算法有着很大的优势
  • 它能够处理很高维度(feature很多)的数据,并且不用做特征选择
  • 在训练完后,它能够给出哪些feature比较重要
  • 训练速度快
  • 在训练过程中,能够检测到feature间的互相影响
  • 容易做成并行化方法
  • 实现比较简单

其中对feature的那几个优点很重要,因为节省了做特征工程的时间以及误差。另外,实现简单和可以并行也是很重要的特色,因为这样比较容易维护和调优。

原文地址:https://www.cnblogs.com/nxf-rabbit75/p/9298212.html

时间: 2024-08-02 08:48:27

Ensemble methods 之 Random Forest(随机森林)(收藏)的相关文章

[Machine Learning] Random Forest 随机森林

1 什么是随机森林? 作为新兴起的.高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易感性.最初,我是在参加校外竞赛时接触到随机森林算法的.最近几年的国内外大赛,包括2013年百度校园电影推荐系统大赛.2014年阿里巴巴天池大数据竞赛以及Kaggle数据科学竞赛,参赛者对随机森林的使用占有相当高的比例.此外,据我的个人了解来看,一大部

统计学习方法——CART, Bagging, Random Forest, Boosting

http://blog.csdn.net/abcjennifer/article/details/8164315 本文从统计学角度讲解了CART(Classification And Regression Tree), Bagging(bootstrap aggregation), Random Forest Boosting四种分类器的特点与分类方法,参考材料为密歇根大学Ji Zhu的pdf与组会上王博的讲解. CART(Classification And Regression Tree)

随机森林与集成算法

决策树: 使用决策树算法,我们从树根开始,基于可获得最大信息增益(information gain,IG)的特征来对数据进行划分,我们将在下一节详细介绍信息增益的概念. 通过迭代处理,在每个子节点上重复此划分过程,直到叶子节点.这意味着在每一个节点处,所有的样本都属于同一类别. 在实际应用中,这可能会导致生成一棵深度很大且拥有众多节点的树,这样容易产生过拟合问题,由此,我们一般通过对树进行“剪枝”来限定树的最大深度. 最大化信息增益——获知尽可能准确的结果 为了在可获得最大信息增益的特征处进行节

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

版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等.但是同时,单决策树又有一些不好的地方,比如说容易over-fitting,虽然有一些方法,如剪枝可以减少这种情况,但是还是不够的. 模型组合(比如

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

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

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

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

决策树模型组合之随机森林与GBDT

本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等.但是同时,单决策树又有一些不好的地方,比如说容易over-fitting,虽然有一些方法,如剪枝可以减少这种情况,但是还是不够的. 模型组合(比如说有Boos

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

版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected].也可以加我的微博: @leftnoteasy 前言: 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等.但是同时, 单决策树又有一些不好的地方,比如说容易over-fitting,虽然有一些方法,如剪枝可

随机森林(Random Forest)

 阅读目录 ?1 什么是随机森林? ?2 随机森林的特点 ?3 随机森林的相关基础知识 ?4 随机森林的生成 ?5 袋外错误率(oob error) ?6 随机森林工作原理解释的一个简单例子 ?7 随机森林的Python实现 ?8 参考内容 1 什么是随机森林? 作为新兴起的.高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易感性