gpt4 book ai didi

python - roc_auc_score - y_true 中只有一类

转载 作者:太空狗 更新时间:2023-10-29 22:20:58 46 4
gpt4 key购买 nike

我正在对现有数据框执行 k-fold XV,我需要获得 AUC 分数。问题是 - 有时测试数据只包含 0,而不包含 1!

我尝试使用 this例如,但数字不同:

import numpy as np
from sklearn.metrics import roc_auc_score
y_true = np.array([0, 0, 0, 0])
y_scores = np.array([1, 0, 0, 0])
roc_auc_score(y_true, y_scores)

我得到这个异常:

ValueError: Only one class present in y_true. ROC AUC score is not defined in that case.

在这种情况下是否有任何解决方法可以使其正常工作?

最佳答案

您可以使用 try-except 来防止错误:

import numpy as np
from sklearn.metrics import roc_auc_score
y_true = np.array([0, 0, 0, 0])
y_scores = np.array([1, 0, 0, 0])
try:
roc_auc_score(y_true, y_scores)
except ValueError:
pass

现在,如果只有一类,您还可以将 roc_auc_score 设置为零。但是,我不会这样做。我猜你的测试数据是高度不平衡的。我建议改用分层 K 折,这样您至少可以同时使用这两个类。

关于python - roc_auc_score - y_true 中只有一类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45139163/

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