一、背景

机器学习是一门多领域交叉学科,近年来随着机器学习的发展,各种机器学习算法的应用范围不断扩大。在系统结构的研究之中也开始逐渐利用相关算法实现研究目标。相比于传统利用完全基于硬件结构,利用公式,计算等实现的分析模型,基于机器学习算法的分析模型更具有通用性,更加易于部署和迁移,因此也更受欢迎,例如近年来ATC,MICRO等会议中均有相关论文利用机器学习算法来实现性能预测,提升资源利用率等目标。

机器学习算法种类繁多,其中可应用于系统结构研究的算法也不在少数,例如线性回归,随机森林等,其各有特点优点。本文将简要介绍随机森林算法的相关概念,供以参考。

二、集成学习Bagging原理

随机森林属于集成学习范畴,集成学习就是组合多个弱监督模型以期得到一个强监督模型,这样即便其中一个弱模型产生错误的预测,其他弱模型也可以将错误纠正回来。其中Bagging的特点是各个弱学习器之间没有依赖关系,可以实现并行拟合。

下图所示为集成学习Bagging的原理图。

Bagging采取一种有放回的随机采样,即从训练集里面随机采集固定个数的样本,但每采集一个样本后,都将样本放回,也就是说,之前采集到的样本在放回后有可能继续被采集到。利用T个采样集训练出T个弱学习器,然后采用结合策略生成强学习器,其中分类问题的结合策略可以采用投票法:“少数服从多数”,选择获得票数最多的的类别为最终预测;回归问题的结合策略泽采用平均值法:取结果的算数平均值作为最终预测结果。

三、决策树

随机森林在Bagging的基础上实现,其使用的弱学习器为决策树。

决策树是一种有监督的分类模型,其本质是选择一个能带来最大信息增益的特征值进行树的分割。决策树的节点分割过程类似于一个递归过程,它根据信息增益找出最关键的特征,按此特征进行分割,对子树上的数据节点也以类似的方式进行分割,直到特征用尽,或者是这一节点上的所有数据都相同的标签为止。

下图所示为一个决策树的简单例子。

如果不限制决策树的最大深度,那么使用单个决策树可能会导致过拟合,因为没有最大深度的限制,意味着它可以持续生长,直到它将样本中的所有节点进行了“完美分类”,使它对于训练集具有极高的分类准确率,然而却无法很好的泛化到新的数据集上,在测试集上表现出较差的性能。由此,在实际使用过程中需要选择限制决策树的最大深度,或者选择采用另外一种替代方案,即将许多单个决策树组合起来形成随机森林模型。

四、随机森林

4.1 随机森林原理

随机森林在bagging和决策树的基础上实现,在这二者之上进行了改进。随机森林使用的弱学习器为决策树,各个决策树之间没有依赖关系,可以并行生成。普通的决策树在节点上所有的n个样本特征中选择一个最优的来进行决策树的分割,而随机森林则是选择节点上的一部分特征(特征个数小于n,选择的特征个数越少,则模型越为健壮)。然后在随机选择的部分特征中选择一个最优的特征来进行树的分割(双层选择),这样可以进一步增强模型的泛化能力。

随机森林简单流程如下:

输入

样本集

弱分类器迭代次数T

输出

强分类器

1) 对于t=1,2...,T:

a) 对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集

b) 用不同的采样集分别训练决策树模型,在训练决策树模型的节点的时候,在节点上所有的样本特征中选择部分样本特征,然后在部分特征中选择一个最优的特征分割决策树。

2) 如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。

4.2 影响随机森林性能的参数

随机森林模型的优点之一就是其基本不需要调参,但是为了应对在实际情况中遇到难以解决的问题,有必要对影响模型性能的因素有一定的了解。

影响随机森林模型性能的因素主要有三种,分别为:

  1. 决策树的个数:因为存在随机因素,所以决策树的个数越多预测结果越稳定,因此在允许范围之内,决策树的数目越大越好。
  2. 递归次数(即决策树的深度):一般来说,数据少或者特征少的时候可以不必限制此值的大小。如果模型样本量多,特征也多的情况下,则需要在一定程度上限制这个最大深度,具体的取值取决于数据的分布。深度越小,计算量越小,速度越快。
  3. 特征属性的个数:减小特征属性的个数不仅会提升算法速度,也有可能降低测试误差;通常使用的值可以是全部特征值个数的开方,或者取其对数值,也可以逐一尝试特征属性个数的值,直到找到比较理想的数字。

