【问题标题】:Isolation Forest vs Robust Random Cut Forest in outlier detection离群值检测中的隔离森林与鲁棒随机森林砍伐森林
【发布时间】:2020-11-16 19:35:30
【问题描述】:

我正在研究异常值检测中的不同方法。我遇到了 sklearn 的 Isolation Forest 实现和 Amazon sagemaker 的 RRCF(鲁棒随机切割森林)实现。两者都是基于决策树的集成方法,旨在隔离每一个点。隔离步骤越多,该点就越有可能是内点,反之亦然。

但是,即使在查看了算法的原始论文之后,我也无法准确理解这两种算法之间的区别。它们的工作方式有何不同?其中一个比另一个更有效吗?

编辑:我正在添加研究论文的链接以获取更多信息,以及一些讨论主题的教程。

隔离森林:

PaperTutorial

稳健的随机森林砍伐:

PaperTutorial

【问题讨论】:

    标签: python scikit-learn amazon-sagemaker outliers anomaly-detection


    【解决方案1】:

    在我的部分答案中,我假设您指的是 Sklearn 的隔离森林。我相信这是 4 个主要区别:

    1. 代码可用性: Isolation Forest 在 Scikit-Learn (sklearn.ensemble.IsolationForest) 中有一个流行的开源实现,而 Robust Random Cut Forest (RRCF) 的两个 AWS 实现都是闭源的,在Amazon KinesisAmazon SageMaker。不过在 GitHub 上有一个有趣的第三方 RRCF 开源实现:https://github.com/kLabUM/rrcf;但不确定它有多受欢迎

    2. 训练设计:RRCF 可以在流上工作,正如论文中强调的那样,并且在流分析服务 Kinesis Data Analytics 中公开。另一方面,partial_fit 方法的缺失暗示我 Sklearn 的 Isolation Forest 是一种仅批处理算法,无法轻松处理数据流

    3. 可扩展性: SageMaker RRCF 更具可扩展性。 Sklearn 的隔离森林是单机代码,但可以使用 n_jobs 参数在 CPU 上并行化。另一方面,SageMaker RRCF 可用于one machine or multiple machines。此外,它还支持 SageMaker Pipe 模式(通过 unix 管道流式传输数据),这使得它能够学习比磁盘上容纳的更大的数据

    4. 在每次递归隔离时对特征进行采样的方式:RRCF 赋予更高方差的维度权重(根据SageMaker doc),而我认为隔离森林是随机采样的,这是原因之一为什么 RRCF 有望在高维空间中表现更好(图片来自 RRCF 论文)

    【讨论】:

    • 非常感谢您的回复和解释!
    • @Olivier Cruchant 感谢您的出色回答。能否请您看一下相关帖子here
    【解决方案2】:

    我相信他们在分配异常分数的方式上也有所不同。 IF 的分数基于与根节点的距离。 RRCF 基于新点对树结构的改变程度(即,通过包含新点来改变树的大小)。这使得 RRCF 对样本量的敏感性降低。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      • 2017-03-15
      • 2018-09-10
      • 2019-07-11
      • 1970-01-01
      相关资源
      最近更新 更多