• 沒有找到結果。

第五章 MapReduce 平行圖型探勘

6.2 實驗分析

本論文以上述資料集,分別執行演算法 FNP_Mining 和 gSFNP_Mine,設定 成只輸出不超過大小為 3 的常見鄰近子圖樣式。因原始資料圖過大,我們從資料 圖中分別抽樣取出設定節點數所形成的連通圖,以控制產生圖型的節點數,同一 設定節點數會抽樣 10 次取執行時間的平均值。在此小節我們以實驗改變最小支 持度門檻值及各種資料集特性參數來評估兩演算法 FNP_Mining 和 gSFNP_Mine 的執行時間。而實驗環境分為兩種,一為單機實驗、二為由三台電腦建構的分散

【單機實驗一】比較不同最小支持度對 gSFNP 演算法和 FNP 演算法在執行時間 上的影響。

測試資料為從測試資料圖中抽樣取包含 100~500 個節點之連通圖型 10 組,

在此實驗中變動最小支持度門檻值,使用兩種演算法分別探勘常見鄰近子圖樣式,

取其在 10 組圖型的平均執行時間,實驗結果如圖 32 至圖 36 所示。實驗結果顯 示,在不同節點數的圖型,兩個演算法隨著最小支持度門檻值增加,執行時間都 隨之降低。

整體而言,gSFNP 演算法比 FNP 執行時間短,且兩者執行時間的差距在最 小支持度門檻值愈小時落差愈明顯。因 FNP 採用類似 Apriori 的方式,由兩個鄰 近樣式組合成更大的鄰近樣式,在組合樣式時可能因為比對相同部分造成產生多 個樣式組合,而組合出樣式後仍需將先前比對到的對應圖做組合比對的處理,因 此在計算過程中占用記憶體及花費時間相對多。此外在組合完成後又因可能產生 圖型同構的樣式而需對所有樣式採用 minimum DFS code 產生唯一編碼。而 gSFNP 透過父圖且藉由節點之鄰邊串列成長,較 FNP 節省組合時間,也不須對大量由組 合產生的鄰近樣式進行圖型同構檢查,因此 gSFNP 比 FNP 在探勘常見鄰近子圖 更節省時間及記憶體。

圖 32 gSFNP 和 FNP 在 100 個節點圖型的平均執行時間

圖 33 gSFNP 和 FNP 在 200 個節點圖型的平均執行時間

2.8167 2.5474 1.6953 2.0602 2.3326 1.4243 1.8506

1.4091 1.1343 23.7325

12.3947 12.4935 11.9151 11.4409 11.4835 10.6707

5.9869 6.1716

圖 34 gSFNP 和 FNP 在 300 個節點圖型的平均執行時間

28.7952 25.5671 20.2572

4.4053

38.8429 37.4646 38.3213

29.0728

13.1119

0.2694 0.0786 0.0599 0.0604 114.3498

105.8879 103.0639

72.217

圖 36 gSFNP 和 FNP 在 500 個節點圖型的平均執行時間

53.7932 53.382 48.4559 36.5656 32.2525 11.2909 8.2049 0.1175 0.0887 566.104

458.3054

404.4321

150.4245 133.3564 59.2263

23.2046 0.0808 0.0574 0

100 200 300 400 500 600

0 . 1 0 . 2 0 . 3 0 . 4 0 . 5 0 . 6 0 . 7 0 . 8 0 . 9

時間(S)

支持度

抽樣10次500個節點

gSFNP FNP

【單機實驗二】固定最小支持度門檻值,比較 gSFNP 演算法和 FNP 演算法在不

25.1768 38.8429 53.7932

23.7325

78.8195 117.1787 114.3498

566.104

【單機實驗三】固定節點數 500 且最小支持度 0.1 的情況下,顯示 gSFNP 及 FNP 兩個演算法時間與密度的關係。

