如果我在 CNN 中获得相同的 AUC 和 AUROC 值,这意味着什么?

What does it mean if I am getting the same AUC and AUROC value in a CNN?

我正在 运行 构建一个卷积神经网络。完成 运行ning 后,我使用一些指标来评估模型的性能。其中 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 是 table 的形式:[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)。难道我做错了什么?还是正常?

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

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

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