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

2024-02-27

我正在编写一段代码来评估我的聚类算法,我发现每种评估方法都需要来自m*n类似矩阵A = {aij} where aij是属于类成员的数据点的数量ci和簇的元素kj.

但似乎有两个这种类型的矩阵数据挖掘简介(Pang-Ning Tan 等),一个是混淆矩阵,另一个是列联表。我不完全理解两者之间的区别。哪个最能描述我想要使用的矩阵?


维基百科的定义 http://en.wikipedia.org/wiki/Confusion_matrix:

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

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

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

它告诉我们:

  1. 第 1 列、第 1 行表示分类器已预测 15 个项目属于该类c1,实际上有 15 个项目属于该类c1(这是正确的预测)

  2. 第二列第 1 行表明分类器已预测 3 个项目属于该类别c2,但它们实际上属于类c1(这是一个错误的预测)

  3. 第 1 列第 2 行表示没有任何项目实际属于该类c2已被预测属于类别c1(这是一个错误的预测)

  4. 第 2 列第 2 行表明 2 个项目属于该类c2已被预测属于类别c2(这是正确的预测)

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

现在,对于列联表:维基百科的定义 http://en.wikipedia.org/wiki/Contingency_table:

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

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

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

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

  1. 150 人既喜欢茶又喜欢咖啡
  2. 50 人喜欢茶但不喜欢咖啡
  3. 650人不喜欢茶但喜欢咖啡
  4. 150 人既不喜欢茶也不喜欢咖啡

列联表用于查找关联规则的支持度和置信度,基本上是为了评估关联规则(请参阅第 6 章 6.7.1)。

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

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

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

混淆矩阵和列联表有什么区别? 的相关文章

  • 矩阵求逆 R

    我想求逆方形对称正定矩阵 我知道有两个功能solve and chol2inv 在 R 中 但他们的结果是不同的 我需要知道为什么会发生这种情况 谢谢 以下是计算矩阵逆的几种方法 包括solve and chol2inv gt A lt m
  • 查找矩阵每行中 1 的列索引

    我在 Matlab 中有以下矩阵 M 0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 每行恰好有一个 1 我如何 不循环 确定列向量 以便如果第二列中有 1 第一个元素是 2 如果第三列中有 1 第二个元素是 3 等等 上面的例
  • 网页抓取、屏幕抓取、数据挖掘技巧? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • R 矩阵可以包含不同的数据类型吗?这个被修改的列表矩阵有用吗?

    我读了这些 https stackoverflow com a 5159049 1175496 https stackoverflow com a 5159049 1175496 Matrices are for data of the s
  • 使用 R 查找包含最大值的行索引

    给定以下矩阵 假设我想找到第二列中的最大值 mat lt matrix c 1 3 7 9 4 6 byrow T nc 3 mat 1 2 3 1 1 2 3 2 7 8 9 3 4 5 6 I know max mat 2 将返回 8
  • RcppEigen - 从包中的内联函数到 .cpp 函数和“Map”

    一切似乎都在我的包中工作 但我想检查其步骤是否正确以及使用 Map 的内存使用情况 这是一个简单的示例 位于内联示例和fastLm 例子 这是一个内联函数 它取矩阵每一列的最大值 library Rcpp library inline li
  • 给定焦点和相机主中心,如何创建透视投影矩阵

    我设法使用 OpenCV 获取相机的内在和外在参数 因此我有 fx fy cx 和 cy 我还有屏幕 图像的宽度和高度 但是如何根据这些参数创建 OpenGL 透视投影矩阵呢 glFrustum 展示了如何在给定 Z 近 Z 远以及图像宽度
  • 在 Matlab 中生成加权随机布尔矩阵

    我想生成一个5x5MatLab 中的矩阵仅由 1 和 0 组成 但是我希望能够设置任何值为 1 的可能性 我希望任何元素有 90 的机会为 1 而不是 0 然而我不希望总是有 90 的 1 和 10 的 0 我只是希望这种情况更有可能发生
  • Tensorflow 中的张量乘法

    我正在尝试在 NumPy Tensorflow 中进行张量乘法 我有 3 个张量 A M X h B h X N X s C s X T 我相信A X B X C应该产生一个张量D M X N X T 这是代码 同时使用 numpy 和 t
  • 如何在Matlab中计算两个矩阵之间的快速外积?

    我有两个 n m 矩阵 A and B 我想创建一个新的矩阵C类似于 for i 1 n C C outerProduct A i B i end i e C是一个大小为 m x m 的矩阵 即各行的所有外积之和A and B 有没有一种无
  • 连接每第 n 行

    我在矩阵中得到了一个数据集 如下所示 从 Excel 导入 matrix Cat1 1 2 3 4 Cat2 9 10 11 12 Cat3 17 18 19 20 Cat1 5 6 7 8 Cat2 13 14 15 16 Cat3 21
  • 贪心聚类算法速度提升

    我正在尝试在 python 中实现一个非常简单的贪婪聚类算法 但很难优化它的速度 该算法将采用距离矩阵 找到具有最多小于预定距离截止值的分量的列 并将行索引 具有小于截止值的分量 存储为簇的成员 簇的质心是列索引 然后 从距离矩阵中删除每个
  • 如何使用浮点数组中的数据初始化 cv::Mat

    我需要创建一个cv Mat用我的数据初始化的变量float 大批 这应该是基本的 但我很难弄清楚 我有代码 float matrixAB lt 120 floating point array created elsewhere gt cv
  • eigen(corr) 中的错误:制作“相关矩阵圆图”时“x”中存在无限值或缺失值

    我想制作一个如下所示的相关矩阵 然而 R一直告诉我 Error in eigen corr infinite or missing values in x 相关矩阵圆 http gallery r enthusiasts com graph
  • 从矩阵中删除零行(优雅的方式)

    我有一个包含一些零行的矩阵 我想删除零行 矩阵是Nx3 我所做的很简单 我创造std vector其中每三个元素代表一行 然后我将其转换为Eigen MatrixXd 有没有一种优雅的方法来删除零行 include
  • R:有没有一种简单有效的方法来获取分块对角矩阵的构建分块矩阵列表?

    我正在寻找一个 内置 函数 它通过以下方式有效地返回块对角矩阵的构建块列表 而不是迭代插槽以手动获取列表 construct bdiag matrix library Matrix listElems lt list matrix 1 4
  • 如何有效地对一个数组中某个值在另一个数组中的位置出现的次数求和

    我正在寻找一种有效的 for 循环 避免解决方案来解决我遇到的数组相关问题 我想使用一个巨大的一维数组 A gt size 250 000 用于一维索引的 0 到 40 之间的值 以及用于第二维索引的具有 0 到 9995 之间的值的相同大
  • 在Matlab中将矩阵中的元素i,j设置为i*j

    我想生成一个矩阵 其中 i j 元素等于 i j 其中 i j e g 0 2 3 2 0 6 3 6 0 到目前为止 我已经发现我可以使用这个索引矩阵访问非对角线元素 idx 1 eye 3 但我还没有弄清楚如何将矩阵单元的索引合并到计算
  • PHP 矩阵的逆矩阵

    I saw 这个问题 https stackoverflow com questions 211160 python inverse of a matrix 并弹出这个想法 PHP 有没有一种有效的方法来做到这一点 EDIT 最好有演示 你
  • 如何对搜索引擎关键词进行聚类?

    从 Google Analytics 中 我有一个 长 关键字列表 人们在搜索引擎中使用这些关键字来查找我的网站 我想找到 核心关键词 假设的例子 java online training learning java scala train

随机推荐