前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >[机器学习算法]随机森林

[机器学习算法]随机森林

作者头像
TOMOCAT
发布于 2020-06-09 03:29:45
发布于 2020-06-09 03:29:45
1.2K0
举报

单棵决策树的劣势

有时候单棵决策树可能难以实现较高的准确率,这主要是由以下几个方面决定的:

  • 求解一棵最优(泛化误差最小)的决策树是一个NP难(无法穷极所有可能的树结构)问题,往往得到的是局部最优解。
  • 单棵树构建的模型往往不够稳定,样本变动很容易引起树结构的变动
  • 解决过拟合问题除划分测试集和训练集外依赖于剪枝

随机森林原理

回顾:元算法

从统计学的角度来讲,将模型的性能寄希望于单棵决策树是不稳健的,这意味着它在处理未知数据时预测结果的方差是较大的。如同我们做重要决定时会考虑多个专家的意见,元算法meta-algorithm主张综合多个分类器的结果做预测,元算法也被称为集成方法ensemble method,主要思路包括:

  • 不同算法的集成
  • 同一算法在不同设置下的集成
  • 数据集不同部分分配给不同分类器后的集成
bagging

boostrap aggregating是对原始数据进行

次等概率的有放回抽样得到的和原数据集大小相等的

个新的数据集集合,再将某个学习算法作用于这

个数据集得到

个分类器,综合这

个分类器进行投票决策即可得到最终的分类结果。

boosting

boostingbagging一样都是使用相同的分类器作为基分类器,但是boosting中不同分类器是通过串行训练而获得的,每个新分类器都基于被已有分类器错分的样本而构造。

bagging中不同分类器的权重是相等的,而boosting中不同分类器的权重取决于该分类器的性能。

随机森林简述

随机森林是一种以决策树为基分类器的集成算法,通过组合多棵独立的决策树后根据投票或取均值的方式得到最终预测结果的机器学习方法,往往比单棵树具有更高的准确率和更强的稳定性。随机森林相比于决策树拥有出色的性能主要取决于随机抽取样本和特征集成算法,前者让它具有更稳定的抗过拟合能力,后者让它有更高的准确率。

基分类器的生成

随机森林本质上是一种集成算法,由众多的基分类器组成。其中组成随机森林的基分类器是CART树,各棵决策树独立生成且完全分裂,既可以解决分类问题又可以解决回归问题。

随机化

随机森林为了保证较强的抗过拟合和抗噪声能力,在构建每一棵CART决策树的时候采用了行抽样和列抽样的随机化方法。

  • 行抽样

假设训练集的数据行数为

,对于每一棵CART树,我们从

个原始样本中有放回地随机抽取

个作为单棵树的训练集。假设随机森林中CART树数目为

,那么我们通过该办法生成

个独立的训练集用于CART的训练。对于单独一个样本而言,它在

次有放回地随机抽样中都不被抽中的概率是:

足够大时,该式的结果约等于

,即在每一轮行抽样大概有

的数据始终不会被采集到。

  • 列抽样

假设原始数据集的特征数为

,在通过行采样获取每棵CART树的训练集后,随机森林会随机选取

个特征(

)训练用于每一棵CART树的生成。当

越小时,模型的抗干扰性和抗过拟合性越强,但是模型的准确率会下降,因此在实际建模过程中,常需要用交叉验证等方式选择合适的

值。

随机森林参数

  • 随机选取的特征数

随机抽取的特征数

要满足小于等于总特征数

,其中

较小时模型的偏差增加但方差会减少,表现为拟合效果不佳但泛化效果增长。在建模过程中常通过OOB验证或者交叉验证确定

取值。

  • 决策树个数

决策树个数越多时模型的随机化效果越好,从而模型的测试误差越小。理论上在条件允许的范围内,决策树个数

的个数越多越好。当决策树个数较大的时候,测试误差的变化变得很小,这时候就可以确定较为合理的树的数量。

  • 决策树深度

当数据量较少或者特征数较少的时候可以不考虑这个值。但是当模型样本量和特征值都较多时,让决策树完全生长会导致随机森林模型的计算量较大从而速度越慢。

随机森林特征重要性

基于树的集成算法还有一个很好的特性,就是模型训练结束后可以输出模型所使用的特征的相对重要度,便于我们选择特征,理解哪些因素是对预测有关键影响。在随机森林中,简单来说,当某一特征在所有树中离树根的平均距离越近,这一特征在给定的分类或回归问题中就越重要。 一般有两种计算特征重要性的方法:基于基尼系数和基于OOB袋外数据。

  • 基于基尼系数

随机森林中每棵树都是CART决策树,因此树在选择向下分裂的特征时,都是基于基尼系数。假设某特征的在某一棵树上的节点

向下分裂,分裂前的基尼系数为

,分裂后,左右分支的基尼系数分别为

则,

。假设在这棵数上,该特征分裂了

次,则在这棵树上的重要性为:

假设随机森林中,共有

棵数用到该特征,则整个森林中整个特征的重要性为:

最后把所有求得的

