菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
240
0

分类器评估方法:ROC曲线

原创
05/13 14:22
阅读数 15837

注:本文是人工智能研究网的学习笔记

ROC是什么

二元分类器(binary classifier)的分类结果

ROC空间

最好的预测模型在左上角,代表100%的灵敏度和0%的虚警率,被称为完美分类器。

一个随机猜测模型。会给出从左下角到右上角的沿着对角线的点(对角线被称作line of no-discrimation)。

对角线上的的点代表了好的分配结果,对角线以下的点代表不好的分配结果,但是可以通过翻转变成好的分类器。

绘制ROC曲线

AUC--ROC曲线下的面积

当曲线差不多时,求面积, 新的研究表名,AUC曲线存在一些问题。

roc_curve模块

metrics.roc_curve(y_true, y_score, pos_label=None, sample_weight=None, drop_intermediate=True)

参数:

  • y_true: 真正的二元类标签,如果不是二元分类,需要使用pos_label显式的指明。
  • y_score: 预测得分
  • pos_label: 多分类的时候,指定将哪一个看成正样本,默认是None。
  • drop_intermediate: 指定是否丢弃一些次优的阈值,将不会再roc曲线上显示。曲线较多的时候,可以使用。

返回值:

  • fpr:array,shape=[>2]不断增长的虚警率(假正率)
  • tpr:array,shape=[>2]不断增长的真正率
  • thresholds:array,shape=[n_thresholds]阈值
from sklearn.metrics import roc_curve,roc_auc_score
y = np.array([1,1,2,2])
scores = np.array([0.1, 0.4, 0.35, 0.8])
fpr, tpr, thresholds = roc_curve(y, scores, pos_label=2)
print(fpr)
print(tpr)
print(thresholds)

发表评论

0/200
240 点赞
0 评论
收藏