机器学习技法-随机森林(Random Forest)

课程地址:https://class.coursera.org/ntumltwo-002/lecture

重要!重要!重要~

一、随机森林(RF)

1.RF介绍

  • RF通过Bagging的方式将许多个CART组合在一起,不考虑计算代价,通常树越多越好。
  • RF中使用CART没有经过剪枝操作,一般会有比较大的偏差(variance),结合Bagging的平均效果可以降低CART的偏差。
  • 在训练CART的时候,使用有放回的随机抽取样本(bootstraping)、随机的抽取样本的特征、甚至将样本特征通过映射矩阵P投影到随机的子空间等技术来增大g(t)的随机性、多样性。

2.RF算法结构和优势

二、OOB(Out-Of-Bag)和自验证(Automatic Validation)

1.RF中使用的有放回的抽样方式(Bootstrapping)会导致能有些样本在某次训练中没有被使用,没有被用到的样本称为OOB(Out-Of-Bag)。

当样本集合很大的时候,如果训练数据的大小和样本集合的大小相同,那么某个样本没有被使用的概率大约为1/3,OOB的大小也约为样本集合的1/3,下面是具体的数学描述。

2.RF Validation

RF 并不注重每棵树的分类效果,实际中也不会用OOB数据来验证g(t),而是使用OOB数据来验证G。

但同时为了保证验证数据绝对没有在训练时“偷窥”,使用的G是去掉与测试的OOB相关的g(t)组成的G-。

最后将所有的OOB测试结果取平均。林说:实际中Eoob通常都会非常精确。

三、特征选择(Feature Selection)和排列检验(Permutation Test)

  • 在实际中,当样本的特征非常多的时候,有时会希望去掉冗余或者与结果无关的特征项,选取相对重要的特征项。
  • 线性模型中,特征项的重要性使用|Wi|来衡量,非线性模型中特征项重要性的衡量一般会比较困难。
  • RF中使用统计中的工具排列检验(Permutation Test)来衡量特征项的重要性。
  • N个样本,每个样本d个维度,要想衡量其中某个特征di的重要,根据Permutation Test把这N个样本的di特征项都洗牌打乱,洗牌前后的误差相减就是该特征项重要性。
  • RF中通常不在训练时使用Permutation Test,而是在Validation 时打乱OOB的特征项,再评估验证,获得特征项的重要性。

四、RF的应用

  • 在简单数据集上,相比单棵的CART树,RF模型边界更加平滑,置信区间(Margin)也比较大
  • 在复杂且有含有噪声的数据集上,决策树通常表现不好;RF具有很好的降噪性,相比而言RF模型也会表现得很好
  • RF中选多少棵树好呢?总的来说是越多越好!!!实践中,要用足够多的树去确保G的稳定性,所以可以使用G的稳定性来判断使用多少棵树好。

时间: 2024-10-04 06:49:05

机器学习技法-随机森林(Random Forest)的相关文章

【机器学习】随机森林 Random Forest 得到模型后,评估参数重要性

在得出random forest 模型后,评估参数重要性 importance() 示例如下 特征重要性评价标准 %IncMSE 是 increase in MSE.就是对每一个变量 比如 X1 随机赋值, 如果 X1重要的话, 预测的误差会增大,所以 误差的增加就等同于准确性的减少,所以MeanDecreaseAccuracy 是一个概念的. IncNodePurity 也是一样, 如果是回归的话, node purity 其实就是 RSS(残差平方和residual sum of squar

第九篇:随机森林(Random Forest)

前言 随机森林非常像<机器学习实践>里面提到过的那个AdaBoost算法,但区别在于它没有迭代,还有就是森林里的树长度不限制. 因为它是没有迭代过程的,不像AdaBoost那样需要迭代,不断更新每个样本以及子分类器的权重.因此模型相对简单点,不容易出现过拟合. 下面先来讲讲它的具体框架流程. 框架流程 随机森林可以理解为Cart树森林,它是由多个Cart树分类器构成的集成学习模式.其中每个Cart树可以理解为一个议员,它从样本集里面随机有放回的抽取一部分进行训练,这样,多个树分类器就构成了一个

【火炉炼AI】机器学习007-用随机森林构建共享单车需求预测模型

[火炉炼AI]机器学习007-用随机森林构建共享单车需求预测模型 (本文所使用的Python库和版本号: Python 3.5, Numpy 1.14, scikit-learn 0.19, matplotlib 2.2 ) 共享单车是最近几年才发展起来的一种便民交通工具,基本上是我等屌丝上班,下班,相亲,泡妞必备神器.本项目拟使用随机森林回归器构建共享单车需求预测模型,从而查看各种不同的条件下,共享单车的需求量. 1. 准备数据集 本次使用的数据集来源于加利福尼亚大学欧文分校(UCI)大学的公

机器学习之随机森林(一)

如果大家想学人工智能的话,那么就一定不能够忽视有关机器学习的内容.这时候就会有人问,什么是机器学习?所谓机器学习就是一门多领域交叉学科,涉及概率论.统计学.逼近论等多门学科.机器学习是专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的一门技术,而机器学习中随机森林是一个十分重要的算法,在这篇文章中我们就详细给大家介绍一下随机森林的相关知识. 一般来说,随机森林是用于分类和回归的监督式集成学习模型.为了要使整体性能更好,因此集成学习模型

随机森林——Random Forests

[基础算法] Random Forests 2011 年 8 月 9 日 Random Forest(s),随机森林,又叫Random Trees[2][3],是一种由多棵决策树组合而成的联合预测模型,天然可以作为快速且有效的多类分类模型.如下图所示,RF中的每一棵决策树由众多split和node组成:split通过输入的test取值指引输出的走向(左或右):node为叶节点,决定单棵决策树的最终输出,在分类问题中为类属的概率分布或最大概率类属,在回归问题中为函数取值.整个RT的输出由众多决策树

机器学习:随机森林

? ? 引言 ? ? 随机森林在机器学习实战中没有讲到,我是从伯克利大学的一个叫breiman的主页中看到相关的资料,这个breiman好像是随机森林算法的提出者,网址如下 ? ? http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm ? ? 随机森林算法简介 ? ? 随机森林说白了就是很多个决策树组成在一起,就形成了森林,关键在于如何创建森林里的每一棵树,随机森林用到的方法bootstrap法,通俗的讲就是有放回的抽取样

机器学习入门-随机森林温度预测的案例

在这个案例中: 1. datetime.datetime.strptime(data, '%Y-%m-%d') # 由字符串格式转换为日期格式 2. pd.get_dummies(features)  # 将数据中的文字标签转换为one-hot编码形式,增加了特征的列数 3. rf.feature_importances 探究了随机森林样本特征的重要性,对其进行排序后条形图 代码: 第一步:数据读取,通过.describe() 查看数据是否存在缺失值的情况 第二步:对年月日特征进行字符串串接,使

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

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

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

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