图解机器学习 | 随机森林分类模型详解

简介: 随机森林是一种由决策树构成的(并行)集成算法。本文讲解随机森林算法涉及的模型集成、Bagging、算法特点及优缺点等重要知识点,最后介绍关键参数和参数调优。

ShowMeAI研究中心

作者:韩信子@ShowMeAI
教程地址http://www.showmeai.tech/tutorials/34
本文地址http://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):

  • 给定包含 $m$ 个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中。
  • 上述过程重复 $m$ 轮,我们得到 $m$ 个样本的采样集,初始训练集中有的样本在采样集中多次出现,有的则从未出现,约63.2%的样本出现在采样集中,而未出现的约36.8%的样本可用作验证集来对后续的泛化性能进行「包外估计」

2)Bagging

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

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

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

3.随机森林算法

1)随机森林算法介绍

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

  • 输入为样本集 $D=\left\{\left(x, y_{1}\right),\left(x_{2}, y_{2}\right), \ldots,\left(x_{m}, y_{m}\right)\right\}$
  • 对于 $t=1,2,...,T$:

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

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站 查看视频的【双语字幕】版本

[video(video-HwwdLokV-1646892709260)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=975327190&page=12)(image-https://img-blog.csdnimg.cn/img_convert/fa16d3a325897e3a25bd70394e9d2a62.png)(title-【双语字幕+资料下载】MIT 6.036 | 机器学习导论(2020·完整版))]

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

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

ShowMeAI相关文章推荐

ShowMeAI系列教程推荐

showmeai

相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
8月前
|
人工智能 自然语言处理 IDE
模型微调不再被代码难住!PAI和Qwen3-Coder加速AI开发新体验
通义千问 AI 编程大模型 Qwen3-Coder 正式开源,阿里云人工智能平台 PAI 支持云上一键部署 Qwen3-Coder 模型,并可在交互式建模环境中使用 Qwen3-Coder 模型。
1304 109
|
9月前
|
人工智能 自然语言处理 运维
【新模型速递】PAI-Model Gallery云上一键部署Kimi K2模型
月之暗面发布开源模型Kimi K2,采用MoE架构,参数达1T,激活参数32B,具备强代码能力及Agent任务处理优势。在编程、工具调用、数学推理测试中表现优异。阿里云PAI-Model Gallery已支持云端部署,提供企业级方案。
536 0
【新模型速递】PAI-Model Gallery云上一键部署Kimi K2模型
|
人工智能 JSON 算法
【解决方案】DistilQwen2.5-DS3-0324蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践
DistilQwen 系列是阿里云人工智能平台 PAI 推出的蒸馏语言模型系列,包括 DistilQwen2、DistilQwen2.5、DistilQwen2.5-R1 等。本文详细介绍DistilQwen2.5-DS3-0324蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践。
|
10月前
|
机器学习/深度学习 算法 安全
差分隐私机器学习:通过添加噪声让模型更安全,也更智能
本文探讨在敏感数据上应用差分隐私(DP)进行机器学习的挑战与实践。通过模拟DP-SGD算法,在模型训练中注入噪声以保护个人隐私。实验表明,该方法在保持71%准确率和0.79 AUC的同时,具备良好泛化能力,但也带来少数类预测精度下降的问题。研究强调差分隐私应作为模型设计的核心考量,而非事后补救,并提出在参数调优、扰动策略选择和隐私预算管理等方面的优化路径。
688 3
差分隐私机器学习:通过添加噪声让模型更安全,也更智能
|
9月前
|
人工智能 自然语言处理 运维
【新模型速递】PAI-Model Gallery云上一键部署gpt-oss系列模型
阿里云 PAI-Model Gallery 已同步接入 gpt-oss 系列模型,提供企业级部署方案。
|
10月前
|
机器学习/深度学习 人工智能 算法
Post-Training on PAI (4):模型微调SFT、DPO、GRPO
阿里云人工智能平台 PAI 提供了完整的模型微调产品能力,支持 监督微调(SFT)、偏好对齐(DPO)、强化学习微调(GRPO) 等业界常用模型微调训练方式。根据客户需求及代码能力层级,分别提供了 PAI-Model Gallery 一键微调、PAI-DSW Notebook 编程微调、PAI-DLC 容器化任务微调的全套产品功能。
|
11月前
|
存储 人工智能 运维
企业级MLOps落地:基于PAI-Studio构建自动化模型迭代流水线
本文深入解析MLOps落地的核心挑战与解决方案,涵盖技术断层分析、PAI-Studio平台选型、自动化流水线设计及实战构建,全面提升模型迭代效率与稳定性。
515 6
|
11月前
|
存储 机器学习/深度学习 自然语言处理
避坑指南:PAI-DLC分布式训练BERT模型的3大性能优化策略
本文基于电商搜索场景下的BERT-Large模型训练优化实践,针对数据供给、通信效率与计算资源利用率三大瓶颈,提出异步IO流水线、梯度压缩+拓扑感知、算子融合+混合精度等策略。实测在128卡V100集群上训练速度提升3.2倍,GPU利用率提升至89.3%,训练成本降低70%。适用于大规模分布式深度学习任务的性能调优。
543 3
|
11月前
|
缓存 人工智能 负载均衡
PAI 重磅发布模型权重服务,大幅降低模型推理冷启动与扩容时长
阿里云人工智能平台PAI 平台推出模型权重服务,通过分布式缓存架构、RDMA高速传输、智能分片等技术,显著提升大语言模型部署效率,解决模型加载耗时过长的业界难题。实测显示,Qwen3-32B冷启动时间从953秒降至82秒(降幅91.4%),扩容时间缩短98.2%。