Apriori算法與實例
R. Agrawal 和 R. Srikant於1994年在文獻【2】中提出了Apriori算法,該算法的描述如下:

下面是一個具體的例子,最開始數據庫里有4條交易,{A、C、D},{B、C、E},{A、B、C、E},{B、E},使用min_support=2作為支持度閾值,最后我們篩選出來的頻繁集為{B、C、E}。

上述例子中,最值得我們從L2到C的這一步。這其實就是在執行偽代碼中第一個藍色框條所標注的地方:C,具體來說在Apriori算法中,它所使用的策略如下:

可見生成策略由兩部分組成,首先是self-joining部分。例如,假設我們有一個L3={abc, abd, acd, ace, bcd}(注意這已經是排好序的}。選擇兩個itemsets,它們滿足條件:前k-1個item都相同,但最后一個item不同,把它們組成一個新的C的項集c。如下圖所示,{abc}和{abd}組成{abcd},{acd}和{ace}組成{acde}。生成策略的第二部分是pruning。對於一個位於C中的項集c,s是c的大小為k的子集,如果s不存在於Lk中,則將c從C中刪除。如下圖所示,因為{acde}的子集{cde}並不存在於L3中,所以我們將{acde}從C中刪除。最后得到的C,僅包含一個項集{abcd}。

回到之前的例子,從L2到C的這一步,我們就只能獲得{B、C、E}。以上便是Apriori算法的最核心思想。
from:https://blog.csdn.net/baimafujinji/article/details/53456931