【问题标题】:Calculating AUC for Unsupervised LOF in sklearn在 sklearn 中计算无监督 LOF 的 AUC
【发布时间】:2018-12-11 01:28:24
【问题描述】:

在对数据集上的 LOF 模型运行 fit_predict 后,我​​正在尝试计算 ROCAUC

我正在使用sklearn 进行 LOF 实施。我知道我可以通过调用model.negative_outlier_factor_ 来取回分数,但我不确定如何将这些分数转换为概率来进行AUC 计算

这是为了与另一个模型进行比较。我该怎么做呢?

【问题讨论】:

    标签: python machine-learning scikit-learn anomaly-detection


    【解决方案1】:

    您不必将 model.negative_outlier_factor_ 转换为 ROC_AUC 计算的概率,只需一个相对分数就足够了。

    samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]]
    
    from sklearn.neighbors import LocalOutlierFactor
    lof = LocalOutlierFactor(n_neighbors=3,novelty=True)
    lof.fit(samples) 
    roc_auc(1/lof.score_samples(X_test),y_test)
    

    【讨论】:

    • 这听起来可能很愚蠢,但是 score_samples 函数在哪里呢?我在文档中看到它,但是当我在训练后调用时,调用 clf.score_samples 告诉我方法 score_samples 不存在。
    • 您已将新奇设置为 True 以启用 score_samples 选项
    猜你喜欢
    • 2018-05-25
    • 2018-10-01
    • 2017-09-04
    • 2020-05-13
    • 2019-11-08
    • 2020-09-21
    • 2017-11-10
    • 2013-02-28
    • 2019-06-16
    相关资源
    最近更新 更多