2

我目前正在研究异常检测算法。我阅读了比较基于 AUC 值的无监督异常算法的论文。例如,我有来自 Elliptic Envelope 和 Isolation Forest 的异常分数和异常类。我如何根据 AUC 值比较这两种算法。

我正在寻找一个 python 代码示例。

谢谢

4

2 回答 2

2

问题解决了。到目前为止我完成的步骤;

1) 在异常函数之后收集类和分数 2) 将异常分数转换为 0 - 100 等级以便更好地与不同的算法进行比较 3) Auc 要求此变量是数组。我的错误是将它们用作一直返回“nan”的数据框列。

Python脚本:

#outlier_class and outlier_score must be array
fpr,tpr,thresholds_sorted=metrics.roc_curve(outlier_class,outlier_score)
aucvalue_sorted=metrics.auc(fpr,tpr)
aucvalue_sorted

问候,

塞奇金·丁奇

于 2017-12-12T14:48:37.193 回答
0

虽然你已经解决了你的问题,我的 2 美分 :)

一旦您决定使用哪种算法方法来比较它们(可以说是您的“评估协议”),那么您可能会对在实际数据集上运行挑战者的方法感兴趣。

教程基于示例(比较多个数据集上的多项式拟合算法)解释了如何做到这一点。

(我是作者,欢迎在github页面提供反馈!)

于 2018-12-13T16:36:30.573 回答