• 作者:韩信子@ShowMeAI
  • 教程地址:https://www.showmeai.tech/tutorials/34
  • 本文地址:https://www.showmeai.tech/article-detail/191
  • 声明:版权所有,转载请联系平台与作者并注明出处

引言

随机森林是一种由决策树构成的(并行)集成算法,属于Bagging类型,通过组合多个弱分类器,最终结果通过投票或取均值,使得整体模型的结果具有较高的精确度和泛化性能,同时也有很好的稳定性,广泛应用在各种业务场景中。

随机森林有如此优良的表现,主要归功于「随机」和「森林」,一个使它具有抗过拟合能力,一个使它更加精准。我们会在下文中做更详细的展开讲解。

(本篇部分内容涉及到机器学习基础知识、决策树、回归树算法,没有先序知识储备的宝宝可以查看ShowMeAI的文章 图解机器学习 | 机器学习基础知识、决策树模型详解 及 回归树模型详解)。

1.集成学习

1)集成学习

学习随机森林,我们需要先了解一些概念,比如第1个大家要了解的概念是集成学习(ensemble learning):

对于训练数据集,我们训练一系列「个体学习器」,再通过「结合策略」将它们集成起来,形成一个更强的学习器,这就是「集成学习」在做的事情,内核思想类似「三个臭皮匠,顶个诸葛亮」。

2)个体学习器

个体学习器是相对于集成学习来说的,其实我们在之前了解到的很多模型,比如C4.5决策树算法、逻辑回归算法、朴素贝叶斯算法等,都是个体学习器。

  • 若集成中只包含同种类型的个体学习器,叫做「同质」集成,个体学习器称作「基学习器」。例如随机森林中全是决策树集成。

  • 若集成中包含不同类型的个体学习器,叫做「异质」集成,个体学习器称作「组件学习器」。例如同时包含决策树和神经网络进行集成。

个体学习器代表的是单个学习器,集成学习代表的是多个学习器的结合。

3)集成学习核心问题

(1)使用什么样的个体学习器?

  • 个体学习器不能太「弱」,需要有一定的准确性。
  • 个体学习器之间要具有「多样性」,即存在差异性。

(2)如何选择合适的结合策略构建强学习器?

  • 并行组合方式,例如随机森林。
  • 传统组合方式,例如boosting树模型。

2.Bagging

我们在这里讲到的随机森林是并行集成模型,而Bagging是并行式集成学习方法最著名的代表。

1)Bootstrap Sampling

要理解bagging,首先要了解自助采样法(Bootstrap Sampling):

  • 给定包含 mmm 个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中。

  • 上述过程重复 mmm 轮,我们得到 mmm 个样本的采样集,初始训练集中有的样本在采样集中多次出现,有的则从未出现,约63.2%的样本出现在采样集中,而未出现的约36.8%的样本可用作验证集来对后续的泛化性能进行「包外估计」

2)Bagging

Bagging是Bootstrap aggregating的缩写,是在Boostrap Sampling基础上构建的,上述的采样过程我们可以重复 TTT 次,采样出 TTT 个含 mmm 个训练样本的采样集,然后基于每个采样集训练出一个基学习器,然后将这些基学习器进行结合。

在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法,这就是Bagging的基本流程。

从「偏差-方差分解」的角度看,Bagging主要关注降低方差,因此它在不剪枝的决策树、神经网络等易受到样本扰动的学习器上效用更明显。

3.随机森林算法

1)随机森林算法介绍

Random Forest(随机森林,简称RF)是一种基于树模型的Bagging的优化版本。核心思想依旧是Bagging,但是做了一些独特的改进——RF使用了CART决策树作为基学习器。具体过程如下:

  • 输入为样本集 D={(x,y1),(x2,y2),…,(xm,ym)}D=\left\{\left(x, y_{1}\right),\left(x_{2}, y_{2}\right), \ldots,\left(x_{m}, y_{m}\right)\right\}D={(x,y1),(x2,y2),,(xm,ym)}

  • 对于 t=1,2,...,Tt=1,2,...,Tt=1,2,...,T

    • 对训练集进行第 ttt 次随机采样,共采集 mmm 次,得到包含 mmm 个样本的采样集 DTD_TDT
    • 用采样集 DTD_TDT 训练第 TTT 个决策树模型 GT(x)G_{T} (x)GT(x) ,在训练决策树模型的节点的时候,在节点上所有的样本特征中选择一部分样本特征,在这些随机选择的部分样本特征中选择一个最优的特征来做决策树的左右子树划分。
  • 分类场景,则 TTT 个基模型(决策树)投出最多票数的类别为最终类别。