个特征重要性评分进行归一化处理就得到重要性的评分:

  • 基于袋外数据
  1. 对于随机森林中的每一颗决策树,使用相应的OOB(袋外数据)数据来计算它的袋外数据误差,记为

.

  1. 随机地对袋外数据OOB所有样本的特征X加入噪声干扰,再次计算它的袋外数据误差,记为

.

  1. 假设随机森林中有

棵树,那么对于特征

的重要性为

。之所以可以用这个表达式来作为相应特征的重要性的度量值是因为:若给某个特征随机加入噪声之后,袋外的准确率大幅度降低,则说明这个特征对于样本的分类结果影响很大,也就是说它的重要程度比较高。而该方法中涉及到的对数据增加噪音或者进行打乱的方法通常有两种: 1)使用uniform或者gaussian抽取随机值替换原特征; 2)通过permutation的方式将原来的所有

个样本的第

个特征值重新打乱分布(相当于重新洗牌)。一般来说,第二种方法使用得更多。

随机森林优点
  • 行抽样和列抽样的引入让模型具有抗过拟合和抗噪声的特性
  • 对数据的格式要求低:因为有列抽样从而能处理高维数据;能同时处理离散型和连续型;和决策树一样不需要对数据做标准化处理;可以将缺失值单独作为一类处理
  • 不同树的生成是并行的,从而训练速度优于一般算法
  • 给能出特征重要性排序
  • 由于存袋外数据,从而能在不切分训练集和测试集的情况下获得真实误差的无偏估计
随机森林缺点
  • 同决策树直观的呈现不同,随机森林是一个黑盒模型,无法追溯分类结果如何产生
  • 由于算法本身的复杂性,随机森林建模速度较慢,在集成算法中也明显慢于XGBoost等其他算法
  • 随着随机森林中决策树个数增多,训练时需要更多的时间和空间

Reference

[1] Machine Learning in Action [2] Introduction to Data Mining [3] 机器学习

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
集成算法 | 随机森林分类模型
随机森林是非常具有代表性的Bagging集成算法,它的所有基评估器都是决策树,分类树组成的森林就叫做随机森林分类器,回归树所集成的森林就叫做随机森林回归器。
数据STUDIO
2021/06/24
1.1K0
随机森林原理介绍与适用情况(综述篇)'建议收藏'
随机森林是一种集成算法(Ensemble Learning),它属于Bagging类型,通过组合多个弱分类器,最终结果通过投票或取均值,使得整体模型的结果具有较高的精确度和泛化性能。其可以取得不错成绩,主要归功于“随机”和“森林”,一个使它具有抗过拟合能力,一个使它更加精准。
计算机与AI
2020/11/19
6.8K0
随机森林原理介绍与适用情况(综述篇)'建议收藏'
机器学习算法-随机森林
随机森林是一种监督式学习算法,适用于分类和回归问题。它可以用于数据挖掘,计算机视觉,自然语言处理等领域。随机森林是在决策树的基础上构建的。
zhangjiqun
2024/12/14
1660
机器学习算法-随机森林
机器学习之随机森林
随机森林(Random Forest)是一个非常灵活的机器学习方法,从市场营销到医疗保险有着众多的应用。例如用于市场营销对客户获取和存留建模或预测病人的疾病风险和易感性。随机森林能够用于分类和回归问题,可以处理大量特征,并能够帮助估计用于建模数据变量的重要性。我们先了解随机森林中森林和随机的概念。
小一
2019/08/14
1.4K0
机器学习之随机森林
随机森林(RF),Bagging思想
Bagging是bootstrap aggregating。思想就是从总体样本当中随机取一部分样本进行训练,通过多次这样的结果,进行投票获取平均值作为结果输出,这就极大可能的避免了不好的样本数据,从而提高准确度。因为有些是不好的样本,相当于噪声,模型学入噪声后会使准确度不高。
大数据技术与机器学习
2019/11/20
2.8K0
R语言︱决策树族——随机森林算法
版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/51308061
悟乙己
2019/05/27
3.3K0
临床预测模型/机器学习-随机森林树RSF(RandomForest/RandomForestSRC)算法学习
随机森林(Random Forest)是一种集成机器学习方法,由多棵决策树组成。它通过训练大量的决策树并结合这些树的预测结果,来提高模型的准确性和稳健性。随机森林常用于分类、回归和其他预测任务,尤其适合处理高维数据和噪声数据。
凑齐六个字吧
2024/11/04
2760
临床预测模型/机器学习-随机森林树RSF(RandomForest/RandomForestSRC)算法学习
随机森林算法(有监督学习)
一、随机森林算法的基本思想   随机森林的出现主要是为了解单一决策树可能出现的很大误差和overfitting的问题。这个算法的核心思想就是将多个不同的决策树进行组合,利用这种组合降低单一决策树有可能带来的片面性和判断不准确性。用我们常说的话来形容这个思想就是“三个臭皮匠赛过诸葛亮”。   具体来讲,随机森林是用随机的方式建立一个森林,这个随机性表述的含义我们接下来会讲。随机森林是由很多的决策树组成,但每一棵决策树之间是没有关联的。在得到森林之后,当对一个新的样本进行判断或预测的时候,让森林中的每一棵决策树分别进行判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。
全栈程序员站长
2022/08/31
3790
随机森林算法(有监督学习)
随机森林算法及其实现(Random Forest)
  作为新兴起的、高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易感性。最初,我是在参加校外竞赛时接触到随机森林算法的。最近几年的国内外大赛,包括2013年百度校园电影推荐系统大赛、2014年阿里巴巴天池大数据竞赛以及Kaggle数据科学竞赛,参赛者对随机森林的使用占有相当高的比例。此外,据我的个人了解来看,一大部分成功进入答辩的队伍也都选择了Random Forest 或者 GBDT 算法。所以可以看出,Random Forest在准确率方面还是相当有优势的。
