ScikitLearn的IsolationForest决策函数得分的范围是多少?

2024-06-25 23:23:28 发布

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

scikitlearn的IsolationForest类有一个方法decision_function,它返回输入样本的异常分数。然而,文件并没有说明这些分数的可能范围,只说明“分数越低,越不正常”

编辑:在阅读了jmunsch的评论之后,我再次查看了源代码,下面是我最新的猜测: 如果scores formula中的指数始终为负,则分数将始终介于0和1之间,这意味着返回的范围是[-0.5,0.5],因为方法返回了0.5 - scores。但我不确定指数是否总是负数。在


Tags: 文件方法编辑源代码评论function指数分数
1条回答
网友
1楼 · 发布于 2024-06-25 23:23:28

在Scikit Learn的IsolationForest中,decision_函数返回的值范围为[-0.5,0.5],其中-.5是最不正常的。

我相信,而且从未见过其他证据。scikitlearn的IsolationForest文档引用了一篇论文Isolation-based Anomaly Detection by Liu et al.,其中等式2定义了异常分数。在本文中,异常分数在0到1之间,其中1是最异常的。在scores function中,您在第267行引用了变量深度。平均值(轴=1)对应于E(h(x))和平均路径长度(self.max_示例_))对应于纸中的c(psi)。因此,在第272行,当函数返回1减去分数时,我们得到[-0.5,0.5]的界限。在

编辑/奖金: 有效的隔离林预测方法是将决策函数值与存储在model.threshold_中的阈值进行比较。因此,在对某些数据调用模型的predict方法后,异常项是满足条件的相同项:model.decision_function(data) < model.threshold_。在

相关问题 更多 >