和apriori演算法相比,fp-growth演算法只需要對資料庫進行兩次遍歷,從而高效發現頻繁項集。
fp-growth演算法是基於apriori原理的,通過將資料集儲存在fp(frequent pattern)樹上發現頻繁項集,但不能發現資料之間的關聯規則。fp-growth演算法只需要對資料庫進行兩次掃瞄,而apriori演算法在求每個潛在的頻繁項集時都需要掃瞄一次資料集,所以fp-growth演算法是高效的。其中演算法發現頻繁項集的過程是:
(1)構建fp樹;
(2)從fp樹中挖掘頻繁項集。
fp表示的是頻繁模式,其通過鏈結來連線相似元素,被連起來的元素可以看成是乙個鍊錶。將事務資料表中的各個事務對應的資料項按照支援度排序後,把每個事務中的資料項按降序依次插入到一棵以 null為根節點的樹中,同時在每個結點處記錄該結點出現的支援度。
fp-growth演算法的流程為:首先構造fp樹,然後利用它來挖掘頻繁項集。在構造fp樹時,需要對資料集掃瞄兩邊,第一遍掃瞄用來統計頻率,第二遍掃瞄至考慮頻繁項集。
在構建了fp樹之後,就可以抽取頻繁項集了,這裡的思想和apriori演算法大致類似,首先從氮元素項集合開始,然後在此基礎上逐步構建更大的集合。大致分為三個步驟:
(1)從fp樹中獲得條件模式基;
(2)利用條件模式基,構建乙個條件fp樹;
(3)迭代重複(1)和(2),直到樹包含乙個元素項為止。
首先,獲取條件模式基。條件模式基是以所查詢元素項為結尾的路徑集合,表示的是所查詢的元素項與樹根節點之間的所有內容。
其次,構建條件模式基。對於每乙個頻繁項,都需要建立一棵條件fp樹,使用建立的條件模式基作為輸入,採用相同的建樹**來構建樹,相應的遞迴發現頻繁項、發現條件模式基和另外的條件樹。
演算法基本概念
所謂演算法,就是解決問題的一種方法或乙個過程。具體來講,演算法是由若干指令組成的有窮序列。演算法概念並不是計算機學科獨有的概念,生活到到處可見演算法的應用。演算法要滿足4條性質 1.輸入 2.輸出 3.確定性 4.有限性 複雜性 時間複雜度 t 演算法所求解問題規模n的 函式 漸進時間複雜度 o 當...
演算法基本概念
一什麼是演算法 解決問題的策略機制,重要的是思想 求滿足a b c 1000,a 2 b 2 c 2 條件的所有a,b,c 思路 列舉法,以下被注釋掉的語句就是列舉每個滿足條件的a,b,c 但是這段語句的演算法複雜度太大 改進 a,b的值就確定了c的值,故 改進演算法如下 import time s...
演算法基本概念
演算法 algorithm 評價演算法優劣的依據 複雜度 時間複雜度和空間複雜度 時間複雜度 time complexity eg.某兩個演算法的時間頻度是t n 100000n2 10n 6100000n 2 10n 6 100000 n2 1 0n 6 t n n2 t n n 2 t n n ...