• 沒有找到結果。

修剪(T RIMMING )

在文檔中 中 華 大 學 (頁 51-54)

第 3 章 SIT(SORTING INDEXING TRIMMING)演算法

3.3 修剪(T RIMMING )

IM[16]+G17=170 IM[17]

IM[15]+G16=168 IM[16]

IM[14]+G15=165 IM[15]

IM[13]+G14=161 IM[14]

IM[12]+G13=156 IM[13]

IM[11]+G12=150 IM[12]

IM[10]+G11=143 IM[11]

IM[9]+G10=135 IM[10]

IM[8]+G9=126 IM[9]

IM[7]+G8=116 IM[8]

IM[6]+G7=105 IM[7]

IM[5]+G6=93 IM[6]

IM[4]+G5=80 IM[5]

IM[3]+G4=66 IM[4]

IM[2]+G3=51 IM[3]

IM[1]+G2=35 IM[2]

G1=18 IM[1]

0 IM[0]

Value Index Array

2 G17

3 G16 G15 G14 G13 G12 G11 G10 G9 G8 G7 G6 G5 G4 G3 G2 G1

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

圖 3.11 MPHP 索引矩陣計算方法

於圖3.11 建立索引矩陣,將所有 Group 會遇到計算直接儲存於矩陣當中,且矩 陣的大小與物項的個數一樣,只使用很小的記憶體,當要計算雜湊函數時,如 H(13,16) ,其中的 G1+G2+….G12 的計算,只須直接對映到索引矩陣 IM(12)即 可,所以對於電腦計算只要IM(12)+(16-13)=153。由以上的說明可知,使用 SIT 的改良式MPHP 的雜湊函數只須 2 個運算元,而原本的 MPHP 的雜湊函數需要 9 個運算元,其中還包含乘法與除法。

SIT 所提出的索引技巧,除了能大量的改善 Apriori 的比對次數,還能應用於 MPHP 的雜湊函數,減少雜湊函數的運算元,惟 MPHP 的雜湊函數相對於關聯 式法則整個演算法執行的時間相對很少,所以必須資料庫下每個交易長度較長 的情況下,才能顯現其效能。

下不可能的物項,所以SIT 於 Apriori 的修剪將不考慮,而 MPHP 則可以適用。

首先要說明的是,修剪必須事先使用SIT 的方法排序才會得到最好的修剪效果,

如3.12 圖所示

a,c,d,f,l,m,n,p 5

b,c,k,p,s 4

b,f,h,j,o 3

a,b,c,f,l,m,o 2

a,c,d,f,g,i,m,p 1

Items Tid

1,3,4,6,12,13,14,16 5

2,3,11,16,19 4

2,6,8,10,15 3

1,2,3,6,12,13,15 2

1,3,4,6,7,9,13,16 1

Items Tid

3 16

3 13

4 6

4 3

3 2

3 1

Count Item

1,3,4,6,12,13,14,16 5

2,3,11,16,19 4

2,6,8,10,15 3

1,2,3,6,12,13,15 2

1,3,4,6,7,9,13,16 1

Items Tid

1 2

3 4

圖 3.12 物項未經排序之修剪範例

假設最小支持度為3,當找尋到第 1 層的高頻物項集合時,可以找出該高頻物 項集合中最大的物項,凡是於資料庫所有交易的物項大於最大的物項,即可直 接修剪。

圖3.12 的修剪步驟如下

1. 為原始資料庫。

2. 為了方便比較將所有物項改成數字編號。

3. 計算各物項的次數,找出大於最小支持度的物項分別有 1、2、3、6、13、16

等6 個物項。

4. 在資料庫中,每個交易下的物項,只要是物項編號大於 16 的物項,可以修剪,

根據圖3.12 沒有使用所 3.1 節的方法排序只能於 Tid=4 剪除物項 19,所以其效 果不好,反而浪費時間在檢查有無可修剪的物項,為配合索引的技巧,物項是 根據於資料庫出現的次數由低至高排序,編號物項由低至高的排序,如圖

3.13 ,說明排序及修剪

a,c,d,f,l,m,n,p 5

b,c,k,p,s 4

b,f,h,j,o 3

a,b,c,f,l,m,o 2

a,c,d,f,g,i,m,p 1

Items Tid

1,8,9,12,14,15,16,17 7,11,13,15,16 4,6,10,13,17 8,10,12,13,14,16,17 1,3,5,12,14,15,16,17

Items

1 1 1 1 1 Start

5 4 3 2 1 Tid

17 16 15 14 13 12 Item

4 4 3 3 3 3 Count

1,8,9,12,14,15,16,17 7,11,13,15,16 4,6,10,13,17 8,10,12,13,14,16,17 1,3,5,12,14,15,16,17

Items

4 3 4 5 4 Start

5 4 3 2 1 Tid

3

1 2

4

圖 3.13 物項經排序之修剪範例

假設最小支持度為3,當找尋到第 1 層的高頻物項集合時,可以找出該高頻物 項集合中最小的物項,凡是於資料庫所有交易的物項小於最小的物項,即可直 接修剪。

圖3.13 的修剪步驟如下

1. 為原始資料庫。

2. 為了能達到最大的修剪的量,所以事先依物項於資料庫出現的次數由低至

高排序,物項編號由小至大,為了讓程式執行過程中不去真正刪除物項,

所以須多加一欄位 Start,待後續要修剪後,程式是從 Start 所指的值開始 產生Hash table 的物項集合。

3. 計算各物項的次數,找出大於最小支持度的物項分別為 12、13、14、15、

16、17。

4. 在資料庫中,每個交易下的物項,只要是物項編號小於 12 的物項,可以

修剪,Tid=1 的前面 3 個物項 1、3、5 可以修剪,所以將 Start 的值設為 4,

依此方法分別將 Tid=2、3、4、5 的 Start 的值分別設為 5、4、3、4。

根據圖3.12 沒有使用所 3.1 的方法排序只能於 Tid=4 剪除物項 19,所以其效果

於資料庫中每筆交易下的物項集合,至少可修剪了2 個以上物項。

根據圖3.13 的修剪搭配到 MPHP 的雜湊函數計算,修剪能減少雜湊函數計算的 量,再加上前面索引的技巧,MPHP 可以改善的效率如圖 3.15

a,c,d,f,l,m,n,p 5

b,c,k,p,s 4

b,f,h,j,o 3

a,b,c,f,l,m,o 2

a,c,d,f,g,i,m,p 1

Items Tid

10*2=20 28*9=252

5

3*2=6 10*9=90

4

1*2=2 10*9=90

3

10*2=20 21*9=189

2

10*2=20 28*9=252

1

SIT-MPHP MPHP

Tid Operators

10 28

5

3 10

4

1 10

3

10 21

2

10 28

1

SIT-MPHP MPHP

Tid Operands

34 66

SIT-MPHP

97 873

MPHP

Operands Operators

1,8,9,12,14,15,16,17 7,11,13,15,16 4,6,10,13,17 8,10,12,13,14,16,17 1,3,5,12,14,15,16,17

Items

4 3 4 3 4 Start

5 4 3 2 1 Tid

圖 3.14 MPHP 使用 SIT 的方法所節省的雜湊函數計算成本

由圖3.14 可知 MPHP 使用修剪的技巧減少了運算元,使用了索引及修剪的技巧 則可減少了運算子。

在文檔中 中 華 大 學 (頁 51-54)

相關文件