如何计算混淆矩阵?

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) 显示为灰色,因为我已经点击了它。

【讨论】:

以上是关于如何计算混淆矩阵?的主要内容,如果未能解决你的问题,请参考以下文章

怎么计算混淆矩阵的消费者精度

10折交叉验证的混淆矩阵

混淆矩阵是什么?Python多分类的混淆矩阵计算及可视化(包含原始混淆矩阵及归一化的混淆矩阵):基于skelarn框架iris数据集

如何标准化混淆矩阵?

Python使用pandas的crosstab函数计算混淆矩阵并使用Seaborn可视化混淆矩阵实战

如何在 Scikit 中计算多类分类的混淆矩阵?