离群森林与稳健随机砍伐森林的异常检测

时间:2020-07-27 12:59:41

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

我正在研究异常值检测中的不同方法。我遇到了sklearn的Isolation Forest实施和Amazon sagemaker的RRCF(Robust Random Cut Forest)实施。两者都是基于决策树的集成方法,旨在隔离每个点。隔离步骤越多,该点越可能成为一个惯常值,反之亦然。

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

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

隔离林:

Paper Tutorial

强健的随机砍伐森林:

Paper Tutorial

2 个答案:

答案 0 :(得分:4)

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

  1. 代码可用性::“隔离林”在Scikit-Learn(sklearn.ensemble.IsolationForest)中具有流行的开源实施,而两种AWS实施的“鲁棒随机砍伐林(RRCF)”都是封闭源代码,位于Amazon KinesisAmazon SageMaker中。 GitHub上有一个有趣的第三方RRCF开源实现:https://github.com/kLabUM/rrcf;但不确定它有多流行

  2. 培训设计::RRCF可以在流上工作,如本文中突出显示和流分析服务Kinesis Data Analytics中所公开。另一方面,partial_fit方法的缺失提示我Sklearn的隔离林是仅用于批处理的算法,无法轻松处理数据流

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

  4. 每种递归隔离的特征采样方式:RRCF赋予具有较高方差的权重,且方差较高(根据SageMaker doc),而我认为隔离林样本是随机的,这就是为什么RRCF有望在高维空间中表现更好的原因之一(摘自RRCF论文) enter image description here

答案 1 :(得分:0)

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