随机森林

集成学习

随机森林

AdaBoost 算法

提升树

梯度提升树(GBDT)

XGBoost



一、随机森林算法

随机森林(Random ForestRF)是 Bagging 的一个扩展变体。

RF 的扩展包括两方面(除了这两点,与 Bagging 没什么不同):

  • CART 决策树为基学习器构建 Bagging 集成。

  • 在决策树的训练过程中引入随机特征选择

具体来说,传统决策树在选择划分特征时是在当前结点的所有特征集合中(假设有 d 个特征)选择一个最优特征;而在 RF 中,对基决策树的每个结点,先从该结点的特征集合中随机选择一个包含 k 个特征的子集,然后再从这个子集中选择一个最优特征用于划分。这与 Bagging 中基学习器的“多样性”仅通过样本扰动(通过对初始训练集采用)而不同,随机森林中基学习器的多样性不仅来自样本扰动,还来自特征扰动,进一步提升模型的泛化能力

参数 k 控制了随机性的引入程度;若令 k=d ,则基决策树的构建与传统决策树相同;若令 k=1,则随机选择一个特征用于划分;一般情况下,推荐值 k=log2d



二、随机森林的推广

RF 不仅用于分类、回归,还可用于特征转换、异常值检测等。下面对 RF 家族的算法做一总结。


1. extra trees

extra treesRF 的一个变种,与 RF 区别:

  • 对于每个决策树的训练,RF自助采样法来选择采样集作为每个决策树的训练集,而 extra trees 每个决策树采用的原始训练集
  • 在选定了划分特征后,RF 的决策树会基于基尼系数,均方误差之类的原则,选择一个最优的特征值来划分决策树,这和传统的决策树相同。但是 extra trees 比较的激进,他会随机的选择一个特征值来划分决策树

2. Totally Random Trees Embedding

Totally Random Trees Embedding,简称 TRTE。是一种非监督学习的数据转换方法。它将低维的数据集映射到高维,从而让映射到高维的数据更好的运用于分类、回归模型。我们知道,在支持向量机中运用核方法来将低维的数据集映射到高维,此处 TRTE 提供了另外一种方法。

TRTE 在数据转化的过程也使用了类似于 RF 的方法,建立 T 个决策树来拟合数据。当决策树建立完毕后,数据集里的每个数据在 T 个决策树中叶子节点的位置也定下来了。比如我们有 3 个决策树,每个决策树有 5个叶子节点,某个数据特征 x 划分到第一个决策树的第 2 个叶子节点,第二个决策树的第 3 个叶子节点,第三个决策树的第 5 个叶子节点。则 x 映射后的特征编码为 (0,1,0,0,0,    0,0,1,0,0,    0,0,0,0,1),有 15 维的高维特征。这里特征维度之间加上空格是为了强调三棵决策树各自的子编码。

映射到高维特征后,可以继续使用监督学习的各种分类回归算法。


3. Isolation Forest

IsolationForest,简称 IForest 是一种异常点检测的方法。它也使用了类似于 RF 的方法来检测异常点。

对于在 T 个决策树的样本集,IForest 也会对训练集进行随机采样,但是采样个数不需要和 RF 一样,对于 RF,需要采样到采样集样本个数等于训练集个数。但是 IForest 不需要采样这么多,一般来说,采样个数要远远小于训练集个数?为什么呢?因为我们的目的是异常点检测,只需要部分的样本我们一般就可以将异常点区别出来了。

对于每一个决策树的建立, IForest 采用随机选择一个划分特征,对划分特征随机选择一个划分阈值。这点也和RF 不同。

另外,IForest 一般会选择一个比较小的最大决策树深度 max_depth,原因同样本采集,用少量的异常点检测一般不需要这么大规模的决策树。

对于异常点的判断,则是将测试样本点 x 拟合到 T 棵决策树。计算在每棵决策树上该样本的叶子节点的深度ht(x)。从而可以计算出平均高度 h(x)。此时我们用下面的公式计算样本点 x 的异常概率:

s(x,m)=2h(x)c(m)

其中,m 为样本个数,c(m) 的表达式为:

c(m)=2ln(m1)+2ξ2m1m,    ξ

s(x,m) 的取值范围是 [0,1],取值越接近于 1,是异常点的概率越大。



三、随机森林小结

RF 作为一个可以高度并行化的算法,RF 在大数据时候大有可为。

RF 的主要优点有:

① 训练可以高度并行化,对于大数据时代的大样本训练速度有优势。个人觉得这是的最主要的优点。

② 由于可以随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍然能高效的训练模型。

③ 在训练后,可以给出各个特征对于输出的重要性

④ 由于采用了随机采样,训练出的模型的方差小,泛化能力强。

⑤ 相对于Boosting系列的Adaboost和GBDT, RF实现比较简单。

⑥ 对部分特征缺失不敏感。

RF 的主要缺点有:

① 在某些噪音比较大的样本集上,RF模型容易陷入过拟合。

② 取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果。



来自:Bagging与随机森林算法原理小结

posted @   做梦当财神  阅读(18514)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示