取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
选择语言 隐藏翻译栏
查看原发布的话题

隔离森林和隔离树

孤立森林因其在不同基准测试中的普遍有效性和强大的可扩展性而成为近年来最受欢迎的异常检测器之一。它具有计算效率,并且已被证明在异常检测中非常有效。

undefined

孤立森林与其他森林的比较( src


该算法通过随机选择一个特征,然后在所选特征的最大值和最小值之间随机选择一个分割值来隔离观察值。因此,该实现与分区树和引导树相同,不同之处在于目标函数应该是均匀的(尝试用恒定的 Y 值分割变量)。

然而,如果你在 JMP 中尝试这个,它不起作用。

通过在 JMP 中加入孤立森林,类似预测因子筛选,用户可以使用强大的工具来检测数据中的异常。这可以帮助他们识别可能需要进一步调查的异常模式或行为。

本文研究了 IForest 的工作原理并改进了它的一些局限性(即扩展隔离森林)

https://hal.science/hal-03537102/document

Scikit-learn 文档

https://scikit-learn.org/stable/modules/outlier_detection.html

这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。

14 条评论
Victor_G
Super User

很好的建议@FN

 

除了隔离森林,

考虑扩展隔离森林而不是“常规”隔离森林算法也可能很有趣,因为它在决策边界方向(不仅是水平或垂直)上提供了更大的灵活性。

这是一篇文章,解释了扩展隔离森林的工作原理以及如何使用它: https://link.medium.com/TL1Lxirf9pb

FN
Level VI

事实上,延伸的树木或森林会更好。
通过您的链接,扩展的原始论文在这里: https://arxiv.org/pdf/1811.02141.pdf




mia_stephens
Staff
状态已更改为: Investigating

感谢您的请求@FN 。 我们目前正在调查。

FN
Level VI

谢谢,米娅。 请注意,隔离树的实现与分区树相同。


“唯一”的区别是分区是随机发生的。

 

在 JMP 中,如果您引入没有任何可变性的 Y(例如全 0),JMP 不会执行任何分割(这是预期的结果,否则解在某个点将是随机的)。

 

在文献中,这被称为 Extratrees。

https://en.wikipedia.org/wiki/Random_forest#ExtraTrees

FN
Level VI

回到此请求,看看是否有任何更新。


本文总结了 JMP 为何应该实施这一举措。


“在 52 个真实世界多变量表格数据集上对 33 种无监督异常检测算法进行了比较,这是迄今为止最大规模的无监督异常检测算法比较。在这个数据集集合上,EIF(扩展隔离森林)算法明显优于大多数其他算法。”

FN
Level VI

你好@mia_stephens ,有什么更新吗?谢谢

mia_stephens
Staff

您好@FN ,我们对使用 JMP 18 中的 Python 集成和Python“isotree”包进行了一些研究,使用 JSL 在 JMP 中创建对话框窗口。这看起来很有希望,但目前我们没有任何可以分享的内容。想知道您是否看过这种方法?

FN
Level VI

谢谢,米娅。

正如我之前的评论中所分享的,这种方法在 JMP 中非常有用,因为它优于其他具有全局异常值的异常检测算法。

KNN 距离(在 JMP 的异常值分析菜单内)适用于局部异常值。

添加例如孤立森林将有助于快速识别和删除海量数据集中的所有类型的异常值。
针对真实世界数据的无监督异常检测算法:我们需要多少个?

当没有给出 Y 时,分区树也可以被修改来随机分割数据。


abmayfield
Level VI

我刚刚看了 Ross M 主持的 JMP-Python 集成网络研讨会(非常棒),他在会上重点介绍了 Python 中的这种方法,但似乎在 JMP 中也可以相对轻松地完成。它似乎代表了 JMP 已经采用的多种技术,例如分区树和多变量离群值分析。

mia_stephens
Staff
状态已更改为: Yes, Stay Tuned!

正在作为 Pythonic 插件进行开发。