数据挖掘实验报告
实验一:Apriori算法实现
一、Apriori算法简介
Apriori算法是经典的挖掘频繁项集和关联规则的数据挖掘算法。A priori在拉丁语中指"来自以前"。当定义问题时,通常会使用先验知识或者假设,这被称作"一个先验"(a priori)。Apriori算法的名字正是基于这样的事实:算法使用频繁项集性质的先验性质,即频繁项集的所有非空子集也一定是频繁的。Apriori算法使用一种称为逐层搜索的迭代方法,其中k项集用于探索 ( k + 1 ) (k+1) (k+1)项集。首先,通过扫描数据库,累计每个项的计数,并收集满足最小支持度的项,找出频繁1项集的集合。该集合记为 L 1 L_1 L1。然后,使用 L 1 L_1 L1找出频繁2项集的集合 L 2 L_2 L2,使用 L 2 L_2 L2找出 L 3 L_3 L3,如此下去,直到不能再找到频繁k项集。每找出一个 L k L_k Lk需要一次数据库的完整扫描。Apriori算法使用频繁项集的先验性质来压缩搜索空间。
二、基本概念
-
项与项集:设 i t e m s e t = i t e m 1 , i t e m 2 , … , i t e m m itemset={item_1, item_2, …, item_m} itemset=item1,item2,…,itemm是所有项的集合,其中, i t e m k , ( k = 1 , 2 , … , m ) item_k,(k=1,2,…,m) itemk,(k=1,2,…,m)称为项。项的集合称为项集 ( i t e m s e t ) (itemset) (itemset),包含k个项的项集称为k项集 ( k − i t e m s e t ) (k-itemset) (k−itemset)。
-
事务与事务集:一个事务T是一个项集,它是itemset的一个子集,每个事务均与一个唯一标识符Tid相联系。不同的事务一起组成了事务集D,它构成了关联规则发现的事务数据库。
-
关联规则:关联规则是形如 A ⇒ B A\Rightarrow B A⇒B的蕴涵式,其中A、B均为 i t e m s e t itemset itemset的子集且均不为空集,而A交B为空。
-
支持度(support):关联规则的支持度定义为
s u p p o r t ( A ⇒ B ) = P ( A ∪ B ) support(A\Rightarrow B)=P(A \cup B) support(A⇒B)=P(A∪B)
其中 P ( A ∪ B ) P(A \cup B) P(A∪B)表示事务包含集合A和B的并的概率。 -
置信度(confidence):关联规则的置信度定义为:
c o n