评价指标ROC,PR

Reference: https://blog.csdn.net/u013385925/article/details/80385873 

之前实习的时候一直见公司里面的人说什么AUC,

实际AUC就是ROC曲线的面积

 

2针对一个二分类问题,将实例分成正类(postive)或者负类(negative)。但是实际中分类时,会出现四种情况.

(1)若一个实例是正类并且被预测为正类,即为真正类(True Postive TP)

(2)若一个实例是正类,但是被预测成为负类,即为假负类(False Negative FN)

(3)若一个实例是负类,但是被预测成为正类,即为假正类(False Postive FP)

(4)若一个实例是负类,但是被预测成为负类,即为真负类(True Negative TN)

TP:正确的肯定数目

FN:漏报,没有找到正确匹配的数目

FP:误报,没有的匹配不正确

TN:正确拒绝的非匹配数目

(1)真正类率(True Postive Rate)TPR: TP/(TP+FN),代表分类器预测的正类中实际正实例占所有正实例的比例。Sensitivity

(2)负正类率(False Postive Rate)FPR: FP/(FP+TN),代表分类器预测的正类中实际负实例占所有负实例的比例。1-Specificity

(3)真负类率(True Negative Rate)TNR: TN/(FP+TN),代表分类器预测的负类中实际负实例占所有负实例的比例,TNR=1-FPR。Specificity

 

PR是precise和recall曲线,和ROC的区别是,当测试集中的正负样本分布变化的时候,ROC曲线能够保持不变,而PR曲线则变化很厉害

 

 

ROC曲线中的四个点

接下来我们考虑ROC曲线图中的四个点和一条线。第一个点,(0,1),即FPR=0, TPR=1,这意味着FN(false negative)=0,并且FP(false positive)=0。Wow,这是一个完美的分类器,它将所有的样本都正确分类。第二个点,(1,0),即FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。第三个点,(0,0),即FPR=TPR=0,即FP(false positive)=TP(true positive)=0,可以发现该分类器预测所有的样本都为负样本(negative)。类似的,第四个点(1,1),分类器实际上预测所有的样本都为正样本。经过以上的分析,我们可以断言,ROC曲线越接近左上角,该分类器的性能越好。

 

详细介绍来源:https://www.douban.com/note/284051363/?type=like

tags = [1]*len(titlesPositive)
negTags=[0]*len(titlesNeg)
tags.extend(negTags)
# compute roc
from sklearn import metrics

fpr, tpr, thresholds = metrics.roc_curve(np.asarray(tags), np.asarray(scores), pos_label=1)
roc_auc = metrics.auc(fpr, tpr)
tags是实际的label,这里的数据的实际label都是为1,scores是模型预测后的score,pos_label=1表示tags中为1的是正例
posted @ 2016-10-27 10:21  simple_wxl  阅读(819)  评论(0编辑  收藏  举报