孤立点检测中的隔离林与鲁棒随机砍伐林

2024-10-03 11:13:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究异常值检测中的不同方法。我遇到了sklearn实现的隔离林和Amazon sagemaker实现的RRCF(健壮随机砍伐林)。这两种方法都是基于决策树的集成方法,旨在隔离每个点。隔离步骤越多,点越有可能是一个更内联的点,反之亦然

然而,即使在看了这些算法的原始论文之后,我仍然无法准确地理解这两种算法之间的区别。它们以什么方式工作?其中一个比另一个更有效率吗

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

隔离林:

PaperTutorial

健壮的随机砍伐森林:

PaperTutorial


Tags: 方法算法信息决策树编辑amazon链接方式
2条回答

在我的部分回答中,我假设你提到了Sklearn的隔离林。我认为这是四个主要区别:

  1. 代码可用性:隔离林在Scikit Learn(^{})中有一个流行的开源实现,而健壮随机砍伐林(RRCF)的AWS实现在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上并行化。另一方面,SageMaker RRCF可以在one machine or multiple machines上使用。此外,它还支持SageMaker管道模式(通过unix管道传输数据),这使得它能够在比磁盘上的数据大得多的数据上学习

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

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

相关问题 更多 >