关联规则(association rule)挖掘与频繁项集挖掘算法Apriori Java实现

假设你是一家超市的经理 ,你会想要了解顾客的购物习惯。你会想知道顾客可能会在一次购物中同时购买哪些商品,这样你就能合理安排货架,从而创造更大的利润。这就是关联规则(association rule)。其表现形式如下:

breadmilk[support=10%;confidence=60%]

规则的支持度(support)置信度(confidence)是规则的两种度量。它们分别代表了规则的应用能力可信能力。上式代表的含义为60%购买面包的顾客会购买牛奶,而同时购买这两者的交易占了总交易的10%。

关联规则挖掘过程

  1. 找出所有的频繁项集(frequent itemset):这些项集的出现次数跟预先定义的最小支持数min_sup一样;
  2. 由频繁项集产生强关联规则:找出满足最小支持度和最小置信度的规则

一般来说,关联规则挖掘研究都集中在第一步,第二步只需要简单的统计即可。下面我将介绍频繁项集挖掘的经典算法 Apriori 算法,并提供Java 源代码。

Apriori 算法

Apriori算法是Agrawal和R.Arikant于1994年提出的。其算法核心是反单调性(antimonotone):如果一个项集的出现次数少于最小支持度,那么它的超集出现次数也一定少于最小支持度。利用这个性质,可以大大减少搜索空间。算法的基本步骤就是不断扫描数据库,先找出 1-itemset 中超过最小支持度的项集,然后再将这些项集连接为2-itemset,再扫描数据库,留下出现次数大于最小支持度的项集,。。。 其间,根据反单调性,再生成超集时,有许多项集不用统计次数。

下面给出Apriori算法源代码,点击下载

猜你喜欢

转载自blog.csdn.net/jiafgn/article/details/63267720