我正在编写一段代码来评估我的聚类算法,我发现每种评估方法都需要来自m*n
矩阵的基本数据,例如A = {aij}
其中aij
是作为类ci
成员的数据点数和集群kj
的元素数。
但引入数据挖掘(Pang-Ning Tan等人)似乎有两种这样的矩阵,一种是混淆矩阵,另一种是列联表。我不完全理解两者之间的区别。哪个最能描述我想要使用的矩阵?
非常感谢您的回答!
答案 0 :(得分:24)
在人工智能领域,混淆矩阵是一种 通常用于监督学习的可视化工具(in 无监督学习通常称为匹配矩阵)。每 矩阵的列表示预测类中的实例, 而每一行代表一个实际类中的实例。
混淆矩阵应该清楚,它基本上告诉了多少实际结果与预测结果相匹配。例如,请参阅此混淆矩阵
predicted class
c1 - c2
Actual class c1 15 - 3
___________________
c2 0 - 2
它告诉我们:
Column1,第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个回复中(关于他们喜欢咖啡和茶,或两者或其中之一,调查结果的反应):
列联表用于查找关联规则的支持和置信度,主要用于评估关联规则(参阅第6章,6.7.1)。
现在不同的是,混淆矩阵用于评估分类器的性能,它告诉分类器在分类预测中的准确程度,并且列联表用于评估关联规则。
现在看完答案后,稍微谷歌(在阅读你的书时总是使用谷歌),阅读书中的内容,看几个例子,不要忘记解决书中给出的一些练习,你应该有一个关于它们的清晰概念,以及在某种情况下使用什么以及为什么。
希望这有帮助。
答案 1 :(得分:0)
简而言之,列联表用于描述数据。正如其他人指出的那样,在比较两个假设时经常使用混淆矩阵。可以将预测分类与实际分类/分类视为两个假设,其中基本事实为零,模型输出为替代。