二分类的性能指标:PR曲线、ROC曲线、AUC的基本相关概念
PR 曲线
PR曲线实则是以precision(精准率)和recall(召回率)这两个变量而做出的曲线,其中recall为横坐标,precision为纵坐标。
一条PR曲线要对应一个阈值。通过选择合适的阈值,比如50%,对样本进行划分,概率大于50%的就认为是正例,小于50%的就是负例,从而计算相应的精准率和召回率。
如果一个学习器的P-R曲线被另一个学习器的P-R曲线完全包住,则可断言后者的性能优于前者。
我们还可以根据曲线下方的面积大小来进行比较,但更常用的是平衡点或者是F1值。平衡点(BEP)是P=R时的取值,如果这个值较大,则说明学习器的性能较好。而F1=2×P×R/(P+R),同样,F1值越大,我们可以认为该学习器的性能较好。
度量
精确率、查准率 P:预测为正例中预测正确的
召回率、查全率 R:真实结果为正例对应的判断结果(判断正例判断对的TP+判断负例判断错的FN)中判断为正例的
真正例率(TPR): TPR=TP/(TP+FN) 与召回率相同
假正例率(FPR): FPR=FP/(TN+FP) 真实结果为负例对应的判断结果中判断为正例的
混淆矩阵
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import precision_recall_curve,roc_auc_score,average_precision_score,auc
def draw_pr(confidence_scores,data_labels):
plt.figure()
plt.title('PR Curve')
plt.xlabel(