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

基于混淆矩阵计算分类指标:附数学解法与Python脚本

二分类混淆矩阵指标计算:准确率、精确率、召回率、平衡准确率

首先明确二分类混淆矩阵的四个核心元素:

  • 真阳性(TP):实际为正类,预测也为正类的样本数
  • 真阴性(TN):实际为负类,预测也为负类的样本数
  • 假阳性(FP):实际为负类,预测为正类的样本数
  • 假阴性(FN):实际为正类,预测为负类的样本数

1. 准确率(Accuracy)

定义:所有预测样本中,分类正确的样本占比
公式:

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

计算逻辑:将真阳性和真阴性的样本数相加(即所有分类正确的样本),除以总样本数(四个元素之和)。

2. 精确率(Precision)

定义:被预测为正类的样本中,实际确实是正类的占比
公式:

Precision = TP / (TP + FP)

计算逻辑:真阳性样本数除以所有被预测为正类的样本数(真阳性+假阳性)。

3. 召回率(Recall,又称查全率)

定义:实际为正类的样本中,被正确预测为正类的占比
公式:

Recall = TP / (TP + FN)

计算逻辑:真阳性样本数除以所有实际为正类的样本数(真阳性+假阴性)。

4. 平衡准确率(Balanced Accuracy)

定义:正类召回率与负类召回率的平均值,专门用于应对样本不平衡的场景
首先计算负类召回率(又称特异度Specificity):

Specificity = TN / (TN + FP)

平衡准确率公式:

Balanced Accuracy = (Recall + Specificity) / 2

计算逻辑:分别算出正类和负类的召回率,取两者的算术平均值。


Python 实现脚本

手动计算(无依赖)

直接基于混淆矩阵的四个值计算,适合快速验证:

# 替换为你的实际混淆矩阵数值
TP = 80
TN = 100
FP = 15
FN = 5

# 计算各指标
accuracy = (TP + TN) / (TP + TN + FP + FN)
precision = TP / (TP + FP)
recall = TP / (TP + FN)
specificity = TN / (TN + FP)
balanced_accuracy = (recall + specificity) / 2

# 格式化输出结果
print(f"准确率: {accuracy:.4f}")
print(f"精确率: {precision:.4f}")
print(f"召回率: {recall:.4f}")
print(f"平衡准确率: {balanced_accuracy:.4f}")

用scikit-learn库计算(高效便捷)

如果已有真实标签和预测标签数组,可直接调用库函数:

from sklearn.metrics import accuracy_score, precision_score, recall_score, balanced_accuracy_score
import numpy as np

# 示例:构造真实标签与预测标签数组
# 实际正类85个(TP+FN),负类115个(TN+FP)
y_true = np.array([1]*(80+5) + [0]*(100+15))
# 预测正类95个(TP+FP),负类105个(TN+FN)
y_pred = np.array([1]*(80+15) + [0]*(100+5))

# 计算指标
accuracy = accuracy_score(y_true, y_pred)
precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
balanced_accuracy = balanced_accuracy_score(y_true, y_pred)

print(f"准确率: {accuracy:.4f}")
print(f"精确率: {precision:.4f}")
print(f"召回率: {recall:.4f}")
print(f"平衡准确率: {balanced_accuracy:.4f}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 16:19:52