apriori存在以下不足,每次計算項集都會產生大量的候選項集,使計算資源和儲存空間產生浪費。而樹模型是一種很好的儲存資料的方式,故fpgrowth演算法由此而生。fpgrowth演算法是優化版的apriori演算法。
某家水果店的訂單清單如下:
購物單號
購買的水果
1蘋果、香蕉、梨
2蘋果、香蕉、梨、芒果
3香蕉、梨、芒果、水蜜桃
4蘋果、芒果
5蘋果、芒果、水蜜桃、橘子
fpgrowth演算法原理:
step1:
掃瞄一遍資料集,計算k=1的項集支援度,按從大到小進行排序,提出不滿足最小支援度的項集。(假設min_support = 0.5)
得到如下水果n
蘋果4芒果4
香蕉3梨3
step2:
將原始表每條交易記錄也按從大到小產生的順序排序。
得到如下
購物單號
購買的水果
1蘋果、香蕉、梨
2蘋果、芒果、香蕉、梨
3香蕉、芒果、梨
4蘋果、芒果
5蘋果、芒果
step3:
將交易記錄結果記錄到fp樹上。
step4:從下往上,從梨到蘋果,進行查詢,(假設min_support = 0.5)。
如下:梨的頻繁項集:
香蕉的頻繁項集:
芒果的頻繁項集:、
蘋果的頻繁項集:
總借頻繁項集為:、、、、
關聯規則挖掘演算法 FP Growth
它仍可能產生大量的候選集。例如,如果10的4次方個頻繁1項集,則apriori演算法需要產生多達10的7次方個候選2項集。它可能需要重複地掃瞄資料庫,通過模式匹配檢查乙個很大的候選集合。檢查資料庫中每個事務來確定候選集支援度的開銷很大。fp growth可以消除上述apriori演算法的兩中開銷。f...
關聯分析演算法
關聯分析演算法 關聯分析演算法的應用非常廣泛,它可以在大規模資料集中找出一組有關聯的資料。例如 商品分析中,我們可以分析出哪些商品之間有購買的關聯,也就是買了其中乙個商品之後,顧客就很有可能買另外乙個商品。頻繁項集是指那些經常出現在一起的物品集合,那麼如何評價這裡的頻繁程度呢?我們用支援度和可信度 ...
Apriori演算法和FP growth演算法比較
關聯分析可以用於回答 哪些商品經常被同時購買?之類的問題 關聯分析是在大規模資料集中尋找有趣關係的任務,這些關係可以有兩種形式 頻繁項集 是經常出現在一塊兒的物品的集合 關聯規則 按時兩種物品之間可能存在很強的關係。支援度是針對項集來說的,因此可以定義乙個最小支援度,而只保留滿足最小值尺度的項集。可...