測試資料為從測試資料途中抽樣 500 個節點之連通圖型 10 組,固定最小支 持度門檻值為 0.1,並使用兩種演算法探勘常見鄰近子圖樣式,在 10 組圖型的執 行時間,實驗結果如圖 38。我們將圖型密度訂為圖型總邊數|E|除以(4*圖型總節 點數|V|),因為兩個節點間至少可以有兩個相同標記的邊,且方向相反,因此此 值密度能大略表示一個圖型中連結的情形是否密集或是稀疏,但無法確知節點間 的相連情形,實驗三想觀察圖型密度與演算法執行時間之關係

圖 38 中顯示 10 組圖型的連結密度,密度越大表示圖型連結可能越密集,儲 存樣式比對到的對應圖型也相對越多,執行時間也會隨之成長。但在低密度圖型 時執行時間仍會有起伏,這可能由於在圖型中某些節點同時是其他多個節點的鄰 點情況發生時,會致使同一鄰近樣式可能產生大量對應圖,因此對密度不同的圖 型,執行時間仍會起伏不定,而 gSFNP 較 FNP 的曲線起伏較平穩。

另外 gSFNP 依據深先搜尋的方式產生常見鄰近子圖樣式,使記憶體在子圖圖 型成長時,因儲存圖形結構資訊只需針對父圖型結構列舉更大的鄰近樣式,同時 父圖型若完成子圖圖型成長也能夠釋放記憶體空間使用。相反地 FNP 採廣先搜尋 順序產生圖型樣式,先產生所有 size k 的常見鄰近子圖,再組合成 size (k+1)的候 選鄰近子圖樣式。因此在探勘鄰近子圖樣式時,gFNP 儲存於記憶體中的的圖型

資訊較 FNP 演算法來得少,因此 gSFNP 較不需等待記憶體釋放空間,故執行時

360.997 389.228 885.455

【單機實驗四】固定節點數 500 且最小支持度 0.1 的情況下,顯示 gSFNP 及 FNP

【平行實驗一】在 MapReduce 平行架構下,比較 FNP 及 gSFNP、gSFNP_MR 三 個演算法的執行時間。

測試資料為固定 500 節點之連通圖型 (如圖 39 第 9 資料點),最小支持度門 檻值同為 0.1。由於該組圖型是 gSFNP 效果最差的情況下,而此情況是由於面臨 單機記憶體不足而致使 gSFNP 執行時間較長,因此此實驗以平行化處理觀察是否 能解決此問題。實驗中 Hadoop 的系統參數設定為預設值,並將 Mapper 及 Reducer 使用記憶體限制設置為 8G,每一台電腦最多執行兩個 Mapper。

實驗結果如圖 40 所示,結果顯示 gSFNP_MR 在一台 PC 的情況下,執行時 間比 gSFNP 短,但 gSFNP_MR 隨著佈署電腦的數量越多,執行時間越長。但 gSFNP 及 gSFNP_MR 皆比 FNP 的執行時間來得短。

根據 Hadoop 內建的監督任務程序發現電腦在執行的傳輸時間遠大於執行時 間,實際測試電腦間連線傳輸資料的時間,在網路 90Mbps/s 的情況下,資料傳輸 約莫 11MB/s 左右。另外 MapReduce 透過讀寫檔案做為輸入資料及輸出結果,也 需要考慮電腦在 I/O 讀寫的速率,而三台電腦 master、slave01、slave02 硬碟讀寫

I/O 的速度分別為 180MB/s、125MB/s 及 178MB/s。因此在硬碟讀寫 I/O 速度遠大 於資料傳輸時間,而資料傳輸時間也大於執行時間的情況下,gSFNP_MR 可能礙 於實驗平台的限制,無法發揮平行分散式處理的優點。從實驗結果 1PC 的環境下,

因為 gSFNP_MR 只須考慮 I/O 讀寫時間,而不須考慮傳輸時間的情況下,該組圖

型確實使 gSFNP 面臨記憶體不足的問題而使得執行時間較長,而 gSFNP_MR 能 夠解決 gSFNP 記憶體不足的問題。

圖 40 平行處理和單機實驗的執行時間

0 50 100 150 200 250 300 350 400 450 500

1 PC 2 PC 3 PC

時間(s)

gSFNP_MR gSFNP FNP

相關文件