ROC曲线

这个是针对二分类的

基础概念

从分类的结果来看,有四种情况
真阳性(True positive (TP)):预测为阳性,实际为阳性
假阳性(False positive (FP)):预测为阳性,实际为阴性
假阴性(False negative (FN)):预测为阴性,实际为阳性
真阴性(True negative (TN)):预测为阴性,实际为阴性

这4个就构成了一个混淆矩阵
在这里插入图片描述
真阳性率 (TPR, true positive rate)
又称:命中率 (hit rate)、敏感度(sensitivity)、召回率(recall)
T P R = T P P = T P T P + F N TPR=\frac{TP}{P}=\frac{TP}{TP+FN} TPR=PTP=TP+FNTP

伪阳性率(FPR, false positive rate)
又称:错误命中率,假警报率 (false alarm rate)
F P R = F P N = F P F P + T N FPR=\frac{FP}{N}=\frac{FP}{FP+TN} FPR=NFP=FP+TNFP
真阴性率 (TNR,true negative rate)
又称:特异度 (SPC, specificity),selectivity
T N R = T N N = T N T N + F P TNR=\frac{TN}{N}=\frac{TN}{TN+FP} TNR=NTN=TN+FPTN
阳性预测值 (PPV,positive predictive value)
又称精确率(precision)
P P V = T P T P + F P PPV=\frac{TP}{TP+FP} PPV=TP+FPTP

ROC空间

横轴为伪阳性率(FPR),纵轴为真阳性率(TPR)

我们的二分类模型最后输出的是一个概率
给定一个阈值,就可以分为阳性或者是阴性(比如常见的0.5)
通过调整阈值,就可以在ROC空间上绘制多个点了

有几个特别的点
(0,0):FP,TP都为0,即所有样本预测为阴性
(1,1):FN,TN都为0,即所有样本预测为阳性
(0,1):FP,FN都为0,即预测都是对的

(0,0)到(1,1)的线段:随机猜
越接近左上角越好,越接近右下角越差
在这里插入图片描述

ROC曲线

将同一模型每个阈值的(FPR, TPR)坐标都画在ROC空间里,就成为特定模型的ROC曲线
在这里插入图片描述
可以调用

from sklearn import metrics
fpr, tpr, thresholds = metrics.roc_curve

roc_curve简单来说就是根据阈值算出伪阳性率和真阳性率

其中有一个参数drop_intermediate
可以去除掉一些水平线段的点
大致这种感觉
因为其实重要的是拐点,这个3个点,可以压缩成2个点
在这里插入图片描述

AUC

曲线下面积

一种计算方式是用排序后,计算梯形(类似定积分定义)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nightmare004

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值