Isolation Forest Prediction Mechanics:它是否将值与每棵树(以及原始训练子集)进行比较?

数据挖掘 随机森林 决策树 异常检测
2022-03-12 07:55:17

所以我了解隔离林如何工作的一般概念,但我无法理解模型如何对新数据进行预测。

它是否通过训练模型中的每棵树(分别)传递每个新点,然后使用完全相同的原始子集数据(加上这个单个新点)运行完全相同的拆分,以确定步数(异常分数)直到这个新点被孤立了?然后将该分数与训练模型时设置的异常分数阈值进行比较?

2个回答

您可以在https://github.com/scikit-learn/scikit-learn/blob/a24c8b46/sklearn/ensemble/iforest.py#L229找到 Python 中隔离森林的 sklearn 实现

它计算对新样本进行分类所需的平均路径深度。它们相对于理论平均路径长度进行评分。不使用原始训练数据,只使用学习树。

是的,它通过训练模型中的每棵树(分别)传递每个新点,然后使用完全相同的原始子集数据(加上这个单个新点)运行完全相同的拆分,以确定步数(异常分数)直到这个新点被孤立。然后它将平均从该测试实例的所有树计算的路径长度,这将是最终的异常分数,然后在 0-1 范围内进行归一化。