1.基本概念
Apriori算法是一种挖掘关联规则的频繁项集算法,最早由R.Agrawal提出,现已广泛的运用到商业、网络安全等领域。最常见的淘宝相关推荐便包含有这一算法。
该算法的主要步骤为:
(1) 找到所有支持度大于最小支持度的项目集,即频繁项集(Frequent Itemset);
(2) 使用第(1)步的频繁项目集产生期望的规则。
Apriori算法着重与第一步,挖掘频繁项集。
形式化描述如下:令项集I={i1,i2,...in}且有一个数据集合D,它其中的每一条记录T,都是I的子集。
那么关联规则都是形如A->B的表达式,A、B均为I的子集,且A与B的交集为空。
这条关联规则的支持度:support = P(A∪B)
这条关联规则的置信度:confidence = support(A∪B)/suport(A)
如果存在一条关联规则,它的支持度和置信度都大于预先定义好的最小支持度与置信度,我们就称它为强关联规则。强关联规则就可以用来了解项之间的隐藏关系。所以关联分析的主要目的就是为了寻找强关联规则,而Apriori算法则主要用来帮助寻找强关联规则。
2.算法描述
符号说明:
k-itemset k维项目集
L(k) 具有最小支持度的最大 k-itemset
C(k) 候选的k维项目集
首先用sc.candidate通过第(k-1)步中生成的最大项目集L(k-1)来生成候选项目集
然后搜索数据库计算候选项目集的C(k)的支持度 By count_support 函数
--------------------------------------------------------------------
综述
C(1) = { candidate 1-itemsets };
L(1)