混淆矩阵和列联表有啥区别?

Posted

技术标签:

【中文标题】混淆矩阵和列联表有啥区别?【英文标题】:What is the difference between a Confusion Matrix and Contingency Table?混淆矩阵和列联表有什么区别? 【发布时间】:2011-11-28 14:30:16 【问题描述】:

我正在编写一段代码来评估我的聚类算法,我发现每种评估方法都需要来自m*n 矩阵的基本数据,例如A = aij 其中aij 是数据点的数量是类 ci 的成员和集群 kj 的元素。

但是在Introduction to Data Mining(Pang-Ning Tan et al.)中似乎有两种这种类型的矩阵,一种是混淆矩阵,另一种是列联表。我不完全理解两者之间的区别。哪个最能描述我想使用的矩阵?

【问题讨论】:

顺便说一句:我从不同的上下文中知道(在许多设置中,包括您在任何地方遇到的流行数据集)点的几何配置及其类并不相关好吧。我不确定这是否为您提供了衡量聚类质量的好工具,除非您当然做出/可以做出类和点位置相关性良好的假设。 我很确定根本没有区别。混淆矩阵只是您的预测和真实标签的列联表。 【参考方案1】:

简而言之,列联表是用来描述数据的。正如其他人指出的那样,混淆矩阵在比较两个假设时经常使用。可以将预测与实际分类/分类视为两个假设,其中基本事实为空,模型输出为备选。

【讨论】:

【参考方案2】:

Wikipedia's definition:

在人工智能领域,混淆矩阵是 通常用于监督学习的可视化工具(在 无监督学习通常称为匹配矩阵)。每个 矩阵的列表示预测类中的实例, 而每一行代表一个实际类中的实例。

混淆矩阵应该很清楚,它基本上告诉了有多少实际结果与预测结果相匹配。例如,看这个混淆矩阵

                 predicted class
                        c1  -  c2
  Actual class   c1     15  -   3
                ___________________
                 c2     0   -   2

它告诉我们:

    Column1, row 1 表示分类器已经预测了15个项目属于c1类,实际上有15个项目属于c1类(这是一个正确的预测)

    第二列第1行告诉分类器已经预测了3个项目属于c2类,但它们实际上属于c1类(这是一个错误的预测)

    第 1 列第 2 行表示实际属于 c2 类的所有项目都没有被预测为属于 c1 类(这是错误的预测)

    第 2 列第 2 行告诉我们已经预测属于 c2 类的 2 个项目属于 c2 类(这是一个正确的预测)

现在从你的书(第 4 章,4.2)中看到准确率和错误率的公式,你应该能够清楚地理解什么是混淆矩阵。它用于使用具有已知结果的数据来测试分类器的准确性。 K-Fold 方法(书中也提到)是计算分类器准确率的方法之一,您的书中也提到过。

现在,对于列联表: Wikipedia's definition:

在统计中,列联表(也称为交叉表) 制表或交叉表)是一种矩阵格式的表格, 显示变量的(多变量)频率分布。 常用于记录和分析两个或 更多分类变量。

在数据挖掘中,列联表用于显示哪些项目一起出现在阅读中,例如在交易中或在销售分析的购物车中。例如(这是你提到的书中的例子):

       Coffee  !coffee
tea    150       50      200
!tea   650       150     800
       800       200    1000   

它表明在 1000 条回复中(关于他们喜欢咖啡和茶还是两者或其中之一的回复,调查结果):

    150 人同时喜欢茶和咖啡 50 人喜欢茶但不喜欢咖啡 650 人不爱喝茶爱喝咖啡 150 人既不喜欢茶也不喜欢咖啡

列联表用于查找关联规则的支持度和置信度,主要用于评估关联规则(请阅读第 6 章,6.7.1)。

现在不同的是,混淆矩阵用于评估分类器的性能,它告诉分类器在对分类进行预测时有多准确,而列联表用于评估关联规则。

现在在阅读完答案后,google了一下(在阅读书籍时始终使用google),阅读书中的内容,查看一些示例,并且不要忘记解决书中给出的一些练习,并且你应该对它们都有一个清晰的概念,以及在特定情况下使用什么以及为什么使用。

希望这会有所帮助。

【讨论】:

以上是关于混淆矩阵和列联表有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

如何标准化混淆矩阵?

使用Python ORM的交叉表(列联表)?

遥感软件中混淆矩阵是如何产生的

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

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

matlab混淆矩阵怎么变大