python - ROC 曲线 sklearn 概率与分数
问题描述
我不明白如何解释sklearn.metrics.roc_curve(x, y)
当我的 y 是预测标签而不是概率分数时的输出。
这是简化的代码示例:
true = [1, 1, 0, 1, 0, 1, 0]
predict = [0, 1, 1, 1, 0, 1, 0]
fpr, tpr, threshold = roc_curve(truth, predict)
>>> fpr
Output: array([0. , 0.33333333, 1. ])
>>> tpr
Output: array([0. , 0.75, 1. ])
>>> threshold
Output: array([2, 1, 0])
我不明白如何解释tpr
,fpr
和的这个输出threshold
。我的意思是我理解输出是什么,但我不明白如何解释每个假阳性率、真阳性率和阈值的三个值。
另外,当我使用概率分数时:
truth = [1, 1, 0, 1, 0, 1, 0]
scores = [0.2, 0.78, 0.95, 0.65, 0.33, 0.73, 0.34]
fpr_score, tpr_score, threshold_score = roc_curve(truth, scores)
>>> fpr_score
Ouput: array([0. , 0.33333333, 0.33333333, 1. , 1. ])
>>> tpr_score
Output: array([0. , 0. , 0.75, 0.75, 1. ])
>>> threshold
Output: array([1.95, 0.95, 0.65, 0.33, 0.2 ])
在这里,我在输出中得到不同的值,这一次它具有更好的分辨率。谁能解释如何在这两种情况下解释值?
我的主要目标是调整阈值以获得高 AUC 分数,因此我需要根据阈值选择将类预测设置为正或负,但这意味着我将使用类标签y
,因此我将只有三个值每个 FPR、TPR 和阈值。
解决方案
推荐阅读
- typescript - 在 RolesGuard 中使用 JwtService 解码 JWT 令牌并在不使用护照的情况下获取用户角色
- spring - 如何将借记卡支付与 Spring Boot 应用程序集成?
- android - 修改 Android 中默认拨号器应用程序上显示的数据
- java - 将用户输入的数字推入二维数组以形成 4 列和 3 行
- html - 调整浏览器宽度和封面照片必须保留裁剪图像的中心
- ruby-on-rails - 如何使用 or 条件加入两个范围?
- flutter - 我有两个图像用于在颤振中固定或取消固定数据
- reactjs - 类型“X[]”上不存在属性“customProperty”。打字稿反应。TS2339
- python - Python - 集合的交集只返回第一个值
- r - R merge() rbinds 而不是合并