關於apriori算法的一個簡單的例子


  apriori算法是關聯規則挖掘中很基礎也很經典的一個算法,我認為很多教程出現大堆的公式不是很適合一個初學者理解。因此,本文列舉一個簡單的例子來演示下apriori算法的整個步驟。

  下面這個表格是代表一個事務數據庫D,其中最小支持度為50%,最小置信度為70%,求事務數據庫中的頻繁關聯規則。

Tid 項目集
1  面包,牛奶,啤酒,尿布
2  面包,牛奶,啤酒
3  啤酒,尿布
4  面包,牛奶,花生

   apriori算法的步驟如下所示:

  (1)生成候選頻繁1-項目集C1={{面包},{牛奶},{啤酒},{花生},{尿布}}。

  (2)掃描事務數據庫D,計算C1中每個項目集在D中的支持度。從事務數據庫D中可以得出每個項目集的支持數分別為3,3,3,1,2,事務數據庫D的項目集總數為4,因此可得出C1中每個項目集的支持度分別為75%,75%,75%,25%,50%。根據最小支持度為50%,可以得出頻繁1-項目集L1={{面包},{牛奶},{啤酒},{尿布}}。

  (3)根據L1生成候選頻繁2-項目集C2={{面包,牛奶},{面包,啤酒},{面包,尿布},{牛奶,啤酒},{牛奶,尿布},{啤酒,尿布}}。

  (4)掃描事務數據庫D,計算C2中每個項目集在D中的支持度。從事務數據庫D中可以得出每個項目集的支持數分別為3,2,1,2,1,2,事務數據庫D的項目集總數為4,因此可得出C2中每個項目集的支持度分別為75%,50%,25%,50%,25%,50%。根據最小支持度為50%,可以得出頻繁2-項目集L2={{面包,牛奶},{面包,啤酒},{牛奶,啤酒},{啤酒,尿布}}。

  (5)根據L2生成候選頻繁3-項目集C3={{面包,牛奶,啤酒},{面包,牛奶,尿布},{面包,啤酒,尿布},{牛奶,啤酒,尿布}},由於C3中項目集{面包,牛奶,尿布}中的一個子集{牛奶,尿布}是L2中不存在的,因此可以去除。同理項目集{面包,啤酒,尿布}、{牛奶,啤酒,尿布}也可去除。因此C3={面包,牛奶,啤酒}。

  (6)掃描事務數據庫D,計算C3中每個項目集在D中的支持度。從事務數據庫D中可以得出每個項目集的支持數分別為2,事務數據庫D的項目集總數為4,因此可得出C2中每個項目集的支持度分別為50%。根據最小支持度為50%,可以得出頻繁3-項目集L3={{面包,牛奶,啤酒}}。

  (7)L=L1UL2UL3={{面包},{牛奶},{啤酒},{尿布},{面包,牛奶},{面包,啤酒},{牛奶,啤酒},{啤酒,尿布},{面包,牛奶,啤酒}}。

  (8)我們只考慮項目集長度大於1的項目集,例如{面包,牛奶,啤酒},它的所有非真子集{面包},{牛奶},{啤酒},{面包,牛奶},{面包,啤酒},{牛奶,啤酒},分別計算關聯規則{面包}—>{牛奶,啤酒},{牛奶}—>{面包,啤酒},{啤酒}—>{面包,牛奶},{面包,牛奶}—>{啤酒},{面包,啤酒}—>{牛奶},{牛奶,啤酒}—>{面包}的置信度,其值分別為67%,67%,67%,67%,100%,100%。由於最小置信度為70%,可得},{面包,啤酒}—>{牛奶},{牛奶,啤酒}—>{面包}為頻繁關聯規則。也就是說買面包和啤酒的同時肯定會買牛奶,買牛奶和啤酒的同時也是會買面包。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM