1. 简介

在本教程中,我们将介绍机器学习中的两个重要评估指标:敏感度(Sensitivity)特异性(Specificity)。这两个指标常用于评估分类模型的性能,例如神经网络、决策树、支持向量机等。

它们尤其适用于二分类问题,也可以扩展到多分类场景。


2. 混淆矩阵(Confusion Matrix)

要计算敏感度和特异性,首先需要构建一个混淆矩阵。在二分类问题中,混淆矩阵是一个 2x2 的矩阵,行表示模型的预测结果,列表示实际标签(Ground Truth):

              | 实际为正 | 实际为负
预测为正       | TP       | FP
预测为负       | FN       | TN
  • TP(True Positives):预测为正,实际也为正
  • FP(False Positives):预测为正,实际为负
  • FN(False Negatives):预测为负,实际为正
  • TN(True Negatives):预测为负,实际也为负

3. 敏感度与特异性

✅ 敏感度(Sensitivity)

又称召回率(Recall),表示模型正确识别出的正样本占所有实际正样本的比例。

公式如下:

Sensitivity = TP / (TP + FN)

✅ 特异性(Specificity)

表示模型正确识别出的负样本占所有实际负样本的比例。

公式如下:

Specificity = TN / (TN + FP)

3.1 示例

假设我们有如下混淆矩阵:

              | 实际为正 | 实际为负
预测为正       | 139      | 270
预测为负       | 40       | 130
  • 敏感度

    Sensitivity = 139 / (139 + 40) ≈ 0.777
    
  • 特异性

    Specificity = 130 / (130 + 270) = 0.325
    

这个模型在识别正样本方面表现尚可,但在识别负样本上表现较差。

3.2 置信区间(Confidence Intervals)

当测试集较小时,建议为敏感度和特异性构建置信区间。这样可以更准确地估计模型在实际数据中的表现。

使用正态近似法,置信区间公式为:

p ± z_(α/2) * sqrt(p*(1-p)/n)

其中:

  • p 是估计值(如敏感度或特异性)
  • n 是对应类别的样本数(正样本或负样本)
  • z_(α/2) 是标准正态分布的分位数(如95%置信度下为1.96)

示例

  • 敏感度置信区间

    [0.696, 0.857]
    
  • 特异性置信区间

    [0.265, 0.386]
    

可以看到,敏感度的置信区间较宽,说明估计不稳定;而特异性置信区间较窄,因为负样本数量较多。

3.3 比较两个模型

当两个模型的置信区间不重叠时,我们有理由认为它们的性能存在显著差异。

例如:

  • 模型A:敏感度0.777,置信区间[0.696, 0.857]
  • 模型B:敏感度0.838,置信区间[0.767, 0.902]

它们的置信区间部分重叠,说明在实际中两个模型的表现可能并无显著差异。

3.4 如何选择模型?

假设我们有两个模型:

  • SVM:敏感度0.7,特异性0.8
  • LR:敏感度0.8,特异性0.7

选择依据取决于你的目标:

  • 如果更关注识别正样本(如癌症检测),应选择敏感度更高的模型(LR)
  • 如果更关注识别负样本(如垃圾邮件过滤),应选择特异性更高的模型(SVM)

4. 多分类问题中的敏感度与特异性

在多分类任务中,我们可以为每个类别分别计算敏感度和特异性。

多分类混淆矩阵示例:

            | y=Hot | y=Cold | y=Mild
ŷ=Hot       | 13    | 10     | 30
ŷ=Cold      | 22    | 70     | 20
ŷ=Mild      | 30    | 20     | 150

类别 j 的敏感度定义为:

Sensitivity(j) = Cjj / Σ(Cij), i ≠ j

类别 j 的特异性定义为:

Specificity(j) = Σ(Cik), i≠j, k≠j / Σ(Cik), k≠j

示例:Hot 类别

  • 敏感度

    Sensitivity(Hot) = 13 / (13 + 22 + 30) = 13 / 65 = 0.2
    
  • 特异性

    Specificity(Hot) = (70 + 20 + 20 + 150) / (10 + 30 + 70 + 20 + 20 + 150) = 260 / 300 ≈ 0.867
    

说明模型对“非Hot”识别较好,但识别“Hot”表现较差。


5. 总结

敏感度和特异性是评估分类模型的重要指标

在小数据集上建议使用置信区间来评估模型稳定性

多分类问题中可为每个类别单独计算这两个指标

选择模型时应结合业务目标:

  • 重视正样本识别 ➡️ 选高敏感度模型
  • 重视负样本识别 ➡️ 选高特异性模型

合理使用这两个指标,能帮助我们在实际项目中做出更明智的模型选择。


原始标题:Sensitivity and Specificity