2)随机森林核心特点

随机森林核心点是「随机」和「森林」,也是给它带来良好性能的最大支撑。

「随机」主要体现在两个方面

  • 样本扰动:直接基于自助采样法(Bootstrap Sampling),使得初始训练集中约63.2%的样本出现在一个采样集中。并带来数据集的差异化。

  • 属性扰动:在随机森林中,对基决策树的每个结点,先在该结点的特征属性集合中随机选择k个属性,然后再从这k个属性中选择一个最优属性进行划分。这一重随机性也会带来基模型的差异性。

「集成」体现在:根据多个(差异化)采样集,训练得到多个(差异化)决策树,采用简单投票或者平均法来提高模型稳定性和泛化能力。

3)随机森林决策边界可视化

下面是对于同一份数据集(iris数据集),我们使用决策树和不同树棵树的随机森林做分类的结果,我们对其决策边界做了可视化。

可以很明显地看到,随着随机森林中决策树数量的增多,模型的泛化能力逐渐增强,决策边界越来越趋于平滑(受到噪声点的影响越来越小)。

4)随机森林算法优点

下面我们来总结一下随机森林的优缺点:

(1)随机森林优点

  • 对于高维(特征很多)稠密型的数据适用,不用降维,无需做特征选择。
  • 构建随机森林模型的过程,亦可帮助判断特征的重要程度。
  • 可以借助模型构建组合特征。
  • 并行集成,有效控制过拟合。
  • 工程实现并行简单,训练速度快。
  • 对于不平衡的数据集友好,可以平衡误差。
  • 对于特征确实鲁棒性强,可以维持不错的准确度。

(2)随机森林缺点

  • 在噪声过大的分类和回归数据集上还是可能会过拟合。
  • 相比单一决策树,因其随机性,模型解释会更复杂一些。

4.影响随机森林的参数与调优

上面我们已经系统了解了随机森林的原理与机制,下面我们一起来看看工程应用实践中的一些重点,比如随机森林模型有众多可调参数,它们有什么影响,又如何调优。

1)核心影响参数

(1)生成单颗决策树时的特征数(max_features)

  • 增加max_features一般能提高单个决策树模型的性能,但降低了树和树之间的差异性,且可能降低算法的速度。

  • 太小的max_features会影响单颗树的性能,进而影响整体的集成效果。

  • 需要适当地平衡和选择最佳的max_features。

(2)决策树的棵树(n_estimators)

  • 较多的子树可以让模型有更好的稳定性和泛化能力,但同时让模型的学习速度变慢。

  • 我们会在计算资源能支撑的情况下,选择稍大的子树棵树。

(3)树深(max_depth)

  • 太大的树深,因为每颗子树都过度学习,可能会有过拟合问题。

  • 如果模型样本量多特征多,我们会限制最大树深,提高模型的泛化能力。

2)参数调优

(1)RF划分时考虑的最大特征数(max_features)

  • 总数的百分比,常见的选择区间是[0.5, 0.9]。

(2)决策树的棵树(n_estimators)

  • 可能会设置为>50的取值,可根据计算资源调整。

(3)决策树最大深度(max_depth)

  • 常见的选择在4-12之间。

(4)内部节点再划分所需最小样本数(min_samples_split)

  • 如果样本量不大,不需要调整这个值。

  • 如果样本量数量级非常大,我们可能会设置这个值为16,32,64等。

(5)叶子节点最少样本数(min_samples_leaf)

  • 为了提高泛化能力,我们可能会设置这个值>1。

更多监督学习的算法模型总结可以查看ShowMeAI的文章 AI知识技能速查 | 机器学习-监督学习。

视频教程

可以点击 B站 查看视频的【双语字幕】版本

【双语字幕+资料下载】MIT 6.036 | 机器学习导论(2020·完整版)

双语字幕+资料下载】MIT 6.036 | 机器学习导论(2020·完整版)

https://www.bilibili.com/video/BV1y44y187wN?p=12

ShowMeAI图解机器学习算法系列(完整版)

ShowMeAI系列教程精选推荐

