You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从混淆矩阵手动计算SVC模型的总体精确率、召回率与F1分数?

用混淆矩阵手动计算分类指标的方法

首先明确二分类场景下混淆矩阵的四个核心数值定义:

  • TP(真正例):真实标签为1、预测标签为1的样本数
  • TN(真负例):真实标签为0、预测标签为0的样本数
  • FP(假正例):真实标签为0、预测标签为1的样本数
  • FN(假负例):真实标签为1、预测标签为0的样本数

一、从分类报告反推混淆矩阵(以你提供的报告为例)

已知分类报告中的关键信息:

  • 真实标签为0的样本数(Support_0)= 540
  • 真实标签为1的样本数(Support_1)= 460
  • 类别0的召回率= 0.5907407,类别1的召回率= 0.8239130

根据召回率公式(召回率=该类正确分类样本数/该类真实样本数),推导混淆矩阵数值:

  1. TN = 类别0的召回率 × Support_0 = 0.5907407 × 540 ≈ 320
  2. FP = Support_0 - TN = 540 - 320 = 220
  3. TP = 类别1的召回率 × Support_1 = 0.8239130 × 460 ≈ 379
  4. FN = Support_1 - TP = 460 - 379 = 81

最终混淆矩阵:

预测为0预测为1
真实为0320220
真实为181379

二、手动计算各类指标

1. 总体准确率(Accuracy)

表示所有样本中被正确分类的比例,公式:

Accuracy = (TP + TN) / (TP + TN + FP + FN)

代入数值:(379 + 320) / 1000 = 699 / 1000 = 0.699(与报告中0.698的差异来自小数精度取舍)

2. 类别级精确率、召回率、F1分数

类别0:

  • 精确率:预测为0的样本中真实为0的比例
Precision_0 = TN / (TN + FN) = 320 / (320 + 81) ≈ 0.7975
  • 召回率:真实为0的样本中被正确预测为0的比例
Recall_0 = TN / (TN + FP) = 320 / (320 + 220) ≈ 0.5907
  • F1分数:精确率与召回率的调和平均数
F1_0 = 2 × (Precision_0 × Recall_0) / (Precision_0 + Recall_0) ≈ 2 × (0.7975×0.5907)/(0.7975+0.5907) ≈ 0.6787

类别1:

  • 精确率:预测为1的样本中真实为1的比例
Precision_1 = TP / (TP + FP) = 379 / (379 + 220) ≈ 0.6317
  • 召回率:真实为1的样本中被正确预测为1的比例
Recall_1 = TP / (TP + FN) = 379 / (379 + 81) ≈ 0.8239
  • F1分数:
F1_1 = 2 × (Precision_1 × Recall_1) / (Precision_1 + Recall_1) ≈ 2 × (0.6317×0.8239)/(0.6317+0.8239) ≈ 0.7151

3. 宏观平均(Macro Avg)指标

对两个类别的指标取算术平均值:

  • Macro精确率:
Macro_Precision = (Precision_0 + Precision_1) / 2 ≈ (0.7975 + 0.6317)/2 ≈ 0.7146
  • Macro召回率:
Macro_Recall = (Recall_0 + Recall_1) / 2 ≈ (0.5907 + 0.8239)/2 ≈ 0.7073
  • Macro F1分数:
Macro_F1 = (F1_0 + F1_1) / 2 ≈ (0.6787 + 0.7151)/2 ≈ 0.6969

4. 加权平均(Weighted Avg)指标

以每个类别的真实样本数(Support)为权重,加权求和后除以总样本数:

  • Weighted精确率:
Weighted_Precision = (Precision_0 × Support_0 + Precision_1 × Support_1) / Total_Support
= (0.7975×540 + 0.6317×460)/1000 ≈ 0.7212
  • Weighted召回率:
Weighted_Recall = (Recall_0 × Support_0 + Recall_1 × Support_1) / Total_Support
= (0.5907×540 + 0.8239×460)/1000 ≈ 0.699(与准确率数值一致)
  • Weighted F1分数:
Weighted_F1 = (F1_0 × Support_0 + F1_1 × Support_1) / Total_Support
= (0.6787×540 + 0.7151×460)/1000 ≈ 0.6954

内容的提问来源于stack exchange,提问作者PwNzDust

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 19:59:54