python - 使用 sklearn 绘制 ROC 曲线以进行硬多类预测
问题描述
我将某些对象分类为 5 个类别,标签为 [0,1,2,3,4],由人类。
一组真正的标签:true_label = [3, 4, 2, 1, 0, 2 ............, 3]
一组预测标签:predictions = [3, 4, 2, 2, 0, 2, ........., 3]
如何绘制具有如此硬类预测的 ROC 曲线?绘制 ROC 曲线(使用 sklearn API)似乎需要根据概率进行预测,但人类的分类预测没有这样的概率。人类无法给出某个预测的“概率”,他/她只是认为对象是2
,而不是2 with 93% probability
。
如何使用 numpy 列表true_label
及predictions
以上绘制 ROC 曲线?
解决方案
您无法使用预测标签绘制 ROC 曲线。
与任何 ROC 曲线函数一样,sklearn 的roc_curve()
设计目的是接收一组真实标签和一组概率。
您可以在这个问题中找到更详细的答案,但本质上,该函数使用每个预测概率作为阈值来产生一个预测标签数组。反过来,每个阈值都会产生一个真阳性率和一个假阳性率。对预测概率数组中的每个元素重复此过程会产生 ROC 曲线。
如果你只有预测的标签,我建议你测量准确率、真阳性率、假阳性率等。
from sklearn.metrics import confusion_matrix
confusion_matrix(y_true=true_label, y_pred=predictions)
推荐阅读
- google-apps-script - 如何将谷歌电子表格连接到我的 MariaDB?
- c++ - 多个但唯一的类继承
- codeship - 根据更改的文件在单个 repo 中选择 codeship 步骤
- c# - 子项不继承 ASP.Net MenuItem 格式
- android - React-native:是否可以更改键盘
- php - 选择不填充来自 WP_Query 的值
- python - 以 0.2 -> 0.1 -> 0.09 -> 0.08 -> ... -> 0.02 -> 0.01 -> 0.009 的模式减少小数的算法
- sql - 嵌套 SQL 查询
- intellij-idea - Intellij-idea 中不会突出显示名为“auth_actions.dart”的文件
- php - 在 woocommerce 3 中随处显示变体的产品属性(后端 + 前端 + 电子邮件通知)