随机森林中的随机性详解(附图文讲解)
本文将带你深入理解随机森林(Random Forest)算法中的“随机性”,帮助你掌握其核心原理和应用背景。
前言
在机器学习中,随机森林作为一种强大且灵活的集成学习方法,常被应用于分类、回归、特征选择等任务。
随机森林的优秀表现,很大程度上源自于其中引入的随机性。那么,这种“随机”到底体现在哪里?又是如何提升模型性能的呢?
今天,我们就结合一张非常形象的图(出自 Chris Albon 的笔记)来详细解读:
随机森林中的随机性
先来看图中的核心内容:
图中提到,随机森林的随机性体现在两点:
-
每棵树都有一个随机的观测样本。
-
每棵树在训练过程中,从观测值中有放回地随机抽取样本。
下面逐条进行详细解释:
1. 每棵树都有一个随机的观测样本(Bagging思想)
随机森林采用了Bootstrap Aggregating(简称 Bagging) 的思想,即在训练每棵决策树之前,都会从原始训练数据集中随机采样生成一个新的子集。
-
采样方式:有放回抽样(Bootstrap Sampling)
-
采样数量:通常与原数据集大小相同。
举例说明:
假设原始数据集有 1000 条记录,训练第 1 棵树时,会随机有放回地抽取1000条数据(其中可能有重复的记录),组成一个新的数据子集。
第 2 棵树也是同样方式,但抽取的数据子集不同。
这样做的好处:
-
每棵树训练时看到的数据稍有不同,避免过拟合到特定数据模式。
-
提升模型的整体泛化能力。
2. 每次分裂节点时,从特征子集中随机选择(Feature Randomness)
除了样本的随机性,随机森林还在特征选择上引入了随机性。
在普通决策树中,每次分裂节点时,会遍历所有特征,选出最佳分裂点;
而在随机森林中,每次分裂节点时,只在随机选取的一部分特征中寻找最佳分裂特征。
-
特征子集大小:
-
分类问题:通常是 √(特征总数)。
-
回归问题:通常是 特征总数的 1/3。
-
举例说明:
如果一共有 100 个特征,每次节点分裂时,随机选择 10 个特征进行比较和选择。
这样做的好处:
-
增强每棵树之间的差异性,进一步减少模型的方差(Variance)。
-
避免某些强势特征主导模型,提高整体的鲁棒性。
为什么引入随机性?
总结一下,引入随机性的目的是:
-
降低过拟合:不同的树看到的数据和特征都不同,避免某些噪声模式被过度学习。
-
提高准确率:集成多棵弱相关的树,平均后得到一个更稳定、更准确的预测结果。
-
提升模型鲁棒性:面对新的、未见过的数据时,整体性能更加稳定。
随机森林正是通过样本随机性 + 特征随机性这两个核心策略,达到了“高准确率、低过拟合”的理想效果。
总结
随机森林中的“随机性”,可以简单概括为两层:
-
对数据的随机性(Bagging,有放回抽样)
-
对特征的随机性(每次分裂时随机选择特征)
正是这双重随机策略,让随机森林在众多机器学习任务中表现出色,成为工业界和学术界广泛应用的重要算法。
参考资料
-
Random Forests - Leo Breiman 原论文
-
周志华 《机器学习》 第 8 章 集成学习
结束语
希望本文能帮助你深入理解随机森林中的随机性。如果你觉得有收获,欢迎点赞、收藏,或者留言交流!
更多机器学习、深度学习干货,持续更新中~