1、精确度
英文(Precision)
是一个衡量模型预测准确率的指标,它关注的是模型预测为正类别(比如检测到的目标)中,有多少是真正正确的。通俗来说,精确率就是"我预测它是目标,它真的是目标的概率"
例如:假设一个监控视频中,我们使用了目标检测模型是否有人进入。在一段时间内,模型预测有10次检测到人,但实际上只有8次是真的有人,2次是误报(比如人影或者树影子为人)。
那么:精确率计算如下:
真正例(TP)=8 (10个人中有8个是正确的)
假正例(FP)=2 (2个人预测是错误的,本来不是人,但是预测为人)
精确率 = TP/TP+FP = 8/10 = 0.8
总结:
这个模型的精确率是0.8,或者说是80%。这意味着模型预测有人进入的是10次中,有8次是正确的。精确率告诉我们模型预测的可靠性。
2、召回率
召回率(Recall),也成为真正例率(True Presion )。是另外一个衡量模型性能的重要指标,它关注的是所有实际为正类别样本中,模型预测正确的比率。通俗来讲,召回率就是所有实际是目标的样本中,我预测对了多少。
这里的术语解释如下:
- 真正例 (True Positives, TP):模型预测为正类别,实际上也是正类别的样本数量。比如,模型预测某个区域有目标,实际上那个区域确实有目标。
- 假负例 (False Negatives, FN):模型预测为非正(负)类别,但实际上是正类别的样本数量。比如,模型预测某个区域没有目标,但实际上那个区域确实有目标。
继续使用前面的例子: 假设在一个监控视频中,我们使用目标检测模型来检测是否有人进入。在一段时间内,实际上有10次有人进入,模型预测有8次检测到人。
那么,召回率计算如下:
- 真正例 (TP) = 8(模型正确预测有人进入的次数)
- 假负例 (FN) = 2(模型错误预测没有人进入的次数,即漏检)
召回率 (Recall)=8/(8+2)=8/10=0.8
所以,这个模型的召回率是0.8,或者说80%。这意味着在所有实际有人进入的10次中,模型预测对了8次,召回率告诉我们模型捕捉到所有正类别样本的能力。
3、哪个更重要
精确率(Precision)和召回率(Recall)都是评估分类模型性能的重要指标,它们各自衡量的是模型预测的不同方面,因此哪个更重要同样取决于具体的应用场景和业务需求。
-
精确率(Precision):
- 精确率衡量的是模型预测为正类别的样本中,实际为正类别的比例。
- 高精确率意味着模型预测为正类别的样本中,大多数是正确的,减少了误报(False Positives)。
-
召回率(Recall):
- 召回率衡量的是所有实际为正类别的样本中,模型预测正确的比例。
- 高召回率意味着模型能够捕捉到大多数实际为正类别的样本,减少了漏检(False Negatives)。
哪个更重要? 这取决于以下几个因素:
-
业务目标:
- 如果业务目标是减少误报,比如在推荐系统中避免向用户推荐不相关的内容,那么精确率更重要。
- 如果业务目标是确保不遗漏任何重要信息,比如在医疗诊断中确保不漏诊,那么召回率更重要。
-
误报和漏检的代价:
- 如果误报的代价很高,比如在安全监控中错误地将正常行为标记为可疑行为,那么精确率更重要。
- 如果漏检的代价很高,比如在疾病筛查中漏诊患者,那么召回率更重要。
-
样本分布:
- 如果正样本数量远小于负样本,那么可能需要更关注召回率,以确保不遗漏少数的正样本。
-
模型用途:
- 在一些需要高置信度的场景,如金融风控,精确率可能更重要。
- 在一些需要尽可能全面的场景,如安全监控,召回率可能更重要。
-
用户偏好:
- 用户可能对误报和漏检有不同的容忍度,这会影响精确率和召回率的相对重要性。
在实际应用中,精确率和召回率往往是需要平衡的两个指标。有时候,提高一个指标可能会导致另一个指标下降,这就是所谓的精确率-召回率权衡(Precision-Recall Tradeoff)。在不同的应用场景中,根据业务需求和成本效益分析,来确定精确率和召回率的优先级,并进行相应的模型调整和优化。
简单来说:召回率关注的是减少漏检的能力(不能漏掉的能力)。精确率关注的是减少误报(错误,尽量不要出错)。
4、准确率
准确率(Accuracy)是评估分类模型性能的一个常用指标,它衡量的是模型预测正确的样本占总样本的比例。准确率的计算公式如下:
这里的术语解释如下:
- 真正例 (True Positives, TP):模型预测为正类别,实际上也是正类别的样本数量。
- 真负例 (True Negatives, TN):模型预测为负类别,实际上也是负类别的样本数量。
- 总样本数:包括所有正类别和负类别样本的总数。
用一个简单的例子来说明: 假设在一个数据集中,总共有100个样本,其中有60个正类别样本和40个负类别样本。模型预测结果如下:
- 正确预测正类别样本:50个(TP)
- 正确预测负类别样本:35个(TN)
- 错误预测正类别样本:10个(FP)
- 错误预测负类别样本:5个(FN)
那么,准确率计算如下: 准确率 (Accuracy)=(50+35)/100=85/100=0.85
所以,这个模型的准确率是85%,意味着模型预测正确的样本占总样本的85%。
准确率是一个直观的指标,但它在某些情况下可能不够全面,特别是当数据集的正负样本分布不均衡时。在这种情况下,可能需要考虑其他指标,如精确率(Precision)、召回率(Recall)和F1分数(F1 Score)等,以更全面地评估模型性能
5、F1-Score
F1-confidence curve(F1置信度曲线)是一种用于展示模型新能的图形工具,它显示了模型的F1分数(F1-score)如何随着置信度阈值的变化而变化。
1、理解坐标轴:
横轴:置信度阈值。这是模型预测结果的置信度,通常以0到1之间表示的值。较低的阈值意味着模型对于预测结果的确定性较低,而较高的阈值意味着对于模型结果确定性较高
纵轴(y)F1分数。f1分数是精确率和召回率的调和平均值,范围从0到1。F1分数越高,表示模型的性能越好
2、曲线趋势
观察曲线的整体趋势。理想情况下,随着置信度的增加,f1的分数值应该先增加后减少,形成一个峰值。这是因为在较低的阈值时,模型可能会产生很多假阳性(FP),而在较高的阈值的时候,可能会错过很多真阳性(TP)
3、寻找最优点
寻找曲线上F1分数最高的点。这个点对应的置信度阈值可以被认为是模型的最佳阈值,因为他在精确率和召回率之间取得了最佳平衡
4、权衡精确率和召回率
如果你关心减少假阳性(提高精确率),你可能会选择一个较高的置信度阈值
如果你更关心捕捉所有的真阳性(提高召回率),你可能会选择一个较低的置信度阈值
5、实际应用
- 如果曲线在较高的置信度阈值下仍然保持较高的F1分数,这表明模型在高置信度下仍然有很好的性能。
- 如果曲线在较低的置信度阈值下F1分数迅速下降,这可能表明模型对于低置信度的预测不够准确。
6、PR-cure
显示了在不同分类阈值下模型的精确度(Precision)和召回率(Recall)之间的关系
理论上PR曲线越靠近坐标轴的右上角,模型性能比较好,越能够正确标识正样本,正确分类正样本的Precision越高,而靠近右侧则说明模型正样本的识别能力较差,即召回能力差
PR曲线的特点是随着分类阈值的变化,精确度和召回率会有响应的改变。
通常情况下,当分类模型能够同时保持较高的精确率和召回率时,PR曲线处于较高的位置。
当模型偏向于高精度或者高召回率时,曲线则响应地向低精度或者低召回率的方向移动。PR曲线可以帮助我们评估模型在不同阈值下的性能,并选择适当的阈值来平衡精确度和召回率。
7、如何计算不同阈值下的精确率和召回率
假设我们有一个二分类问题,我们有以下的预测结果和真实标签:
预测值 | 真实标签 |
---|---|
0.9 | 1 |
0.8 | 1 |
0.7 | 0 |
0.6 | 1 |
0.5 | 0 |
0.4 | 0 |
0.3 | 1 |
0.2 | 0 |
0.1 | 1 |
0.0 | 0 |
我们将使用不同的置信度阈值来计算精确率和召回率。
步骤1:定义TP, FP, TN, FN
- 真正例(TP):预测为正,实际也为正。
- 假正例(FP):预测为正,实际为负。
- 真负例(TN):预测为负,实际也为负。
- 假负例(FN):预测为负,实际为正。
步骤2:计算不同阈值下的TP, FP, TN, FN
阈值 = 0.5
-
预测为正(>0.5):0.9, 0.8, 0.7, 0.6
-
预测为负(<=0.5):0.5, 0.4, 0.3, 0.2, 0.1, 0.0
-
TP = 3 (0.9, 0.8, 0.6)
-
FP = 1 (0.7)
-
TN = 4 (0.5, 0.4, 0.2, 0.0)
-
FN = 2 (0.3, 0.1)
阈值 = 0.3
-
预测为正(>0.3):0.9, 0.8, 0.7, 0.6, 0.4, 0.3
-
预测为负(<=0.3):0.2, 0.1, 0.0
-
TP = 4 (0.9, 0.8, 0.6, 0.3)
-
FP = 2 (0.7, 0.4)
-
TN = 3 (0.2, 0.1, 0.0)
-
FN = 1 (0.1)
步骤3:计算精确率和召回率
阈值 = 0.5
- 精确率 = TP / (TP + FP) = 3 / (3 + 1) = 0.75
- 召回率 = TP / (TP + FN) = 3 / (3 + 2) = 0.6
阈值 = 0.3
- 精确率 = TP / (TP + FP) = 4 / (4 + 2) = 0.6667
- 召回率 = TP / (TP + FN) = 4 / (4 + 1) = 0.8
步骤4:绘制精确率-召回率曲线
我们可以根据不同阈值下的精确率和召回率绘制曲线。在这个例子中,我们只有两个点,但在实际应用中,我们会使用更多的阈值来得到更平滑的曲线。
步骤5:找到最佳阈值
最佳阈值通常是使F1分数最大化的阈值。F1分数计算如下: F1=2×精确率×召回率精确率+召回率F1=2×精确率+召回率精确率×召回率
阈值 = 0.5
- F1 = 2 \times \frac{0.75 \times 0.6}{0.75 + 0.6} = 0.6667
阈值 = 0.3
- F1 = 2 \times \frac{0.6667 \times 0.8}{0.6667 + 0.8} = 0.7273
在这个例子中,阈值为0.3时的F1分数更高,所以最佳阈值是0.3。
这个例子展示了如何计算不同阈值下的精确率和召回率,并找到最佳阈值。在实际应用中,你可能需要使用更多的数据点和阈值来得到更精确的结果。