代码之家  ›  专栏  ›  技术社区  ›  JakeSays

如何在WEKA中读取分类器混淆矩阵

  •  17
  • JakeSays  · 技术社区  · 11 年前

    对不起,我是WEKA的新手,只是在学习。

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

    a    b   <----- classified as
    130  8     a = functional
    15   150   b = non-functional
    
    • 我如何阅读这个矩阵?a&b
    • 另外,有人能向我解释一下什么是域值吗?
    2 回复  |  直到 11 年前
        1
  •  22
  •   Junuxx    5 年前

    你读过吗 wikipedia page on confusion matrices ? 在他们的例子中,矩阵周围的文本排列略有不同(行标签在左边而不是右边),但你读起来是一样的。

    行表示真正的类,列表示分类器的输出。那么,每个条目都会给出 <row> 被分类为 <column> 在你的例子中,15个B被(错误地)归类为A,150个B被正确地归类为B,等等。

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

    编辑 :维基百科页面已经切换了行和列。这种情况会发生。当研究混淆矩阵时,一定要检查标签,看看它是行中的真实类,列中的预测类,还是相反。

        2
  •  17
  •   Mental Nomad    10 年前

    我会这样说:

    混淆矩阵是Weka报告这款J48车型在哪些方面是对的,哪些方面是错的。

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

    这些列告诉你你的模型是如何对你的样本进行分类的——这就是模型预测的:

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

    另一方面,这些行代表了现实:

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

    了解了列和行,您可以深入了解详细信息:

    • 左上角,130,是你的模特认为是“a”的东西,实际上是 “a”<-这些都是正确的
    • 左下角,15,是你的模特认为是“a”的东西,但哪个 真的是“b”<-一种错误
    • 右上角,8,是你的模特认为是“b”的东西,但哪个 真的是“a”<-另一种错误
    • 右下角,150个是你的模特认为是“b”的东西 真的是“b”

    所以矩阵的左上角和右下角显示了您的模型得到的正确结果。

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