我目前正在研究异常检测算法。我阅读了比较基于 AUC 值的无监督异常算法的论文。例如,我有来自 Elliptic Envelope 和 Isolation Forest 的异常分数和异常类。我如何根据 AUC 值比较这两种算法。
我正在寻找一个 python 代码示例。
谢谢
我目前正在研究异常检测算法。我阅读了比较基于 AUC 值的无监督异常算法的论文。例如,我有来自 Elliptic Envelope 和 Isolation Forest 的异常分数和异常类。我如何根据 AUC 值比较这两种算法。
我正在寻找一个 python 代码示例。
谢谢
问题解决了。到目前为止我完成的步骤;
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
问候,
塞奇金·丁奇
虽然你已经解决了你的问题,我的 2 美分 :)
一旦您决定使用哪种算法方法来比较它们(可以说是您的“评估协议”),那么您可能会对在实际数据集上运行挑战者的方法感兴趣。
本教程基于示例(比较多个数据集上的多项式拟合算法)解释了如何做到这一点。
(我是作者,欢迎在github页面提供反馈!)