apriori算法
基本概念
频繁项集
出现的频率不低于最小支持度的属性组合,含有K个属性的频繁项集称为频繁K项集
支持度
属性集与所有记录的百分比,最小支持度是一个阈值,当支持度大于这个阈值就是频繁项集
置信度
条件概率,置信度(confidence)是D中事物已经包含X的情况下,包含Y的百分比,即条件概率,最小置信度也是一个阈值
强关联
形如(A,B)这样的组合,P(AB)不小于最小支持度,P(B|A)不小于最小置信度,则称(A->B)是一个强关联规则
算法过程
1、扫描数据库,生成频繁1项集C1
2、由频繁K项集CK产生频繁K+1项集CK+1
产生过程两个步骤:
1、连接步:如果两个k-1项集的前k-2个项相同,而最后一个项不同,则证明它们是可连接的,即这个k-1项集可以联姻,即可连接生成k项集。使如有两个3项集,{a, b, c}{a, b, d},这两个3项集就是可连接 的,它们可以连接生成4项集{a, b, c, d}。又如两个3项集{a, b, c}{a, d, e},这两个3项集显示是不能连接生成4项集的。
2、剪枝:任何频繁项集的非空子集都是频繁项集,在生成频繁项集的过程主要用到该性质的逆否命题(如果一个项集的子集不是频繁项集,那么该项集不是频现项集)
3、由频繁项集产生强关联准则
参照强关联准则定义,将频繁项集进行拆分过程。例如:(a,b,c)是频繁3项集,可以验证P(a|bc)、P(b|ac)、P(ab|c)等等是否不小于最小置信度
算法缺点
1、产生频繁项集操作有点复杂,不够直观,并且候选频繁项集产生数量是C(n,2),表示在n项里选两项的组合数。
2、扫描数据库的次数过多,每次产生频繁项集都要扫描数据库,不适合海量数据
Note
最小支持度对整个算法性能影响很大,当最小支持度设置很小时,频繁1项集的数量剧增,导致接下来产生频繁K项集的计算量倍增。