异常值检测中的隔离森林与稳健的随机砍伐森林
Isolation Forest vs Robust Random Cut Forest in outlier detection
我正在研究异常值检测的不同方法。我遇到了 sklearn 的 Isolation Forest 实施和 Amazon sagemaker 的 RRCF(Robust Random Cut Forest)实施。两者都是基于决策树的集成方法,旨在隔离每个点。隔离步骤越多,该点越有可能是内点,反之亦然。
然而,即使看了算法的原始论文,我也无法准确理解这两种算法之间的区别。它们的工作方式有何不同?其中一个比另一个更有效吗?
编辑:我正在添加研究论文的链接以获取更多信息,以及一些讨论主题的教程。
隔离林:
稳健的随机砍伐森林:
在我的部分回答中,我假设您指的是 Sklearn 的隔离森林。我相信这些是 4 个主要区别:
代码可用性: Isolation Forest 在 Scikit-Learn 中有一个流行的开源实现(sklearn.ensemble.IsolationForest
), while both AWS implementation of Robust Random Cut Forest (RRCF) are closed-source, in Amazon Kinesis and Amazon SageMaker. There is an interesting third party RRCF open-source implementation on GitHub though: https://github.com/kLabUM/rrcf;但不确定它有多流行
训练设计: RRCF 可以在流上工作,正如论文中所强调的以及流分析服务 Kinesis Data Analytics 中所公开的那样。另一方面,partial_fit
方法的缺失暗示我 Sklearn 的隔离森林是一种无法轻易处理数据流的批处理算法
可扩展性: SageMaker RRCF 更具可扩展性。 Sklearn 的 Isolation Forest 是单机代码,但可以使用 n_jobs
参数在 CPU 上并行化。另一方面,SageMaker RRCF 可以在 one machine or multiple machines 上使用。此外,它还支持 SageMaker 管道模式(通过 unix 管道传输数据),这使得它能够学习比磁盘上容纳的数据大得多的数据
在每次递归隔离时对特征进行采样的方式:RRCF 为具有较高方差的维度赋予更多权重(根据 SageMaker doc),而我认为隔离森林样本是随机的,这也是为什么 RRCF 有望在高维中表现更好的原因之一 space(图片来自 RRCF 论文)
我相信他们在分配异常分数的方式上也有所不同。 IF 的分数基于与根节点的距离。 RRCF 基于新点对树结构的改变程度(即,通过包含新点来改变树的大小)。这使得 RRCF 对样本量的敏感性降低。
我正在研究异常值检测的不同方法。我遇到了 sklearn 的 Isolation Forest 实施和 Amazon sagemaker 的 RRCF(Robust Random Cut Forest)实施。两者都是基于决策树的集成方法,旨在隔离每个点。隔离步骤越多,该点越有可能是内点,反之亦然。
然而,即使看了算法的原始论文,我也无法准确理解这两种算法之间的区别。它们的工作方式有何不同?其中一个比另一个更有效吗?
编辑:我正在添加研究论文的链接以获取更多信息,以及一些讨论主题的教程。
隔离林:
稳健的随机砍伐森林:
在我的部分回答中,我假设您指的是 Sklearn 的隔离森林。我相信这些是 4 个主要区别:
代码可用性: Isolation Forest 在 Scikit-Learn 中有一个流行的开源实现(
sklearn.ensemble.IsolationForest
), while both AWS implementation of Robust Random Cut Forest (RRCF) are closed-source, in Amazon Kinesis and Amazon SageMaker. There is an interesting third party RRCF open-source implementation on GitHub though: https://github.com/kLabUM/rrcf;但不确定它有多流行训练设计: RRCF 可以在流上工作,正如论文中所强调的以及流分析服务 Kinesis Data Analytics 中所公开的那样。另一方面,
partial_fit
方法的缺失暗示我 Sklearn 的隔离森林是一种无法轻易处理数据流的批处理算法可扩展性: SageMaker RRCF 更具可扩展性。 Sklearn 的 Isolation Forest 是单机代码,但可以使用
n_jobs
参数在 CPU 上并行化。另一方面,SageMaker RRCF 可以在 one machine or multiple machines 上使用。此外,它还支持 SageMaker 管道模式(通过 unix 管道传输数据),这使得它能够学习比磁盘上容纳的数据大得多的数据在每次递归隔离时对特征进行采样的方式:RRCF 为具有较高方差的维度赋予更多权重(根据 SageMaker doc),而我认为隔离森林样本是随机的,这也是为什么 RRCF 有望在高维中表现更好的原因之一 space(图片来自 RRCF 论文)
我相信他们在分配异常分数的方式上也有所不同。 IF 的分数基于与根节点的距离。 RRCF 基于新点对树结构的改变程度(即,通过包含新点来改变树的大小)。这使得 RRCF 对样本量的敏感性降低。