【问题标题】:How to read the classifier confusion matrix in WEKA如何在 WEKA 中读取分类器混淆矩阵
【发布时间】:2013-02-19 06:52:01
【问题描述】:

抱歉,我是 WEKA 的新手,刚刚学习。

在我的决策树(J48)分类器输出中,有一个混淆矩阵:

a    b   <----- classified as
130  8     a = functional
15   150   b = non-functional
  • 如何读取这个矩阵? a 和 b 有什么区别?
  • 另外,谁能向我解释一下什么是域值?

【问题讨论】:

  • 如何像在 python 中一样从 weka 结果中可视化混淆矩阵?

标签: classification weka decision-tree


【解决方案1】:

你读过wikipedia page on confusion matrices吗?在他们的示例中,矩阵周围的文本排列方式略有不同(行标签在左侧而不是在右侧),但您阅读时是一样的。

行表示真实类,列表示分类器输出。然后,每个条目给出被分类为&lt;column&gt;&lt;row&gt; 实例的数量。在您的示例中,15 个 B 被(错误地)归类为 As,150 个 B 被正确归类为 B,等等。

因此,所有正确分类都在左上角到右下角的对角线上。对角线之外的所有东西都是某种不正确的分类。

编辑:维基百科页面已经切换了行和列。有时候是这样的。在研究混淆矩阵时,请务必检查标签以查看其是行中的真实类、列中的预测类还是其他方式。

【讨论】:

  • 我是否更正了 WEKA 中的 CM 是:第 1 行:TP | FP 第 2 行:FN | TN
  • @user75782131:我不会那样说的。您关于 True Positives 等的主张仅适用于有明确的正面和负面类别的 2 类问题。许多分类问题不是这样的,但它们仍然存在混淆矩阵。
  • 而对于2-class问题,如果positive class的索引为0,则表示第一行是TP,FN,第二行是FP,TN。
【解决方案2】:

我会这样说:

混淆矩阵是 Weka 报告这个 J48 模型在正确和错误方面的表现。

在您的数据中,目标变量是“功能性”或“非功能性”;矩阵的右侧告诉您列“a”是功能性的,而“b”是非功能性的。

这些列告诉您模型如何对样本进行分类 - 这是模型预测的结果:

  • 第一列包含您的模型认为是“a”的所有样本 - 总共 145 个
  • 第二列包含您的模型认为是“b”的所有样本 - 其中 158 个

另一方面,行代表现实:

  • 第一行包含所有真正为“a”的样本 - 总共 138 个
  • 第二行包含所有真正为“b”的样本 - 其中 165 个

知道了列和行,你可以深入了解细节:

  • 左上角,130,是你的模型认为是“a”的东西,实际上是 "a"
  • 左下角,15,是你的模型认为是“a”的东西,但 真的是“b”
  • 右上角,8,是您的模型认为是“b”但 真的是“a”
  • 右下角,150 是你的模型认为是“b”的东西 真的是“b”

所以矩阵的左上角和右下角显示了你的模型正确的东西。

矩阵的左下角和右上角显示你的模型混淆的地方。

【讨论】:

    猜你喜欢
    • 2014-07-09
    • 1970-01-01
    • 2013-12-02
    • 2014-05-22
    • 2015-02-14
    • 2020-09-19
    • 2016-02-05
    • 2020-06-17
    • 2020-08-21
    相关资源
    最近更新 更多