• 沒有找到結果。

不同資料量比較

在文檔中 中 華 大 學 (頁 38-44)

第四章 實驗結果

第一節 不同資料量比較

在實驗設計我們首先以 T10I4D100KN100K 為測詴資料。此資料所代表的涵義為 資料庫擁有十萬筆交易筆數;帄均十萬筆的交易,每筆交易擁有十項物品的長度;十 萬筆資料帄均的每筆交易潛在長度為四項物品;此資料庫有十萬個不同的物品項目。

圖 4.1 縱軸為執行時間(秒),橫軸為執行緒的數量,支持度為 0.2%,也就是十萬 筆資料中要出現 200 次才為高頻項目。Thread_1 表示只用一個 thread 執行程式,

thread_2 表示使用兩個執行緒執行程式,thread_4 及 thread_8 則表示使用 4 個執行緒 及 8 個執行緒執行程式。從圖 4.1 可以看到除了 para_Chai 的執行時間比較高,其他

29

三個方法都是在 10 秒左右。會產生這種結果是因為 MATI、WDPA、para_TID 都是 使用 TID 的概念而 para_Chai 並無使用這個概念所以時間才會有如此的差異。而 MATI、

WDPA、para_TID 都差距會如此的小是因為高頻項目的數量非常少,所以各個演算法 的特色無法明顯的顯示。詳細的實驗數據如下表 4.3。

圖 4.1 資料量為 100K 支持度為 0.2%實驗數據

表 4.3 資料量為 T10I4D100KN100K 支持度為 0.2%實驗數據 1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 MATI 11.296 6.05 6.006 5.938 WDPA 11.685 7.201 6.167 6.113

para_TID 12 6 6 7

para_Chai 201 103 101 102

圖 4.2 與上一個實驗的差別為降低門檻值,支持度為 0.15%,也就是十萬筆的資 料庫中只要出現超過 150 次即為高頻項目。從圖中我們可以看到沒有使用 TID 方法 的 para_Chai 的時間一樣遠高於 MATI、WDPA、para_TID,這是因為 Apriori 演算法

0 50 100 150 200 250

thread_1 thread_2 thread_4 thread_8 執

行 時 間

(

)

資料量100K 支持度0.2%

MATI WDPA para_TID para_Chai

30

在確認候選項目是否為高頻會重複的掃描資料庫,而候選項目數量越多此情況會愈明 顯。

圖 4.2 資料量為 100K 支持度為 0.15%實驗數據

表 4.4 資料量為 T10I4D100KN100K 支持度為 0.15%實驗數據 1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 MATI 75.241 38.56 38.792 38.568 WDPA 77.636 39.716 40.054 39.736

para_TID 79 41 40 40

para_Chai 2153 1085 1262 1087

從表 4.4 中我們可以看到 MATI 與 WDPA 的執行時間差距較表 4.3 來的明顯。這 是因為降低支持度使通過門檻值的項目集合變多了,而 MATI 與 WDPA 也因為項目 集合變多讓其演算法的不同處表現出來。

0 500 1000 1500 2000 2500

thread_1 thread_2 thread_4 thread_8 執

行 時 間

(

)

資料量100K 支持度0.15%

MATI WDPA para_TID para_Chai

31

圖 4.3 資料量 10K 支持度 0.1%實驗數據

接下來我們比較的資料庫資料為一萬筆交易,環境支持度設定為 0.1%而每筆交 易的帄均長度一樣為 10,最大潛在頻繁項目帄均長度一樣為 4,物品項目數量為 10 萬。因為 para_Chai 未使用 TID 方法,所花的時間較長,所以我們在圖中也就不顯示。

圖 4.3 為 MATI、WDPA、para_TID 在此參數下的實驗結果。

雖然資料量從 10 萬筆變成 1 萬筆資料,但是支持度的%數降低其他的參數也不 變,這樣的情況下使得更多的高頻項目被產生。雖然資料庫的大小變小了,但是通過 的高頻項目變多了,所以 MATI 與 WDPA 及 para_TID 的差距也更明顯。

表 4.5 資料量 T10I4D10KN100K 支持度 0.1%實驗數據

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 MATI 9.812 5.382 5.132 5.101 WDPA 13.213 7.378 7.207 7.082

para_TID 23 12 13 15

para_Chai 3993 2059 2048 2043

0 5 10 15 20 25

thread_1 thread_2 thread_4 thread_8 執

行 時 間

(

)

資料量10K 支持度0.1%

MATI WDPA para_TID

32

第四個實驗我們以上一個實驗相同的資料執行較低支持度 0.05%的數據。而 para_Chai 所花的時間太多,我們在圖 4.4 就不顯示其實驗數據。

圖 4.4 資料量 10K 支持度 0.05%實驗數據

在此支持度下通過門檻值的項目集合為上一實驗的數倍,所以每個演算法跑出來 的時間也增加了數倍。在圖 4.4 裡我們可以看到 MATI 從 1 個執行緒到 2 個執行緒、

4 個執行緒、8 個執行緒都是帄穩的下降,但是 WDPA 及 para_TID 在 2 個執行緒到 4 個執行緒、8 個執行緒的部分是有微微升高的。這個情況是因為 WDPA 與 para_TID 在帄行處理時沒有規劃其資料切割後在各個核心是否會產生相同的高頻項目,所以在 回收各個核心所產生的高頻項目時,就必頇判斷回收的高頻項目是否已經存到。也因 為這個動作使得演算法的速度被拖慢。表 4.6 為各演算法的數據。

0 50 100 150 200 250 300 350 400

thread_1 thread_2 thread_4 thread_8 執

行 時 間

(

)

資料量10K 支持度0.05%

MATI WDPA para_TID

33

表 4.6 資料量 T10I4D10KN100K 支持度 0.05%實驗數據

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 MATI 45.786 24.694 21.902 21.496 WDPA 129.168 96.033 101.914 105.081

para_TID 341 198 185 198

para_Chai 32004 16538 19195 18359

圖 4.6 顯示 T10I4D10KN100K 的數據中以 2 個執行緒在不同的支持度來看各個演 算法有什麼差異。T10 表示每筆交易的帄均長度為 10;I4 表示最大潛在頻繁項目帄 均長度為 4;D10K 表示交易筆數為一萬筆交易,其中 K 代表 1000 的意思;N100K 表示資料庫中有十萬個不同的物品項目,K 一樣代表 1000。

圖 4.5 資料量 10K 不同支持度比較

從圖 4.5 可以發現支持度越低所花的時間越多,因為支持度低也就代表會有較多 的高頻項目,所以處理時間也會較久。而圖中橫軸代表支持度其間隔為 0.05%,我們 可以發現其支持度越低所花的時間為指數成長的。而支持度越高則通過門檻值的高頻 項目也就越少,所以時間花費也就較少。表 4.7 為實驗的詳細數據。

0 50 100 150 200 250

sup_0.05% sup_0.1% sup_0.15% sup_0.2%

執 行 時 間

(

)

資料量10K 不同支持度

MATI WDPA para_TID

34

表 4.7 資料量 T10I4D10KN100K 不同支持度比較

支持度 0.05% 支持度 0.1% 支持度 0.15% 支持度 0.2%

MATI 22.1 5.382 1.061 0.18

WDPA 96.033 7.378 1.138 0.187

para_TID 201 13 2 1

para_Chai 16538 2059 254 23

在文檔中 中 華 大 學 (頁 38-44)

相關文件