gpt4 book ai didi

python - scikit-learn roc_auc_score() 返回精度值

转载 作者:太空狗 更新时间:2023-10-29 22:11:18 34 4
gpt4 key购买 nike

我正在尝试使用 sklearn.metrics.roc_auc_score 使用以下方法计算 ROC 曲线下的面积:

roc_auc = sklearn.metrics.roc_auc_score(actual, predicted)

其中 actual 是一个带有真实分类标签的二元向量,predicted 是一个带有我的分类器预测的分类标签的二元向量。

但是,我得到的 roc_auc 的值与准确度值(标签被正确预测的样本的比例)完全相似。这不是一次性的事情。我在不同的参数值上尝试我的分类器,每次我都得到相同的结果。

我在这里做错了什么?

最佳答案

这是因为您传递的是分类器的决策而不是它计算的分数。有一个 question on this on SO recently以及对 scikit-learn 的相关拉取请求。

ROC 曲线的点(及其下方的区域)是您研究分类阈值变化时的精确召回权衡。默认情况下,在二进制分类任务中,如果分类器的分数是 > 0.5,则预测 class1,否则预测 class0。当您更改该阈值时,您会得到一条类似于 this 的曲线。 .曲线越高(曲线下方的面积越大),分类器越好。但是,要获得此曲线,您需要访问分类器的分数,而不是其决策。否则,无论决策阈值是多少,决策都保持不变,并且 AUC 退化为准确性。

您使用的是哪个分类器?

关于python - scikit-learn roc_auc_score() 返回精度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22318922/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com