快速容斥原理与星型模式下频繁查询挖掘
在数据挖掘领域,计算广义项集的支持度以及挖掘数据库中的频繁查询是重要的研究方向。本文将介绍快速容斥(Quick Inclusion - Exclusion)算法以及在星型模式数据库中挖掘频繁查询的相关内容。
快速容斥算法
在计算广义项集支持度时,传统的容斥算法存在效率问题。为了优化计算过程,提出了快速容斥(QIE)算法。
传统容斥算法分析
在直接访问项集支持度的朴素容斥(IE)算法中,检索所有子集的支持度成本为 (2^{|I|})。对于每个广义项集 (X \cup Y),容斥公式包含 (2^{|Y|}-1) 次操作,所有广义项集的总操作数为 (3^{|I|} - 2^{|I|}),因此总成本为 (3^{|I|})。
之前通过引入具有高效索引结构的项集支持度数组,将检索操作数从 (3^n) 降低到 (2^n),但加法操作数仍为 (3^n - 2^n)。随着 (n) 的增大,加法操作的成本会远远超过检索操作的成本。
快速容斥(QIE)算法原理
不同的容斥计算中,很多和式存在大量共享项。通过共享部分和式的计算,可以节省大量加法操作。例如:
- (abcd = ab - abc - abd + abcd)
- (abcd = a - ab - ac - ad + abc + abd + acd - abcd)
如果先计算 (support(abcd)),再使用 (abcd = acd - abcd = a - ac - ad + acd - abcd),可以节省 3 次加法操作。一般来说,对于广义项集 (G) 和不在 (G)