目录
一.PR曲线的概念
PR曲线中的P代表的是precision(精准率),R代表的是recall(召回率),其代表的是精准率与召回率的关系,一般情况下,将recall设置为横坐标,precision设置为纵坐标。
二.精准率和召回率
首先,我们了解一下混淆矩阵,如下表。
其中,把正例正确地分类为正例,表示为TP(true positive),把正例错误地分类为负例,表示为FN(false negative)。把负例正确地分类为负例,表示为TN(true negative), 把负例错误地分类为正例,表示为FP(false positive)。
从混淆矩阵可以得出精准率与召回率:
precision = TP/(TP + FP)
recall = TP/(TP +FN)
三.PR曲线的功能说明
一条PR曲线要对应一个阈值(统计学的概率)。通过选择合适的阈值(比如K%)对样本进行合理的划分,概率大于K%的样本为正例,小于K%的样本为负例,样本分类完成后计算相应的精准率和召回率。
四.PR曲线代码实现
import numpy as np
from sklearn.metrics import precision_recall_curve
import matplotlib.pyplot as plt
y_true = np.array([0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1])
y_scores = np.array([0.1, 0.09, 0.35, 0.8, 0.1, 0.4, 0.5, 0.2, 0.8, 0.9, 0.3,0.4])
precision, recall, thresholds = precision_recall_curve(y_true, y_scores) #计算精确率和召回率
plt.plot(recall, precision)
plt.show()