sklearn.metrics.roc_curve使用简要说明
一、背景说明
小哥我是一名机器学习小白,刚开始学习sklearn。像部分刚入门的小白一样被混淆矩阵搞得头昏脑胀,最近碰到朋友咨询我roc_curve返回的结果是如何生成的时候,我一脸懵逼。shift+Tab查看系统说明没有看明白(本人英语水平很弱,亲一定要学好英语);然后,上网求助,也没有得到想要的答案。最后受这篇文章http://www.bubuko.com/infodetail-2718749.html的启发,自己重新摸索出规律,把自己一点小想法分享给大家,希望能帮助大家
二、TP、TN、FP、FN概念
## 三、TPR、TNR、FPR、FNR概念
1、TPR=tp/(tp+fn)
TPR:即真正率或灵敏度或召回率或查全率或真正率或功效,本来为正样本的样本被预测为正样本的总样本数量÷真实结果为正样本的总样本数
另:精确度或查准率公式等于tp/(tp+fp)
准确得分计算:(tp+tn)/(tp+fp+fn+tn)
2、FNR=fn/(tp+fn) =1-TPR
FNR:即假负率,本来为正样本的样本被预测为负样本的总样本数量÷真实结果为正样本的总样本数。
相当于假设检验中,犯第二类错误概率(β)
3、FPR=fp/(fp+tn)
FPR:即假正率,本来为负样本的样本被预测为正样本的总样本数量÷真实结果为负样本的总样本数。
相当于假设检验中,犯第一类错误概率(α)
4、TNR=tn/(fp+tn)=1-FPR
TNR:即真负率或特异度,本来为负样本的样本被预测为负样本的总样本数量÷真实结果为负样本的总样本数。
四、roc_curve运行机制简单剖析
4.1、roc_curve简单介绍
4.1.1 重要参数
y_true:真实结果数据,数据类型是数组
y_score:预测结果数据,可以是标签数据也可以是概率值,数据类型是形状 与y_true一致的数组
pos_label:默认为None,只有当标签数据如{0,1}、{-1,1}二分类数据才能默认;否则需要设置正样本值
4.1.2 返回的结果
返回三个数组结果分别是fpr(假正率),tpr(召回率),threshold(阈值)
4.2、第一种情形:y_score是标签数据
4.2.1、例子
代码
.
//python 代码
y_true=np.array([0, 0, 0, 1, 1, 0