(1)数据。
关联规则分析用到的基本数据集记为 D ,它由事务构成,一般多储存于事务数据库中,表示为 D ={ t 1 , t 2 ,…, t m ,…, t q },其中 t m ( m =1,2,…, q )称为事务。每个事务可以用唯一的TID来标识。每个事务可再细分,表示为 t m ={ i 1 , i 2 ,…, i n ,…, i p },其中 i n ( n =1,2,…, p )称为项(Item),即事务是由若干项组成的集合,称为项集。
(2)模型。
关联规则分析的模型是基于数据发现的关联规则,如牛奶⇒面包(支持度:30%,置信度:60%)。
(3)策略。
关联规则分析主要分为两步,首先,利用频繁项集挖掘相关算法找出事务数据库中的频繁项集集合。本章对于频繁项集挖掘算法主要讲解Apriori算法(详见本节第三部分)和FP-growth算法(详见本节第四部分)。然后,基于频繁项集集合通过置信度的计算产生关联规则(详见本节第五部分)。
(4)算法。
关联规则最为经典的算法是Apriori算法,由Agrawal等人在1993年提出,其使用的一个典型的关联规则的例子是在购买轮胎和自动配件的顾客中98%的顾客将倾向于同时接受汽车的保修和保养服务。随后,Agrawal等人在先前工作的基础上,进一步完善了Apriori算法。Apriori算法需要多次扫描数据库,并且当设置的支持度阈值较小时,容易出现呈爆炸式增长的“长”关联规则。因此,包括Agrawal在内的许多学者提出了对Apriori算法的改进方法,主要包括控制候选集的规模,减少数据库的扫描次数等。其中,Han提出的FP-growth算法应用十分广泛。FP-growth算法采用分而治之的策略,只需要扫描两次原始数据集,它不适用候选集,直接将数据库压缩成一个FP-Tree(频繁模式树),最后通过这棵树生成关联规则。实验表明,FP-growth对不同长度的规则都有很好的适应性,同时在效率上较Apriori算法有巨大的提高。