微生信分享 http://blog.sciencenet.cn/u/chinapubmed 0代码在线绘制300+科研图

博文

在线绘制扇形二分类混淆矩阵

已有 144 次阅读 2026-10-22 16:45 |系统分类:科研笔记

做完一个分类模型,在整理结果时,往往需要先看准确率,同时也需要明确模型把多少阳性样本漏判成了阴性,又把多少阴性样本误报成了阳性。这就是混淆矩阵的用武之地。

fig1.png

▲ 论文 Figure 3A、B:两个外部测试队列的混淆矩阵

论文例子

《PLOS Digital Health》论文“Artificial intelligence for evaluation of magnetic resonance imaging-detected extramural vascular invasion in rectal cancer”用 nnUNet 模型识别直肠癌 MRI 上的壁外血管侵犯(mrEMVI)。图中 A、B 对应两个外部测试队列,将 AI 预测与资深放射科医师小组的共识结果对照,准确率分别为 81.5% 和 84.7%。四类计数还能告诉我们,模型错在误报还是漏判。[1]

用一个例子看懂四个数

假设有 100 个样本,真实结果为 40 个阳性、60 个阴性。模型找对了 32 个阳性,漏掉 8 个;判对了 54 个阴性,又把 6 个阴性误报为阳性。把预测与真实结果逐个核对、计数,就得到以下混淆矩阵。

真实类别 / 预测类别

预测阳性

预测阴性

实际阳性 40 个

TP=32 真阳性

FN=8 假阴性(漏判)

实际阴性 60 个

FP=6 假阳性(误报)

TN=54 真阴性

TP 是 True Positive,TN 是 True Negative,表示阳性和阴性都判对了;FP 是 False Positive,FN 是 False Negative,分别表示误报和漏判。这四个数还能用来计算常见的模型评价指标:本例一共判对了 86 个样本,准确率为 86%;40 个实际阳性中找出了 32 个,召回率为 80%;38 个预测阳性中有 32 个确为阳性,精确率约为 84.2%。综合精确率和召回率,F1 分数约为 82.1%;60 个实际阴性中判对了 54 个,特异度为 90%。[2,4]

 

指标

回答什么问题

计算公式

本例计算与结果

准确率 Accuracy

全部样本中,判对了多少例?

(TP+TN) / 总数

(32+54) / 100                  =86%

召回率 Recall(敏感度)

实际阳性中,找出了多少例?

TP / (TP+FN)

32 / (32+8)                  =80%

精确率 Precision(阳性预测值)

预测为阳性的样本中,多少例是真的?

TP / (TP+FP)

32 / (32+6)                  ≈84.2%

特异度 Specificity

实际阴性中,判对了多少例?

TN / (TN+FP)

54 / (54+6)                  =90%

F1 分数

综合考虑精确率和召回率,表现如何?

2TP / (2TP+FP+FN)

(2×32) / (2×32+6+8)                  ≈82.1%

F1 是精确率和召回率的调和平均数,其中一项偏低,F1 也会受到影响;它的计算不使用 TN。召回率和精确率的分母不同:前者从实际阳性出发,看有没有漏掉;后者从预测阳性出发,看报出的结果是否可靠。

多分类也能这样画吗?

可以,但要先选定一个类别。比如 A、B、C 三分类,原始混淆矩阵有 3 × 3=9 个数。把 A 当作阳性,把 B、C 合并为阴性,就能汇总出 A 类的 TP、FP、TN、FN;同理,三分类可得到三组计数,分别画成三张扇形图。[3]

不过,A 类图只能显示“有多少 A 被漏判”,看不出它们具体被分成了 B 还是 C。B 被错分成 C,在“是否为 A”的判断中也会计入 TN。因此,这种画法适合单独展示某一类的识别情况;想看完整的类别混淆关系,原始 3 × 3 矩阵更直观。

🛠️ 在线作图工具

https://www.bioinformatics.com.cn/two_catergory_confusion_matrix_quarters_plot

fig2.png

▲ 图 1:在线绘图页面

📋 五步完成混淆矩阵

Step 1:准备数据

点击图片上面的“示例数据”链接下载示例文件,用 Excel 打开。

示例文件在 Excel 中占 3 行 × 3 列,其中首行和首列是标签,真正的计数区为 2 × 2。Positive 表示阳性,Negative 表示阴性。按示例保留标签顺序,并核对 Actual(真实)与 Predicted(预测)对应的轴,避免把 FP 和 FN 放反。

fig3.png

▲ 图 2:示例数据

Step 2:输入检查(重要!)

点击“示例”按钮,示例数据会填入输入框。

真实数据请复制,粘贴到输入框。点击“输入检查”按钮,后台会逐行、逐列检查数据格式,并提示需要修改的地方。检查通过后再继续设置参数。

fig4.png

▲ 图 3:载入示例数据

如果检查未通过,按页面提示修改数据,然后重新检查,直到通过。

fig5.png

▲ 图 4:输入检查结果

Step 3:设置参数

输入检查通过后,进入参数设置。

fig6.png

▲ 图 5:绘图参数面板

【图片大小】图片宽度和高度控制图片画布大小。

【颜色】分别设置了小值和大值的颜色。

【字体设置】可分别设置轴说明文字(Positive、Negative)、图例标题、图例刻度数字、内圈数值及外圈类别的字号;字体可选 Times New Roman 或 Arial。

Step 4:提交出图

参数设置完成后,点击“提交”按钮,约1s后生成预览图。

fig7.png

▲ 图 6:预览图

Step 5:下载与后期编辑

平台提供 PDF、SVG、PNG 和 TIFF 格式下载。需要调整文字、字体或拼图时,可以使用 Adobe Illustrator 或 Inkscape 编辑 PDF 或 SVG。

✍️ 小结

读混淆矩阵,先看真实类别和预测类别,再看误报与漏判。二分类可以直接画成一张扇形图;多分类可按类别拆开画,但若想看清各类之间具体错分到了哪里,保留原始多分类混淆矩阵更直观。

📌 参数复用

预览图下方提供“复现参数(JSON)”下载链接。点击后可保存 JSON 文件,其中包含本次输入的数据和绘图设置。

fig8.png

▲ 图 7:下载参数文件

完成满意的版本后,建议把参数文件、图片和原始数据放在同一个文件夹中保存。下次作图时直接导入 JSON 文件,即可恢复数据和已设置的参数。

fig9.png

▲ 图 8:导入 JSON 文件,恢复数据和绘图设置 

参考资料

[1] Huang H, et al. PLOS Digital Health, 2026, 5(10): e0001763. https://doi.org/10.1371/journal.pdig.0001763

[2] scikit-learn 官方文档 confusion_matrix:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

[3] scikit-learn 官方文档 multilabel_confusion_matrix(多分类按一对其余方式转换):https://scikit-learn.org/stable/modules/generated/sklearn.metrics.multilabel_confusion_matrix.html

[4] scikit-learn 官方文档 分类评价指标:https://scikit-learn.org/stable/modules/model_evaluation.html#classification-metrics

微生信助力高分文章,谷歌学术10000+     



https://blog.sciencenet.cn/blog-707141-1557811.html

上一篇:ProteomeScout:一个整合的蛋白质翻译后修饰(PTM)数据库,可查,可下载




    
收藏 IP: 218.1.143.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2026-10-22 21:34

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部