如何计算混淆矩阵?
Posted
技术标签:
【中文标题】如何计算混淆矩阵?【英文标题】:How do I calculate the Confusion Matrix? 【发布时间】:2017-02-25 22:38:55 【问题描述】:这是我能够生成的 WEKA 输出。不幸的是,我不知道如何计算混淆矩阵。有人可以帮我计算一下吗?
=== Classifier model (full training set) ===
J48 pruned tree
-----------------
plas <= 127: negative (485.0/94.0)
plas > 127
| mass <= 29.9
| | plas <= 145: negative (41.0/6.0)
| | plas > 145
| | | age <= 25: negative (4.0)
| | | age > 25
| | | | age <= 61: positive (27.0/9.0)
| | | | age > 61: negative (4.0)
| mass > 29.9
| | plas <= 157
| | | age <= 30: negative (50.0/23.0)
| | | age > 30: positive (65.0/18.0)
| | plas > 157: positive (92.0/12.0)
Number of Leaves : 8
Size of the tree : 15
一个。使用 WEKA 输出构建混淆矩阵。 (提示:查看每个叶子节点以确定有多少实例落入四个象限中的每一个;并汇总所有叶子节点的结果以获得最终计数)
TP=?
FP=?
FN=?
TN=?
b.在医学诊断中,常用的三个指标是:敏感性、特异性和诊断准确性。灵敏度定义为 TP/(TP+FN) ;特异性定义为 TN/(FP+TN);诊断准确度定义为敏感性和特异性的平均值。根据上面的混淆矩阵计算诊断准确率。
如果有人可以帮助我,我将不胜感激。谢谢!
【问题讨论】:
您想要哪种语言的代码? Weka 通常不会自动给你混淆矩阵吗?您可能还想在stats.***.com 上提出这个问题,如果您的问题集中在机器学习而不是具体实现上,这更适合。 【参考方案1】:要填写所需的表格,您必须了解树和每个叶子的图形。 树的根节点是“plas”。它有两个孩子。 'plas' 小于或等于 127 的所有输入案例都落在第一个孩子身上,而所有 'plas' 大于 127 的案例都落在第二个孩子身上。第一个孩子的叶子为负表示落在第一个孩子的案例都是负面的。括号中的图 485 表示“plas”小于或等于 127 的输入案例的数量,而 94 表示在这 485 个案例中,94 个被错误分类为阴性。树的其余部分也是如此。所以,
TP=145 FP=39 TN=461 FN=123希望这会有所帮助。如果有任何可疑之处,请发表评论。
【讨论】:
【参考方案2】:在“分类”面板中,点击“更多选项”,点击“输出混淆矩阵”,点击确定。
我添加了相应 GUI 屏幕和对话框的屏幕截图。在屏幕截图中,“更多选项...”按钮 (1) 显示为灰色,因为我已经点击了它。
【讨论】:
以上是关于如何计算混淆矩阵?的主要内容,如果未能解决你的问题,请参考以下文章
混淆矩阵是什么?Python多分类的混淆矩阵计算及可视化(包含原始混淆矩阵及归一化的混淆矩阵):基于skelarn框架iris数据集