1 集群系統中的 FP-tree 並行演算法(many for one一個任務 還是 雲計算one for many多個任務?) 電腦集群系統利用網路把一組具有高性能的工作站或者 PC 機按一定的結構連接起來, 從而形成了高效的並行的計算處理系統。 各節點之間使用消息傳遞實現通信,集群系統通常用於改 ...
1 集群系統中的 FP-tree 並行演算法(many for one一個任務 還是 雲計算one for many多個任務?)
電腦集群系統利用網路把一組具有高性能的工作站或者 PC 機按一定的結構連接起來, 從而形成了高效的並行的計算處理
系統。 各節點之間使用消息傳遞實現通信,集群系統通常用於改進單個電腦的計算速度與可靠性。
FP-growth 演算法在挖掘每個條件模式庫的過程是彼此獨立進行的,相互之間沒有數據和信息交換。 這一互相獨立的特點可以把
FP-growth 演算法轉換為並行演算法,如果將每個條件模式庫的挖掘看成一個子任務,那麼總的頻繁模式挖掘任務就能夠被劃分為數目
與頻繁項數目相等的若幹個子任務。
然後將這些子任務分配給電腦集群中的各個節點分別執行,電腦集群的各個節點完成各
自的子任務後,將計算結果傳送到中央節點,由中央節點形成統一的計算結果。
2 劃分 FP-tree 為小 FP-tree 的並行計算方法
對於給定的關聯規則挖掘任務,如何將其分解成多個相互獨立的子任務? 從而進行並行分散式處理。 下麵將分析的一種方法是
將 FP-tree 劃分成小 FP-tree,然後進行並行計算。
需要證明全部局部樹的組合和全局樹的等價性。
具體方法是:根據 FP-tree 相應的 HeaderTable 各個項首碼路徑的總長度,將 Header Table 分組,構造結點數量大致相等的小
FP 樹。 構建小 FP 樹的方法是,分別提取 Header Table 節點鏈結點位置,找出對應結點的條件模式基,之後用同一組 Header Table 包
含的所有條件模式基產生出新的 FP 樹和 Header Table,在為某部分 Header Table 構造新 FP 樹和新 Header Table 時,不用將這部分
Header Table 包含的項以外的項放進新 Header Table。 這樣便將大 FP-tree 劃分為多個小 FP-tree 方便多進程或多台機器並行處理。
3 劃分資料庫事務的並行 FP-Growth 演算法(基於Hadoop平臺,可以自動分佈,每個map預設64MB。待續詳細。)
在並行 FP-Growth 演算法當中,一種演算法是將資料庫里的記錄按照數量進行等分,然後在多個進程上進行並行計算。
該演算法基本步驟如下:
1) 劃分資料庫中的事務,將個數近乎相等的事務指定到相應處理進程;
2) 各進程分別計算項的計數,然後彙總得到頻繁 1-項集;
3) 每個處理進程按照分配的事務得到頻繁模式樹,全局頻繁 1-項集列表裡的每個項皆由一個結點鏈和每個局部的 FP-tree 中
的結點相連;
4) 在全局 1-頻繁項集列表、多顆局部 FP-tree 以及它們之間的相互連接組成的並行頻繁模式樹上面 ,進而可以進行並行頻繁
模式的挖掘。