离群值检测中的隔离森林与鲁棒随机森林砍伐森林
Posted
技术标签:
【中文标题】离群值检测中的隔离森林与鲁棒随机森林砍伐森林【英文标题】:Isolation Forest vs Robust Random Cut Forest in outlier detection 【发布时间】:2020-11-16 19:35:30 【问题描述】:我正在研究异常值检测中的不同方法。我遇到了 sklearn 的 Isolation Forest 实现和 Amazon sagemaker 的 RRCF(鲁棒随机切割森林)实现。两者都是基于决策树的集成方法,旨在隔离每一个点。隔离步骤越多,该点就越有可能是内点,反之亦然。
但是,即使在查看了算法的原始论文之后,我也无法准确理解这两种算法之间的区别。它们的工作方式有何不同?其中一个比另一个更有效吗?
编辑:我正在添加研究论文的链接以获取更多信息,以及一些讨论主题的教程。
隔离森林:
PaperTutorial
稳健的随机森林砍伐:
PaperTutorial
【问题讨论】:
【参考方案1】:在我的部分答案中,我假设您指的是 Sklearn 的隔离森林。我相信这是 4 个主要区别:
代码可用性: Isolation Forest 在 Scikit-Learn (sklearn.ensemble.IsolationForest
) 中有一个流行的开源实现,而 Robust Random Cut Forest (RRCF) 的两个 AWS 实现都是闭源的,在Amazon Kinesis 和 Amazon SageMaker。不过在 GitHub 上有一个有趣的第三方 RRCF 开源实现:https://github.com/kLabUM/rrcf;但不确定它有多受欢迎
训练设计:RRCF 可以在流上工作,正如论文中强调的那样,并且在流分析服务 Kinesis Data Analytics 中公开。另一方面,partial_fit
方法的缺失暗示我 Sklearn 的 Isolation Forest 是一种仅批处理算法,无法轻松处理数据流
可扩展性: SageMaker RRCF 更具可扩展性。 Sklearn 的隔离森林是单机代码,但可以使用 n_jobs
参数在 CPU 上并行化。另一方面,SageMaker RRCF 可用于one machine or multiple machines。此外,它还支持 SageMaker Pipe 模式(通过 unix 管道流式传输数据),这使得它能够学习比磁盘上容纳的更大的数据
在每次递归隔离时对特征进行采样的方式:RRCF 赋予更高方差的维度权重(根据SageMaker doc),而我认为隔离森林是随机采样的,这是原因之一为什么 RRCF 有望在高维空间中表现更好(图片来自 RRCF 论文)
【讨论】:
非常感谢您的回复和解释! @Olivier Cruchant 感谢您的出色回答。能否请您看一下相关帖子here?【参考方案2】:我相信他们在分配异常分数的方式上也有所不同。 IF 的分数基于与根节点的距离。 RRCF 基于新点对树结构的改变程度(即,通过包含新点来改变树的大小)。这使得 RRCF 对样本量的敏感性降低。
【讨论】:
以上是关于离群值检测中的隔离森林与鲁棒随机森林砍伐森林的主要内容,如果未能解决你的问题,请参考以下文章