关联规则-Apriori算法

来源:互联网 发布:qq空间淘宝推广平台 编辑:程序博客网 时间:2024/05/13 06:38

关联规则的挖掘分为两步:1,找出所有频繁项集;2,由频繁项集产生强关联规则。总体的性能由第一步决定。
Apriori核心算法思想简要描述如下:
该算法中有两个关键步骤为连接步和剪枝步。
1)连接步:为找出Lk(频繁k项集),通过Lk-1与自身连接,产生候选k项集,该候选k项集,该候选集记作Ck;其中Lk-1的元素是可连接的。
2)剪枝步:Ck是Lk的超集,即它的成员可以是也可以不是频繁的,但所有的频繁项集都包含在Ck中。扫描数据库,确定Ck中每一个候选的计数,从而确定Lk(计数值步小于最小支持度计数的所有候选是频繁的,从而属于Lk)。然而,Ck可能很大,这样涉及的计算量就很大。为了压缩Ck,使用Apriori性质:任何非频繁的(k-1)项集都不可能是频繁k项集的子集(推论出:频繁k项集的任何非空真子集都必需是频繁的)。因此,如果一个候选K项集(k-1)项集不在Lk中,则该候选项不可能是频繁的,从而可以由Ck中删除(可利用该定论来剪枝:只需检验(k-1)项集是不是频繁的就可以了,因为小于k-1项集已经在得到(k-1)项集时得到了验证)。

其中比较容易产生疑问的是自连接这里,过程可以用下图表示:
image

算法步骤:
1. 扫描全部数据,产生候选1-项集的集合C1;
2. 根据最小支持度,由候选1-项集的集合C1产生频繁1-项集的集合L1;
3. 对k>1,重复执行步骤4、5、6
4. 由Lk执行连接(自连接)和剪枝操作,产生候选(k+1)-项集的集合Ck+1;
5. 根据最小支持度,由候选(k+1)-项集的集合Ck+1,产生频繁(k+1)-项集的集合Lk+1;
6. 若L!=空集,则k=k+1,跳往步骤4;否则跳往步骤7;
7. 根据最小置信度,由频繁项集产生强关联规则,结束。

0 0
原创粉丝点击