全栈程序员站长
2022/07/25
9540
随机森林算法及其实现(Random Forest)
机器学习集成算法——袋装法和随机森林
随机森林是最流行、最强大的机器学习算法之一。它是机器学习集成算法中的一种,可称之为自助集成(Bootstrap Aggregation)或袋装法(Bagging)。
花落花飞去
2018/02/02
5K0
机器学习集成算法——袋装法和随机森林
随机森林--你想到的,都在这了
Bagging是bootstrap aggregating。思想就是从总体样本当中随机取一部分样本进行训练,通过多次这样的结果,进行投票获取平均值作为结果输出,这就极大可能的避免了不好的样本数据,从而提高准确度。因为有些是不好的样本,相当于噪声,模型学入噪声后会使准确度不高。
mantch
2019/07/30
1.5K0
决策树与随机森林
首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢?其中最重要的是,树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值。决策树与逻辑回归的分类区别也在于此,逻辑回归是将所有特征变换为概率后,通过大于某一概率阈值的划分为一类,小于某一概率阈值的为另一类;而决策树是对每一个特征做一个划分。另外逻辑回归只能找到线性分割(输入特征x与logit之间是线性的,除非对x进行多维映射),而决策树可以找到非线性分割。
西西木木
2020/06/02
1.3K0
决策树与随机森林
随机森林
在机器学习的分类中,集成学习是按照学习方式分类的一种机器学习,所以先从集成学习讲起。
章鱼carl
2022/03/31
4650
随机森林
利用随机森林评估特征重要性原理与应用
来源:机器学习研习院本文约2000字,建议阅读8分钟本文对随机森林如何用在特征选择上做一个简单的介绍。 随机森林是以决策树为基学习器的集成学习算法。随机森林非常简单,易于实现,计算开销也很小,更令人惊奇的是它在分类和回归上表现出了十分惊人的性能,因此,随机森林也被誉为“代表集成学习技术水平的方法”。 一、随机森林RF简介 只要了解决策树的算法,那么随机森林是相当容易理解的。随机森林的算法可以用如下几个步骤概括: 用有抽样放回的方法(bootstrap)从样本集中选取n个样本作为一个训练集。 用抽样得到的
数据派THU
2022/09/14
2.5K0
利用随机森林评估特征重要性原理与应用
机器学习模型从理论到实战|【005-决策树与随机森林】客户流失预测
文章链接:https://cloud.tencent.com/developer/article/2472155
远方2.0
2024/12/01
1770
机器学习模型从理论到实战|【005-决策树与随机森林】客户流失预测
机器学习面试中常考的知识点,附代码实现(二)
其实用一下图片能更好的理解LR模型和决策树模型算法的根本区别,我们可以思考一下一个决策问题:是否去相亲,一个女孩的母亲要给这个女海介绍对象。
AI研习社
2019/08/29
5880
机器学习面试中常考的知识点,附代码实现(二)
【spark】什么是随机森林
1.什么是随机森林 随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。
Maynor
2021/12/06
5040
【spark】什么是随机森林
独家 | 一文读懂随机森林的解释和实现(附python代码)
本文从单棵决策树讲起,然后逐步解释了随机森林的工作原理,并使用sklearn中的随机森林对某个真实数据集进行预测。
数据派THU
2018/12/21
6.3K0
随机森林算法
Bagging框架,即 Bootstrap Aggregating,是一个用于提高机器学习算法稳定性和准确性的方法。Bagging 算法通过对原始数据集进行有放回的抽样,生成多个不同的数据子集,然后分别在这些子集上训练模型。最后,通过对这些模型的预测结果进行投票(分类问题)或求平均(回归问题),得到最终的预测。Bagging 方法可以有效减少模型的方差,防止过拟合,并提高模型的泛化能力。
@小森
2024/03/15
1250
随机森林算法
基于随机森林识别特征重要性(翻译)
博主Slav Ivanov 的文章《Identifying churn drivers with Random Forests 》部分内容翻译。博主有一款自己的产品RetainKit,用AI和机器学习方法,帮助SaaS相关企业解决客户流失问题。如对他们对产品有兴趣,可以访问下面的链接进行更多了解:https://www.producthunt.com/upcoming/retainkit。 随机森林 随机森林是一个集成算法,通过生成很多棵树,最终以投票或算均值的方式得到结果。这篇文章可视为对随机森林中
三猫
2018/04/10
1.7K0
推荐阅读
相关推荐
集成算法 | 随机森林分类模型
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文