在机器学习领域,特别是在统计分类的问题中,混淆矩阵,也被称为 错误矩阵,是一种独特的表排列,可以可视化一个算法的性能,通常是监督学习(在非监督学习中,它通常被称为 匹配矩阵)。矩阵的每一行代表一个实际类中的实例,而每一列代表一个预测类中的实例,反之亦然-这两种变体都可以在文献[11]中找到。这个名字源于这样一个事实,即它很容易看出系统是否混淆了两个类(即通常将一个类错误标记为另一个类)。
它是一种特殊类型的关联表,具有两个维度(“实际的”和“预测的”),在两个维度中都有相同的“类”集合(维度和类的每个组合都是关联表中的一个变量)。
例子
假设有 12 个人,其中 8人 被诊断为癌症,4人 没有癌症,其中癌症患者属于 class 1 (positive) ,非癌症患者属于 class 0 (negative),我们可以将数据显示为:
假设我们有一个分类器,可以在某种程度上区分癌症患者和非癌症患者,我们可以将这 12个 个体通过分类器进行分类。分类器做出了 9个准确的预测,但 有3个漏检: 2个癌症患者 被错误地预测为无癌症(样本1 和 2),1个没有癌症的人被错误地预测为癌症(样本9)。
注意,如果我们将实际的分类集合与预测的分类集合进行比较,在任何特定的列上都可能有4种不同的结果。
- 第一,如果实际分类结果为 positive,且预测分类结果为 positive (1,1),则称为 true positive 结果,因为分类器正确地识别了 positive 样本。
- 第二,如果实际分类是 positive ,而预测分类是 negative (1,0),这被称为 false negative 结果,因为分类器错误地将 positive 样本识别为 negative 样本。
- 第三,如果实际分类结果为 negative,而预测分类结果为 positive (0,1),则称为 false positive 结果,因为分类器错误地将 negative 样本识别为 positive 样本。
- 第四,如果实际分类结果为 negative ,而预测分类结果为 negative (0,0),则称为 true negative 结果,因为分类器正确地识别了 negative 样本。
然后,我们可以在实际分类和预测分类之间进行比较,并将这些信息添加到表中,使正确的结果以绿色显示,以便更容易识别。
任何 binary 混淆矩阵 的模板都使用上述四种结果(true positives, false negatives, false positives, and true negatives)以及 positive and negative 分类。这四种结果可以用 2×2混淆矩阵 表示,如下所示:
选择上面前三个数据表的颜色约定来匹配这个混淆矩阵,以便于区分数据。
现在,我们可以简单地将每种类型的结果相加,代入这个模板,并创建一个混淆矩阵,它将简要地总结分类器测试的结果:
在这个混淆矩阵中,8个患癌症的样本中,系统判断2个为无癌症样本,4个未患癌症的样本中,系统预测1个确实患癌症。所有正确的预测都位于表的对角线上(以绿色高亮显示),因此很容易从视觉上检查表中的预测误差,因为对角线以外的值表示它们。通过将混淆矩阵的两行相加,还可以推断出原始数据集中 positive § 样本 和 negative (N) 样本的总数,即 P = T P + F N {\displaystyle P=TP+FN} P=TP+FN and N = F P + T N {\displaystyle N=FP+TN} N=FP+TN。
混淆表
在预测分析中,混淆表(有时也称为混淆矩阵)是一个两行两列的表,其中记录了 true positives, false negatives, false positives, and true negatives 的数量。这比简单地观察正确分类的比例(accuracy)可以进行更详细的分析。如果数据集不平衡,Accuracy 会产生误导性的结果; 也就是说,当不同类别的观测值数量差异很大时。
例如,如果数据中有95个癌症样本,而只有5个非癌症样本,特定的分类器可能会将所有观测值分类为癌症。总体 accuracy 为 95%,但更详细地说,分类器对 癌症类别 的识别率(sensitivity)为100%,而对 非癌症类别的识别率 为 0%。在这种情况下,F1得分甚至更加不可靠,这里的得分将超过 97.4% ,而 informedness 消除了这种 bias,并且对于任何形式的猜测(这里总是猜测癌症)产生 informed decision 的概率为 0。
Davide Chicco和Giuseppe Jurman认为,评估混淆矩阵最具信息量的指标是马修斯相关系数(Matthews correlation coefficient (MCC))。
其他指标可以包含在混淆矩阵中,每个指标都有自己的重要性和用途。
超过两类的混淆矩阵
混淆矩阵不局限于二分类,也可以用于多分类器。 上面讨论的混淆矩阵只有两个条件:positive and negative。 例如,下表总结了两个说话者之间口哨语言的交流,为清晰起见省略了0值.
个人理解
T: True。表示该模型预测正确。假设场景为预测明天是否下雨?无非两种情况:
- 情况1:
- 明天实际上真的 下雨了,模型也预测为 下雨,模型预测正确。所以为 T。
- 情况2:
- 明天 没有下雨,模型预测也是不下雨,模型预测正确。也是 T。
F: False。表示该模型预测错误。也无非两种情况:
- 情况3:
- 明天真的下雨了,模型也预测为 不下雨,模型预测错误。所以为 F。
- 情况4:
- 明天没有下雨,模型预测是 下雨,模型预测错误。F。
P:Positive。N: Negative。 只和模型预测的结果有关系。
假设 下雨为 正(Positive–P),不下雨为 负(Negative–N)。所以上面的情况如下:
- 情况1: T P
- 情况2: T N
- 情况3: F N
- 情况4: F P
当然,也可以假设 不下雨为 正(Positive–P),下雨为 负(Negative–N)。所以上面的情况如下:
- 情况1: T N
- 情况2: T P
- 情况3: F P
- 情况4: F N
混淆矩阵每个位置要填的数字就是 这四种情况的样本个数。
参考
https://en.wikipedia.org/wiki/Confusion_matrix