图解机器学习算法(7) | 随机森林分类模型详解(机器学习通关指南·完结)相关推荐

  1. 数学建模_随机森林分类模型详解Python代码

    数学建模_随机森林分类模型详解Python代码 随机森林需要调整的参数有: (1) 决策树的个数 (2) 特征属性的个数 (3) 递归次数(即决策树的深度)''' from numpy import ...

  2. Python实现GWO智能灰狼优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 灰狼优化算法(GWO),由澳大利亚格里菲斯大学学者 Mirjal ...

  3. 机器学习算法:随机森林

    在经典机器学习中,随机森林一直是一种灵丹妙药类型的模型. 该模型很棒有几个原因: 与许多其他算法相比,需要较少的数据预处理,因此易于设置 充当分类或回归模型 不太容易过度拟合 可以轻松计算特征重要性 ...

  4. 机器学习算法总结--随机森林

    简介 随机森林指的是利用多棵树对样本进行训练并预测的一种分类器.它是由多棵CART(Classification And Regression Tree)构成的.对于每棵树,其使用的训练集是从总的训练 ...

  5. 金融风控机器学习第三十一天---拜师课堂 机器学习算法--决策树 随机森林

    ID3 c4.5的核心是熵 ID3 c4.5 cart 过拟合解决一般 用 剪枝 或者 随机森林 随机森林代码: #!/usr/bin/python # -*- coding:utf-8 -*-imp ...

  6. 机器学习最易懂之贝叶斯模型详解与python实现

    文章目录 0.预备知识 0.1 先验概率.条件概率.后验概率 0.2 贝叶斯公式 0.3 极大似然估计 0.4 生成模型与判别模型 1.朴素贝叶斯模型 1.1 朴素贝叶斯的符号说明 1.2 朴素贝叶斯 ...

  7. 数据挖掘算法中,预测类模型详解

    预测类模型根据被解释变量的度量类型,分为对连续变量建模的回归,对分类变量建模的分类器,其中以二分类器为主.这里的回归不是仅有线性回归,还有回归决策树.回归神经网络,甚至最近邻域(KNN)和支持向量机( ...

  8. 为什么机器学习算法难以优化?一文详解算法优化内部机制

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 来源:数据派THU,编辑:黄继彦 本文约3500字,建议阅读9分钟本文介 ...

  9. 图解机器学习算法(6) | 决策树模型详解(机器学习通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/34 本文地址:https://www.showmeai.tech/article-d ...

  10. 图解机器学习算法(13) | 聚类算法详解(机器学习通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/34 本文地址:https://www.showmeai.tech/article-d ...

最新文章

  1. Nervos 双周报第 3 期:佛系新年之后的开工大吉!
  2. 高仿真的类-单例工厂的顶层设计
  3. 创业思考:做生意不是靠学历
  4. 手机商城项目(修饰技术)
  5. 网络编程遇到的一个错误?
  6. 哈理工OJ 1289 对数问题
  7. Win系统 - 重装系统(微PE、MSDN镜像)【绝对纯净】
  8. java毕业设计水果网店管理系统mybatis+源码+调试部署+系统+数据库+lw
  9. 百度表格识别——原理解读
  10. STM32CubeMX+ETH+DP83848+Lwip 成功ping通(基于stm32F107开发板)
  11. ElementUI上传文件和额外参数
  12. 小公司的 ERP 或数据库, 该用 PC 还是 Server
  13. 电脑突然关机重启是什么原因?
  14. Mac系统 - zsh所有命令失效解决方式
  15. JavaScript DOM元素 增加 删除
  16. axios 请求拦截器响应拦截器
  17. 图形学(4)多边形的扫描转换(上)
  18. 高考投档计算机检索,高考志愿投档
  19. B/S聊天室(websocket)
  20. 用友二次开发之总账自定义结转

热门文章

  1. ccf 推荐会议和期刊
  2. 笔记本电脑小键盘上有 home、pgup、pgdn、如何使用
  3. vue src动态加载请求获取的图片
  4. 杭电2019多校第八场 Acesrc and Good Numbers——思维打表oeis
  5. uniapp 调用阿里云OCR身份证识别
  6. ubuntn 16.04.2下caffee的安装教程
  7. PS中预设画笔并为路径描边
  8. webstorm2019汉化详细教程,小白专用
  9. 计算机内录,如何电脑内部录音,介绍一款可以录制电脑内部声音的工具
  10. java自动化高频面试题