简要介绍随机森林原理相关推荐

  1. 在envi做随机森林_随机森林原理介绍与适用情况(综述篇)

    一句话介绍 随机森林是一种集成算法(Ensemble Learning),它属于Bagging类型,通过组合多个弱分类器,最终结果通过投票或取均值,使得整体模型的结果具有较高的精确度和泛化性能.其可以 ...

  2. 机器学习:随机森林原理 OOB等

    看了好多博客介绍随机森林,感觉这几个讲的挺好的,有的有python代码,分享给大家: 1.评测了17个分类器族-192个非神经网络分类器,其中Rfs综合评价效果最好:https://dl.acm.or ...

  3. 集成学习—随机森林原理(理解与论文研读)

    如果只想大致理解下随机森林的原理请看第一部分,第二部分是对原论文的研读(灰色引用标记的为证明或自己的理解),这部分可能需要花的时间比较长,不需要的可以忽略. 此外,文末列出来的参考视频,如果读论文还是 ...

  4. 随机森林原理详解及python代码实现

    随机森林(RF)算法 1.算法原理 2.对数据的要求(无需规范化) 3.算法的优缺点 4.算法需要注意的点 5.python代码实现(待更......) 导入相关包 读取数据并预处理(必须处理缺失值) ...

  5. 随机森林原理_机器学习(29):随机森林调参实战(信用卡欺诈预测)

    点击"机器学习研习社","置顶"公众号 重磅干货,第一时间送达 回复[大礼包]送你机器学习资料与笔记 回顾 推荐收藏>机器学习文章集合:1-20 机器学习 ...

  6. 在envi做随机森林_随机森林原理

    随机森林由Leo Breiman(2001)提出的一种分类算法,它通过自助法(bootstrap)重采样技术,从原始训练样本集N中有放回地重复随机抽取n个样本生成新的训练样本集合训练决策树,然后按以上 ...

  7. [机器学习算法]随机森林原理

    随机森林 单棵决策树的劣势 有时候单棵决策树可能难以实现较高的准确率,这主要是由以下几个方面决定的: 求解一棵最优(泛化误差最小)的决策树是一个NP难(无法穷极所有可能的树结构)问题,往往得到的是局部 ...

  8. 随机森林原理及其用于分类问题的matlab实现

    随机森林 随机森林是多个决策树的集成学习,每个决策树用bagging的方法选数据集,并且在选择最佳属性划分的时候随机划分一些属性进行分类,比单个分类器效果更好,泛化能力更强. 代码解释 1.用结构体的 ...

  9. 【机器学习】随机森林原理

    原文 链接:https://blog.csdn.net/jiede1/article/details/78245597?utm_source=blogxgwz1

  10. 随机森林RF原理总结

    在集成学习原理中知道,集成学习分为两部分Bagging和Boosting.随机森林RF作为Bagging方法的典型例子,以其并行训练的优点在如今处理数据问题上广受欢迎.随机森林,顾名思义,是有多棵树组 ...

最新文章

  1. 编写查询功能TextBox
  2. bzoj1402 Ticket to Ride 斯坦纳树 + 状压dp
  3. Android Studio系列教程一:下载与安装
  4. plc的时代背景_PLC发明史
  5. CentOS系统更换yum源(repomd.xml not found解决方案)
  6. solrcloud线上创建collection,修改默认配置
  7. 在Ubuntu 16.04 安装python3.6 环境并设置为默认
  8. 机器学习实战(8):局部加强线性回归LWLR
  9. McCabe度量方法计算程序复杂度
  10. java 弱引用 使用场景_Java 强软弱虚引用介绍及使用场景
  11. MySQL间隙锁死锁问题
  12. ps保存html和图像格式不显示,解决ps“储存为web和设备所用格式”灰色不能使用的方法...
  13. 删除表记录(delete from where )
  14. 复杂性研究简介——从西蒙到霍兰
  15. Android推送技术总结
  16. 笔记本插入网线接口没反应
  17. 漩涡鸣人的十大过人之处
  18. 概念:ASP是一种语言么?
  19. ipad手写笔有必要买原装吗?第三方性价比高的手写笔推荐
  20. win10笔记本触摸板点击没反应

热门文章

  1. vscode 快速新建一个HTML文件
  2. NetApp FAS 混合闪存阵列
  3. 斐讯路由器k2编程器救砖教程
  4. VS2013安装教程
  5. 概率论——马尔科夫链
  6. 张钹院士:迈向第三代人工智能 |论文学习总结
  7. 第一章-数据规范-数据分析报表设计标准
  8. chrome插件开发引入图片静态资源
  9. SSM框架---开发免费小说网站(h5+电脑端)
  10. Python学习笔记——cmd提示pip不是内部或外部命令解决方法