【机器学习27】-精准率(Precision)、召回率(Recall)与F1分数
以下是关于精准率(Precision)、召回率(Recall)与F1分数的系统性解析与解题思路:
1. 核心概念与公式(图1)
混淆矩阵与指标定义
预测\实际 | y=1(阳性) | y=0(阴性) |
---|---|---|
预测为1 | 真阳性(TP=15) | 假阳性(FP=5) |
预测为0 | 假阴性(FN=10) | 真阴性(TN=70) |
• 精准率(Precision):预测为阳性的样本中实际为阳性的比例。
Precision
=
T
P
T
P
+
F
P
=
15
15
+
5
=
0.75
\text{Precision} = \frac{TP}{TP + FP} = \frac{15}{15+5} = 0.75
Precision=TP+FPTP=15+515=0.75
• 召回率(Recall):实际为阳性的样本中被正确预测的比例。
Recall
=
T
P
T
P
+
F
N
=
15
15
+
10
=
0.6
\text{Recall} = \frac{TP}{TP + FN} = \frac{15}{15+10} = 0.6
Recall=TP+FNTP=15+1015=0.6
适用场景:
• 高精准率:避免误诊(如罕见疾病诊断)。
• 高召回率:避免漏诊(如癌症筛查)。
2. 精准率与召回率的权衡(图2)
逻辑回归中的阈值调整
• 默认阈值(0.5):平衡精准率和召回率。
• 调整策略:
阈值选择 | 对指标的影响 | 适用场景 |
---|---|---|
高阈值(0.99) | 精准率↑,召回率↓(严格预测) | 避免假阳性(如法律判决) |
低阈值(0.01) | 精准率↓,召回率↑(宽松预测) | 避免假阴性(如疾病筛查) |
数学表达:
预测规则修改为:
Predict
y
=
1
if
f
w
,
b
(
x
)
≥
threshold
\text{Predict } y=1 \ \text{if} \ f_{\mathbf{w},b}(\mathbf{x}) \geq \text{threshold}
Predict y=1 if fw,b(x)≥threshold
曲线分析:
• 精准率-召回率曲线(P-R曲线)显示两者反向关系,需根据需求选择最优阈值。
3. 多算法比较与F1分数(图3)
F1分数计算与对比
• F1分数:精准率和召回率的调和平均数,平衡两者权重。
F
1
=
2
×
P
×
R
P
+
R
=
2
×
0.5
×
0.4
0.5
+
0.4
≈
0.444
(Algorithm 1)
F1 = 2 \times \frac{P \times R}{P + R} = \frac{2 \times 0.5 \times 0.4}{0.5 + 0.4} \approx 0.444 \ \text{(Algorithm 1)}
F1=2×P+RP×R=0.5+0.42×0.5×0.4≈0.444 (Algorithm 1)
• 对比结果:
算法 | 精准率(P) | 召回率(R) | F1分数 | 选择建议 |
---|---|---|---|---|
Algorithm 1 | 0.5 | 0.4 | 0.444 | 平衡型 |
Algorithm 2 | 0.7 | 0.1 | 0.175 | 高精准率,低召回率 |
Algorithm 3 | 0.02 | 1.0 | 0.039 | 高召回率,低精准率 |
选择策略:
• 优先F1分数高的算法(如Algorithm 1)。
• 若场景需求明确(如癌症筛查),可牺牲精准率选择高召回率算法。
4. 解题思路总结
- 计算指标:根据混淆矩阵计算精准率、召回率。
- 调整阈值:
• 需高精准率 → 提高阈值。
• 需高召回率 → 降低阈值。 - 算法比较:
• 使用F1分数综合评估,或根据场景需求侧重某一指标。
示例问题与解答:
• 问题:若需检测罕见疾病且医疗资源有限,如何选择模型?
• 解答:选择高阈值(如0.99),优先保证精准率(减少误诊),尽管召回率较低。
通过系统化应用上述方法,可有效解决分类任务中的指标权衡与模型选择问题。