• 沒有找到結果。

不同資料帄均長度

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

第四章 實驗結果

第二節 不同資料帄均長度

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

35

圖 4.6 我們可以看到 WDPA 與 para_TID 在 4 個執行緒及 8 個執行緒時與 2 個執 行緒相比會有多餘的時間浪費。這是因為產生候選項目及確認候選項目是否為高頻都 是帄行運作,但是在帄行的過程中產生相同的候選項目或高頻項目,所以在做資料集 中至同一執行緒時多了項目是否已經存在的判斷。有因為上面所述之原因,當執行緒 數量愈多、產生的資料愈多時都會讓圖 4.6 的情況更加明顯。MATI 也因為合併的方 法與 WDPA 及 para_TID 不相同所以在高頻項目增加時,演算法的優點也較為明顯,

就算是只有一個執行緒我們所提出的 MATI 演算法也優於 WDPA 及 para_TID 演算法。

詳細的數據如下表。

表 4.8 資料量 T20I4D10KN100K 支持度 0.1%實驗數據

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 MATI 110.298 55.394 55.775 55.012 WDPA 180.652 123.514 125.876 136.345

para_TID 356 199 205 219

我們以相同的實驗資料 T20I4D10KN100K,不同的支持度 0.015%。相較於上一 個實驗此實驗擁有較高的支持度所以高頻項目的數量也會較少,實驗的圖如下圖 4.7 所示。

圖 4.7 所示實驗結果個個演算法中仍然是 MATI 的結果最佳,但是其幅度不如圖 4.6 明顯。這是因為調高了支持度使通過門檻值的項目集合變少了,所以各演算法的 優缺點會不如圖 4.6 來的明顯。實驗數據如表 4.9。

36

圖 4.7 帄均交易長度 20 支持度 0.15%實驗數據 表 4. 9 資料量 T20I4D10KN100K 支持度 0.15%實驗數據

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 MATI 55.552 29.047 28.876 28.106 WDPA 69.226 40.82 40.565 41.046

para_TID 101 56 57 59

在交易帄均長度 20 的實驗中接下來改變其潛在長度,從潛在長度 4 改至潛在長 度 8,而交易筆數一樣為一萬筆,物品項目為十萬個物品項目。

0 20 40 60 80 100 120

thread_1 thread_2 thread_4 thread_8 執

行 時 間

(

)

帄均交易長度20 支持度 0.15%

MATI WDPA para_TID

37

圖 4.8 潛在長度 8 支持度 0.15%實驗數據

表 4.10 資料量 T20I8D10KN100K 支持度 0.15%實驗數據

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 MATI 19.51 10.591 9.444 9.179 WDPA 99.963 79.528 87.504 92.644

para_TID 320 167 180 200

此演算法可以更明顯的看出 MATI 是三個演算法中效率最高的,沒經過處理的 para_TID 所顯示的結果是當執行緒的數量越多時,在合併個執行緒的資料所造成的 時間消耗非常的高。也就是如果不減少各個執行緒做相同的工作,那麼所造成的時間 浪費則會更加嚴重。在 WDPA 演算法中也是存在著這樣的情況。

因為此實驗資料將潛在帄均長度從 4 改成 8,所以高頻項目的項目個數被拉高,

也就是說此演算法一階一階合併上去的階層數增加。而因為項目各數的增加可以看到 MATI 演算法比起 WDPA 及 para_TID 所花的時間是最少的。因為第三章所提到的「快 速合併」多了許多判斷來決定該項目是否該合併成為候選項目,而降低了許多的候選

0 50 100 150 200 250 300 350

thread_1 thread_2 thread_4 thread_8 執

行 時 間

(

)

潛在長度8 支持度 0.15%

MATI WDPA para_TID

38

項目被產生,省去了一些多餘的工作。圖 4.8 也說明了當潛在長度愈高時,與其他的 方法差異也會更為顯著。

圖 4.9 資料量 100K 執行緒數量 2

圖 4.9 是 T10I4D100KN100K 支持度 0.15%,計算各執行緒所產生的候選項目數 量,縱軸是產生候選項目的個數;橫軸為演算法的階層,圖的右邊 MATI_1、MATI_2 代表著 MATI 演算法的第一個執行緒與第二個執行緒;WDPA_1、WDPA_2 為 WDPA 演算法的第一個執行緒及第二個執行緒。因為潛在長度為 4,所以可以看到候選項目 的數量集中在第三階到第五階。在圖 4.9 的 MATI 兩個執行緒產生的數量差距與 WDPA 演 算 法 的 兩 個 執 行 緒 產 生 候 選 項 目 數 量 差 距 為 近 似 的 , 這 表 示 在 T10I4D100KN100K 的資料中負載帄衡屬於差不多的。

0 20 40 60 80 100 120 140

第三階 第四階 第五階 第六階 第七階 第八階

產 生 候 選 項 目 數 量

T10I4D100KN100K thread = 2

MATI_1 MATI_2 WDPA_1 WDPA_2

39

圖 4.10 資料量 10K 執行緒數量 2

此實驗數據為 T10I4D10KN100K 支持度為 0.05%執行緒設定為 2,從圖 4.10 的 圖中可以看出產生的候選項目數量一樣是集中於第三階至第五階。MATI 演算法所產 生的候選項目數量在各個執行緒中是非常帄均的,但 WDPA 演算法所產生的候選項 目在第三階至第五階是非常不帄衡的。因為高頻項目的數量比圖 4.9 來的多,所以 WDPA 在計算負載帄衡的權重時較前面的高頻項目所評估的權重會很大,但是產生的 候選項目數量卻不如評估的多而產生了圖 4.10 的情形。MATI 演算法是產生候選項目 後再計算支持度,WDPA 則是邊產生候選項目邊合併 TID 表格確認支持度。產生候 選項目數量 MATI 因為沒有確認子集合所以會略高於 WDPA 演算法,但是在圖 4.10 所顯示的 WDPA 數量為產生並確認候選項目後的數量,這是因為演算法的差別所以 只能顯示確認後的數量。以時間的數據表示 MATI 合併及確認所花的時間為 0.577 秒 及 0.53 秒,而 WDPA 所花的時間為 0.998 秒及 11.294 秒。因為合併方法的不同所以 所花的時間也不相同,但是值得注意的是在此負載方式下的時間差距是很龐大的。

0 2000 4000 6000 8000 10000 12000 14000 16000

產 生 候 選 項 目 數 量

T10I4D10KN100K thread = 2

MATI_1 MATI_2 WDPA_1 WDPA_2

40

圖 4.11 資料量 10K 帄均長度 20 執行緒數量 2

當資料的參數從 T10I4D10KN100K 更改成 T20I4D10KN100K 但是支持度從 0.05%變成 0.15%,可以看到圖 4.11 與 4.10 的趨勢雷同,MATI 演算法的各執行緒所 產生的數量相近,WDPA 演算法在第三階至第五階所產生的候選項目仍然是非常不帄 衡的。但是第六階以後 MATI 與 WDPA 在計算負載帄衡的結果都是趨近於帄衡的狀 態,而 MATI 演算法所產生的候選項目幾乎都是相近,WDPA 演算法所產生的候選項 目數量第一個執行緒幾乎都會較第二個執行緒所產生的少,這也是因為負載帄衡計算 方式的不同所造成的結果。

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

相關文件