我正在编写一段代码来评估我的聚类算法,我发现每种评估方法都需要来自m*n
矩阵的基本数据,例如A = {aij}
whereaij
是 class 成员ci
和 cluster 元素的数据点的数量kj
。
但是在Introduction to Data Mining (Pang-Ning Tan et al.)中似乎有两种这种类型的矩阵,一种是混淆矩阵,另一种是列联表。我不完全理解两者之间的区别。哪个最能描述我想使用的矩阵?
我正在编写一段代码来评估我的聚类算法,我发现每种评估方法都需要来自m*n
矩阵的基本数据,例如A = {aij}
whereaij
是 class 成员ci
和 cluster 元素的数据点的数量kj
。
但是在Introduction to Data Mining (Pang-Ning Tan et al.)中似乎有两种这种类型的矩阵,一种是混淆矩阵,另一种是列联表。我不完全理解两者之间的区别。哪个最能描述我想使用的矩阵?
在人工智能领域,混淆矩阵是一种可视化工具,通常用于监督学习(在无监督学习中通常称为匹配矩阵)。矩阵的每一列代表预测类中的实例,而每一行代表实际类中的实例。
混淆矩阵应该很清楚,它基本上告诉了有多少实际结果与预测结果相匹配。例如,看这个混淆矩阵
predicted class
c1 - c2
Actual class c1 15 - 3
___________________
c2 0 - 2
它告诉我们:
Column1, row 1 表示分类器已经预测了 15 个项目属于 class c1
,实际上有 15 个项目属于 class c1
(这是一个正确的预测)
第二列第 1 行告诉分类器已经预测了 3 个项目属于 class c2
,但它们实际上属于 class c1
(这是一个错误的预测)
第 1 列第 2 行表示实际上属于类的所有项目c2
都没有被预测为属于类c1
(这是错误的预测)
第 2 列第 2 行表示属于类的 2 个项目c2
已被预测属于类c2
(这是一个正确的预测)
现在从你的书(第 4 章,4.2)中看到准确率和错误率的公式,你应该能够清楚地理解什么是混淆矩阵。它用于使用具有已知结果的数据来测试分类器的准确性。K-Fold 方法(书中也提到)是计算分类器准确性的方法之一,您的书中也提到过。
现在,对于列联表: 维基百科的定义:
在统计学中,列联表(也称为交叉表或交叉表)是一种矩阵格式的表,用于显示变量的(多变量)频率分布。它通常用于记录和分析两个或多个分类变量之间的关系。
在数据挖掘中,列联表用于显示哪些项目一起出现在阅读中,例如在交易中或在销售分析的购物车中。例如(这是您提到的书中的示例):
Coffee !coffee
tea 150 50 200
!tea 650 150 800
800 200 1000
它告诉在 1000 个回复中(关于他们喜欢咖啡和茶还是两者或其中之一的回复,调查结果):
列联表用于查找关联规则的支持和置信度,主要是评估关联规则(请阅读第 6 章,6.7.1)。
现在不同的是,混淆矩阵用于评估分类器的性能,它告诉分类器在对分类进行预测时有多准确,而列联表用于评估关联规则。
现在读完答案,google了一下(看书的时候总是用google),看书上的内容,看几个例子,别忘了解决书中给出的一些练习,你应该对它们都有一个清晰的概念,以及在特定情况下使用什么以及为什么使用。
希望这可以帮助。
简而言之,列联表用于描述数据。正如其他人指出的那样,混淆矩阵在比较两个假设时经常使用。可以将预测与实际分类/分类视为两个假设,基本事实为空,模型输出为替代假设。