【问题标题】:What does it mean if I am getting the same AUC and AUROC value in a CNN?如果我在 CNN 中获得相同的 AUC 和 AUROC 值,这意味着什么?
【发布时间】:2021-07-10 13:47:22
【问题描述】:

我正在运行一个卷积神经网络。完成运行后,我使用一些指标来评估模型的性能。其中 2 个指标是来自 sklearn 的 auc 和 roc_auc_score

AUC函数https://scikit-learn.org/stable/modules/generated/sklearn.metrics.auc.html?highlight=auc#sklearn.metrics.auc

AUROC 函数https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html#sklearn.metrics.roc_auc_score

我使用的代码如下:

print(pred)
fpr, tpr, thresholds = metrics.roc_curve(true_classes, pred, pos_label=1)
print("-----AUC-----")
print(metrics.auc(fpr, tpr))
print("----ROC AUC-----")
print(metrics.roc_auc_score(true_classes, pred))

其中 true_classes 是一个表格,其形式为:[0 1 0 1 1 0] 其中 1 是正标签,0 是负标签。

而pred是模型的预测:

prediction = classifier.predict(test_final)
prediction1 = []
predictions = []
for preds in prediction:
    prediction1.append(preds[0])

pred = prediction1

但是,无论我运行多少次测试,我都会得到相同的 AUC 和 ROC AUC 值(我的意思是每次测试中的 AUC 和 ROC AUC 值都是相同的。并不是说它们在所有测试。例如,对于测试 1,我得到 AUC = 0.987 和 ROC_AUC = 0.987,对于测试 2,我得到 AUC = 0.95 和 ROC_AUC = 0.95)。难道我做错了什么?还是正常?

【问题讨论】:

    标签: python scikit-learn roc auc


    【解决方案1】:

    根据链接的文档,metrics.auc 是根据曲线点计算曲线下面积的一般案例方法。

    metrics.roc_auc_score是一种用于计算ROC曲线下面积的具体案例方法。

    如果您使用相同的数据来计算两者,您不会期望看到不同的结果,因为metrics.roc_auc_score 将做与metrics.auc 相同的事情,并且很可能使用metrics.auc 方法本身,在引擎盖(即针对特定任务计算 ROC 曲线下面积的通用方法)。

    【讨论】:

    • 哦,我明白了。我很困惑,我以为他们在计算不同的东西。谢谢!
    猜你喜欢
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 2012-05-29
    • 2016-06-28
    • 2015-04-05
    相关资源
    最近更新 更多