21

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

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

4

2 回答 2

29

维基百科的定义

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

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

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

它告诉我们:

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

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

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

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

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

现在,对于列联表: 维基百科的定义

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

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

       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)。

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

现在读完答案,google了一下(看书的时候总是用google),看书上的内容,看几个例子,别忘了解决书中给出的一些练习,你应该对它们都有一个清晰的概念,以及在特定情况下使用什么以及为什么使用。

希望这可以帮助。

于 2011-10-01T05:07:50.603 回答
1

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

于 2019-02-12T11:54:51.327 回答