• 沒有找到結果。

排序(S ORTING )

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

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

3.1 排序(S ORTING )

第3章 SIT(Sorting Indexing Trimming)演

圖 3.1 交易物項未排序與排序的搜尋方式

假設要檢查候選物項集合{c,f}是否為 Tid=1 的子集合,首先說明左邊未排序的 資料庫,找出候選物項集合的物項c 是否存在於 Tid 的=1 集合內,依序比對物 項a→b→c ,共 3 次才確認物項 c 存在,接著找出候選物項集合的物項 f 是否 存在於Tid=1 的集合內,依序比對物項 a→b→c→i→g→p→m→f ,共 8 次才確 認物項f 存在,所以共須比較 11 次才能確認候選物項集合{c,f}為 Tid=1 的子集 合;若是使用右邊排序的資料庫,首先找出候選物項集合的物項c 是否存在於 Tid 的=1 集合內,依序比對物項 a→c ,共 2 次就確認物項 c 存在,接著找出候 選物項集合的物項f 是否存在於 Tid=1 的集合內,可直接從物項 c 之後的物項 f 開始比對,所以只比對1 次就確認物項 f 存在,所以共須比較 3 次就能確認候 選物項集合{c,f}為 Tid=1 的子集合。

根據以上的說明可知,若每個交易下的物項有排序,當候選物項集合中的某一 物項集合{i,j}是否存在於一交易 T 時,逐一比對 T 底下所有的物項是否有存在 物項i,若於 T 的第 x 位址找到時,於此候選物項集合下一個的物項 j,只須從 T 的第 x+1 的位址開始比對,無須從頭開始;如發生於 T 的第 y 位址的物項比 物項j 大時,因為有排序的原因我們可以確認 T 不存在物項 j。

3.1.2 交易物項依出現頻率的方式排序對於演算法的益處

有些演算法為了能得到更好的效益,事先依物項於資料庫出現的頻率排序,然 後再對每一交易下的物項排序來增加其效益,如圖3.2

3,1,7,2,14,5,15,6 5

4,1,13,6,17 4

4,2,10,12,16 3

3,4,1,2,14,5,16 2

3,1,7,2,9,11,5,6 1

Items Tid

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 s

3 p

1 o

1 n

3 m

1 l

1 k

1 j

1 i

1 h

1 g

4 f

1 e

1 d

4 c

3 b

3 a

Count Item

s o n l k j i h g e d p m b a f c Item

1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 4 4 Count

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

1,2,3,5,6,7,14,15 5

1,4,613,17 4

2,4,10,12,16 3

1,2,3,4,5,14,16 2

1,2,3,5,6,7,9,11 1

Items Tid

1

5 4

2 3

圖 3.2 資料庫依照物項出現的頻率由高至低排序 圖3.2 排序流程如下

1. 為原始資料庫。

2. 計算各物項於資料庫出現的次數。

3. 依照物項的次數由高至低排序,建立索引編號表格(索引編號愈小,代表物項

次數愈高) 。

4. 依據索引編號表格的對映,將資料庫的物項改成相對映的索引編號。

5. 將各交易下的物件索引編號排序。

比對的方式如圖3.3

s o n l k j i h g e d p m b a f c Item

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

1,2,3,5,6,7,14,15 5

1,4,613,17 4

2,4,10,12,16 3

1,2,3,4,5,14,16 2

1,2,3,5,6,7,9,11 1

Items Tid

圖 3.3 交易物項依出現頻率的方式排序的搜尋方式

假設要檢查候選物項集合{c,f}是否是 Tid=1 的子集合於圖 3.3 中可看出,{c,f}

對映的索引編號是{1,2},找出候選物項集合的物項 1 是否存在於 Tid 的=1 集合 內,結果第一次就找到物項1,接著找出候選物項集合的下一個物項 2 是否存在 於Tid 的=1 集合內,結果也是第 1 次就找到了,所以只須比對 2 次就能確認{c,f}

是Tid=1 的子集合,這是因為出現頻率愈高的物項排在愈前面,想要比對的物 項愈快找到。由此可知依據物項於資料庫出現的次數排序,將更有助於Apriori 演算法的效益。

3.1.3 SIT 排序的方法

SIT 排序方法與 3.1.2 的排序的順序相反如圖 3.4

12,16,1,17,8,14,9,15 5

13,16,7,15,11 4

13,17,4,6,10 3

12,13,16,17,8,14,10 2

12,16,1,17,3,5,14,15 1

Items Tid

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 s

3 p

1 o

1 n

3 m

1 l

1 k

1 j

1 i

1 h

1 g

4 f

1 e

1 d

4 c

3 b

3 a

Count Item

f c p m b a s o n l k j i h g e d Item

4 4 3 3 3 3 1 1 1 1 1 1 1 1 1 1 1 Count

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

1,8,9,12,14,15,16,17 5

7,11,13,15,16 4

4,6,10,13,17 3

8,10,12,13,14,16,17 2

1,3,5,12,14,15,16,17 1

Items Tid

1 2 3

4

5

圖 3.4 SIT 排序的流程圖

SIT 的排序方式與 3.1.2 的方式相同,但是物項的索引編號是依照物項出現的次 數愈高,則編號愈大,這對於傳統的Apriori 演算法將是最不好的排序,但是對 於在於往後要介紹的索引方法將能達到最好的效率。

由本章節的討論得知不同的排序技巧將有助於搜尋比較的效益,只要於資料庫 使用簡單的SQL 語言花很少的時間事先將資料排序,就能獲的往後於大量資料 搜尋比較的好處。

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

相關文件