• 沒有找到結果。

# 中 華 大 學

N/A
N/A
Protected

Share "中 華 大 學"

Copied!
70
0
0

(1)

## 中 華 大 學 碩 士 論 文

(2)
(3)
(4)
(5)

A

...

1.1 研究背景...1

1.2 研究動機...3

1.3 研究目的...4

2.1 資料探勘的簡介...6

2.2 關聯性法則...9

2.3A

2.4DHP 演算法...16

2.5MPHP 演算法...19

3.1 排序(S

) ...26

(6)

3.2 索引(I

)...30

3.3 修剪(T

### RIMMING

) ...39

3.4SIT 演算法...42

4.1 實驗設備及資料說明...46

4.2 實驗設計...47

4.3 實驗數據與效能評估...49

5.1 結論...53

5.2 未來方向...54

(7)

### 中文摘要

(Sorting-Indexing-Trimming，簡稱 SIT)的方法來改善關聯式法則演算法的效能，

SIT 演算法於階層 2 使用排序-索引-修剪加以改良的 MPHP 的演算法，於階層 2 以後則使用以排序-索引加以改良的 Apriori 演算法，經實驗分析發現 SIT 演算法 的效能較傳統的Apriori 演算法速度能有效的提昇效益，並且也比 MPHP 演算法 效率要較好，特別於階層3 以後仍有大量的候選物項集合。

MPHP 演算法

(8)

## Abstract

### With the fast advent of network and information technologies, the time needed

for enterprises to collect data is shortened significantly. In the mean while, the large amount of data also become a burden for enterprises to interprete them. In order to assist enterprises to make decisions efficiently, researchers have tried to propose methodologies to extract useful information from a large amount of data, and data mining is one of the most popular approaches to cope with the problem, especially the association rule approach.

So far, most data mining methods for finding association rule originated from the “Apriori” algorithm. However, as Apriori algorithm is not efficient, especially when the number of data items increases, researchers tried to propose methods to eliminate impossible frequent item sets. In addition, some hash function-based algorithms were proposed to improve the performance of Apriori algorithm. For example, DHP algorithm employs hash function to filter the impossible candidate item sets. MPHP, a revised version of DHP, employs minimal perfect hashing functions (non-collision hashing functions) to generate frequent item sets directly without the need of generating candidate item sets, and hence the performance can be improved However, the memory space needed for MPHP will increase significantly for finding k-frequent item sets in the later phases for k > 2.

To cope with this problem, this thesis proposes an Sorting-Indexing-Trimming (SIT) algorithm, which employs a revised MPHP to find 1-frequent item sets and

2-frequent item sets, and a revised Apriori algorithm to find k-frequent item sets for k

> 2. From the experimental results, we find that SIT algorithm is much more efficient than Apriori algorithm and MPHP algorithm.

(9)

(10)

A

,

.

### AL

1995)...14

DHP 利用雜湊法產生候選物項集合 C2(P

,

.

,1995)...17

MPHP 的雜湊函數

### BUCKET

數量分配方法...20

MPHP 的雜湊函數找尋高頻物項集合流程圖 ...21

SIT 排序的流程圖...30

A

MPHP 的 H

### ASH TABLE

...37

MPHP 的雜湊函數分佈圖...38

MPHP 索引矩陣計算方法 ...39

MPHP 使用 SIT 的方法所節省的雜湊函數計算成本...42

(11)

(12)

A

### PRIORI

MPHP 雜湊函數在不同的階層所需的成本...24

SIT、MPHP 與 A

### PRIORI

SIT 與 MPHP 演算法於不同交易量的實驗資料庫的參數設定...48

SIT 與 MPHP 演算法於不同交易長度的實驗資料庫的參數設定...48

(13)

### 1.1 研究背景

(14)

便於企業經營者作決策，換句話說，企業期望能夠從巨大資料庫中採礦到濃縮、

z 在商業方面

z 在財務金融方面

(15)

z 直銷行銷方面

z 在工業方面

z 在醫學方面 基因工程研究。

z 體育方面

z 科學方面

### 1.2 研究動機

Pruning)[4] 、 Partition[7]、Princer-Search[17]等演算法，但是這些演算法無法

(16)

MPHP(Minimal Perfect Hashing & Pruning)[18] ，其中 FP-Tree 雖然能直接找出 高頻物項集合，但是因於執行過程中有太多的物項時，會容易產生很多的分支，

### 1.3 研究目的

SIT 使用與 FP-Tree 相同的排序方式，先將所有的物項依據出現的頻率排序，但 是FP-Tree 是將出現頻率越高的排在越前面，SIT 的排序則是將出現頻率越高的 排在越後面。排序是為了將來使用索引及修剪的方法能更有效率；索引的技巧 類似資料庫的索引用來加快資料搜尋的速度，但是SIT 的索引因為有事先的排 序，所以索引的物項資料是連續性的，於找尋資料物項時，可避開不可能的物 項的搜尋，而索引的技巧也能應用於MPHP 的雜湊函數上面；最後要說明的是 修剪，排序後的修剪對於Apriori 是沒有效益的，因為索引的功能已經避開不可 能的物項搜尋，所以不適用於Apriori，但是對於 MPHP 則能減少其計算的量。

(17)

(18)

(19)

### 1. 資料蒐集與資料倉儲之建置

利用資料倉儲系統將所有資料彙集在一起，經由系統內部轉換，將資料形式 規格化，並且建立一個統一介面、多維度儲放且採開改式的架構來將巨量資 料依主題、時間序列整合起來儲存與管理。

(20)

### 5. 結果之詮釋與評估

(Clustering Rule) 、預測(Prediction) 、推估(Estimation)等五種技術，其說明如下

(21)

(22)

### 2. 發生 A 的交易時，也發生了 B 的交易，這種交易存在於 D 所占的比例稱爲

z 支持度：

z 信賴度：

TID ITEM 100 A,C,D 200 B,C,E 300 A,B,C,E 400 B,E

(23)

C⇒A 的支持度 S=2/4=50%，信賴度 C=2/3=66.6%

A⇒C 的支持度 S=2/4=50%，信賴度 C=2/2=100%

(24)

### 2.3 Apriori 演算法

itemset 物項集合，由物項所組成，每個物項代表一種商品。

k k 為物項集合的級數或層級，同時也是物項的個數。

k-itemset 代表長度為k 的物項集合。

Ck 代表第k 層的候選物項集合。

Lk 代表第k 層的高頻物項集合。

min_sup

### 5. 重複掃描資料庫計算出候選物項集合的支持度與最小支持度比較，產生高頻

(25)

Lk ,|X∩Y|=k-1}，其函式如下(其中 p 與 q 分別表示不同的物項集合)

insert into Ck+1 insert into Ck

select p.item1, p.item2, …, p.itemk-1, q.itemk-1 from Lk-1 p, Lk-1 q

where p.item1=q.item1, …, p.itemk-2=q.itemk-2, p.itemk-1 < q.itemk-1

(26)

B E 400

A B C E 300

B C E 200

A C D 100

Items TID

1 {D}

3 {E}

3 {C}

3 {B}

2 {A}

Count Itemset

3 {E}

3 {C}

3 {B}

2 {A}

Count Itemset

C2 C2

C3 C3 L3

2 {C E}

3 {B E}

2 {B C}

1 {A E}

2 {A C}

1 {A B}

Count Itemset

2 {C E}

3 {B E}

2 {B C}

2 {A C}

Count Itemset

L2

{C E}

{B E}

{B C}

{A E}

{A C}

{A B}

Itemset

{B C E}

Itemset

2 {B C E}

Count Itemset

2 {B C E}

Count Itemset

1、3 次。

### 2. 經過最低支持度的檢測物項{Ａ}、{Ｂ}、{Ｃ}、{Ｅ}的支持度高於最小支持

度成為第1 層高頻物項集合 L1。

### 5. 經過最低支持度的檢測{ＡC}、{ＢC}、{BE}、{CＥ}的支持度高於最小支持

(27)

度成為第2 層高頻物項集合 L2。

### 8. 經過最低支持度的檢測{BCE}的支持度高於最小支持度成為第 3 層高頻物項

Scan database D to obtain L1, the set of frequent 1-itemsets;

for (K=2; Lk-1≠ ;K++) do φ

Ck =apriori-gen(Lk-1);//Generate new candidates form Lk-1 for all transaction t∈D do

Ct =subset(Ck ,t);//Candidates contained in t for all c∈Ct do

c.count++;

Lk={ c∈Ck | c.count≥ min_sup};

All frequent itemsets= Uk Lk ; End_of_ Apriori

function apriori_gen(Lk-1) for all itemset l1 ∈ Lk-1 do for all itemset l2 ∈ Lk-1 do

if (l1 [1]= l2 [1]) ∧ (l1 [2]= l2 [2]) ∧ … ∧ (l1 [k-2]= l2 [k-2]) ∧ (l1 [k-1]< l2 [k-1]) then

c= l1

### ><

l2;//join step:generate candidate if has_infrequent_subset(c, Lk-1)

(28)

then delete c;//prune step:remove unfruitful candidate else add c to Ck ;

return apriori_gen;

End_of_ apriori_gen

function has_infrequent_subset(c, Lk-1) for all (k-1)-subset s of c do

if s∉ Lk-1

then has_infrequent_subset=TRUE;

else has_infrequent_subset=FALSE;

return has_infrequent_subset;

End_of_ infrequent

Apriori 演算法簡單容易明瞭，但是執行過程中，每個階層候選物項集合都需要 掃描整個資料庫，計算該候選物項集合在資料庫出現的次數，所以當候選物項 集合的數量太大時，光掃描資料庫的次數就把所有的電腦資源耗盡了，尤其是 在第2 階層的候選物項集合，所以 Apriori 演算法只能適合於少量的資料量。

### 2.4 DHP 演算法

Apriori 演算法雖然簡單，但是當候選物項集合太多，尤其是候選 2 物項集合，

(29)

h{[x y]}=((order of x )*10+(order of y)) mod 7

C2

3 {C E}

2 {B E}

2 {B C}

1 {A E}

2 {A C}

1 {A B}

{C E}

{B E}

{B C}

{A C}

3 {E}

1 {D}

3 {C}

3 {B}

2 {A}

{E}

{C}

{B}

{A}

L1

{A C}

{B E}

{C E}

6 3 {A C}

{C D}

5 4 3 2 1

0 1 2 0 3 1

3

{A B}

{B E}

{B C}

{A E}

{A D}{C E} {B C} {B E}

The number of items hashed to bucket 2 Hash Table B,E

400

A,B,C,E 300

B,C,E 200

A,C,D 100

{BE}

{AB}, {AC}, {AE}, {BC}, {BE}, {CE}

{BC}, {BE}, {CE}

5 E

4 D

3 C

2 B

1 A

Index ITEM

C2

### 1. 將每個交易下的物項使用與 Apriori 高頻物項結合產生候選物項集合相同的

E 結合之後就會產生{AB}、{AC}、{AE}、{BC}、{BE}、{CE}等 6 個集合，

Tid=400 下的物項有Ｂ、E 結合之後就會產生{BE}等 1 個集合。

(30)

### 3. 使用雜湊函數計算 Hash table 下所有的集合，將所得出來的直放入相對映的

Bucket，列如集合{AB}，則對映到的編號為{1,2}，雜湊函數 H(1,2)=(1*10+2) mod 7=5，所以{AB}是放入第 5 bucket，集合{AC}，則對映到的編號為{1,3}，

### 4. 使用 Apriori 方法找出第 2 層的候選物項集合分別為{AB}、{AC}、{AE}、

{BC}、{BE}、{CE}等 6 個集合，經雜湊函數計算分別對映到的 bucket 位址 為5、6、1、2、4、0，其各 bucket 的位址含的集合個數分別為 1、2、1、2、

2、3，經過最低支持度檢測只有{AB}、{BC}、{BE}、{CE}，成為第 2 層的 候選物項集合C2，{AB}、{AE}則成功的被雜湊函數事先去除。

//step 1 of the DHP algorithm Function build_hash_table()

Initialize all hash buckets in the hash table H2 to zero;

for all transaction t∈database D do

Insert and count the supports of all 1-itemsets in a hash tree;

for all 2-item subset x of t do

H2 [h2 (x)++; // h2 is hash function

L1 ={c | c.count≥ min_sup,c is in the hash tree};

End_of _build_hash_table

//Step 2 of the DHP algorithm Function gen_candidate(L1 ,H2 ,C2)

(31)

C2 = L1 x L1 ={X ∪ Y | X,Y∈L1};

for all 2-itemsets c∈C2 do

if H2 [h2 (c)<min_sup then remove c from C2 ; Scan D to obtain the supports of all 2-itemsets in C2 ; L2 ={c | c.count≥ min_sup,c is in C2 };

End_of_gen_candidate;

DHP 演算法雖然利用簡單的雜湊函數減少了第 2 層的候選物項集合，但是其雜 湊函數會有碰撞的情形，所以如果於大量的資料庫下，如果只有以上所舉的例 子只有7 個 bucket，會因碰撞太嚴重，導致只能過濾少量的候選物項集合，甚 至完全沒有過濾任何候選物項集合，此時執行因執行過程中要比Apriori 多一個 計算雜湊函數的負擔，其執行的效率反而比Apriori 差，所以 DHP 為了要能過 濾大量的候選物項集合必須使用更多的bucket 才能達到目的，但是會耗用大量 的記憶體且每增加的bucket 數目愈多，其所過濾候選物項集合的效能成長就愈 少。

### 2.5 MPHP 演算法

DHP 演算法的雜湊函數因為會有碰撞的情形，所以無法直接過濾所有的候選物 項集合，所以必須使用雜湊函數計算完所有的集合，然後再掃描資料庫找尋高 頻物項集合，MPHP(Minimal Perfect Hashing & Pruning)則是 DHP 的雜湊函數最 完美的函數，因為MPHP 不會有碰撞，所以可以直接過濾所有不可能成為高頻 物項集合的候選物項集合，換句話說，MPHP 不需要候選物項集合，就能找出 高頻物項集合，而且MPHP 所使用的記憶體的效率會遠比 DHP 高出許多。

(32)

### C

52=10 種，第 3 部分則是將各物項編號組成的各種組合排 序建立單一獨立的索引位址。

MPHP 雜湊函數 H(i,j)=((i - 1) * (N - 1)) + j - ((i * (i - 1)) / 2) - 1，其中 N 為物項個 數，其所有物件組合使用雜奏函數計算出獨立索引位址的過程如下:

H(1,2)=((1 - 1) * (5 - 1)) + 2 - ((1 * (1 - 1)) / 2) – 1=1 H(1,3)=((1 - 1) * (5 - 1)) + 3 - ((1 * (1 - 1)) / 2) – 1=2 H(1,4)=((1 - 1) * (5 - 1)) + 4 - ((1 * (1 - 1)) / 2) – 1=3 H(1,5)=((1 - 1) * (5 - 1)) + 5 - ((1 * (1 - 1)) / 2) – 1=4 H(2,3)=((2 - 1) * (5 - 1)) + 3 - ((2 * (2 - 1)) / 2) – 1=5 H(2,4)=((2 - 1) * (5 - 1)) + 4 - ((2 * (2 - 1)) / 2) – 1=6 H(2,5)=((2 - 1) * (5 - 1)) + 5 - ((2 * (2 - 1)) / 2) – 1=7 H(3,4)=((3 - 1) * (5 - 1)) + 4 - ((3 * (3 - 1)) / 2) – 1=8 H(3,5)=((3 - 1) * (5 - 1)) + 5 - ((3 * (3 - 1)) / 2) – 1=9 H(4,5)=((4 - 1) * (5 - 1)) + 5 - ((4 * (4 - 1)) / 2) – 1=10

MPHP 雜湊函數能經簡單的運算就能快速的將所有組合計算出不會碰撞的位

(33)

H(i,j)=((i - 1) * (N - 1)) + j - ((i * (i - 1)) / 2) - 1 B E

400 A B C E 300

B C E 200

A C D 100

Items TID

9 2 {C E}

{C E}

10 0 6

0 8 1 {C D}

7 5 4 3 2 1

3 2 1 1 2 1

{B E}

{B C}

{A E}

{A D}

{A C}

{A B}

{B E}

{B C}

{A C}

{B E}

{BE}

{AB}, {AC}, {AE}, {BC}, {BE}, {CE}

{BC}, {BE}, {CE}

{2 5}

{1 2}, {1 3}, {1 5}, {2 3}, {2 5}, {3 5}

{2 3}, {2 5}, {3 5}

{1 3}, {1 4}, {3 4}

1

2

3

### 1. 與 DHP 相同方式建立 Hash table ，Tid=100 下的物項有Ａ、Ｂ、D 於結合之

Ｂ、C、E 於結合之後就會產生{AB}、{AC}、{AE}、{BC}、{BE}、{CE}等 6 個集合，Tid=400 下的物項有Ｂ、E 於結合之後就會產生{BE}等 1 個集合。

{AC}改成{1,3}。

### 3. 直接將 Hash table 所有的集合使用雜湊函數 H(i,j)=((i - 1) * (N - 1)) + j - ((i * (i

- 1)) / 2) – 1 計算出物件索引位址，並累計索引位址的次數，當計算完所有的 集合時，所有的物項集合的次數已經統計完成，所以完全無需使用候選物項

(34)

I= {I1, I2, …, IN}, a set of distinguishable items in the database;

N= |I|, total number of data items in the database;

|D|= total transactions of the database;

k= the bottleneck of k-iteration;

g= the number of gth group in database;

itemi= the ith item in k-itemsets;

P(itemi)= the associated position in I;

Minimal Perfect Hash Function for k-itemsets:

Create hashing function with

kN

Hk(

1g,

2g, …,

kg1,

### item )

kg

= Inter-Group-offset+ Intra-Group-offset

= (

= 1 1 g

r

Inter(

1r,

2r, …,

kr1)) + Intra(

kg

= (

= 1 1 g

r

N- P(

kr1)) + (P(

kg

### item

kg1))

For all transaction t ∈ D do //scan database begin

For all k-subsets ∈ t do

Hk(item , 1g

2g, …,

kg1,

### item )++;

kg end for

(35)

Lk= {k-subsets| Hk (

1g,

2g, …,

kg1,

### item ) ≥ s};

kg

Apriori with pruning:

For (z= k+1; Lz-1= φ; z++) do begin

Cz= Apriori-gen (Lz-1); //new candidates

transTrim[1 … |D|]=0; //initialize array transTrim[|D|]= 0 Forall transactions t ∈ D & transTrim[t-TID]=0 do begin Ct= SubsetCount-Pruning (Cz , z, t);

//candidates count contained in hash tree with simple pruning end

Lz= {c∈ Cz| c.count ≥ minsup}

end end MPHP

Procedure SubsetCount-Pruning (Cz , z, t)

Forall c such that c∈ Ck and c(= ti1 … tik) ∈ t do begin c.count++;

for (j=1; j≤ z; j++) a[ij]++;

end

transTrim[t-TID] = 1;

for (i=0; i<|t|; i++) if (a[i] ≥ z) {

transFlag[t-TID]= 0;

(36)

break;

}

end Procedure

MPHP 的雜湊函數雖然不會碰撞，不須候選 K-物項集合(K 通常為 2)，但是於高 頻K+1 物項集合時，MPHP 仍使用以 Apriori 為基礎的演算法找尋高頻物項集 合，其中最大的瓶頸在於MPHP 隨著 K 的增加，記憶體需求會呈指數成長，如 表2.3

Level Bucket Itemsets

L2 499K 4,500K

L3 166,167K 13,500K L4 41,417,124K 21,000K 表 2.3 MPHP 雜湊函數在不同的階層所需的成本

### C

10002 =1000*999/2≒499K 個位址儲存，共需要

499K*4≒0.2M 的記憶體，於階層 3 則需要

### C

10003 =1000*999*988/3!≒166,167K 個位址儲存，共需要166,167K*4≒664M，於階層 4 則需要

### C

10004 =1000*999*988*997/4!≒41,417,124K，但是由於 4 個 bytes 的變數不能滿 足所有的位址，必須改成8 bytes，所以共需要 41,417,124K *8≒331,337M 的記 憶體，所以MPHP 的雜湊函數，所以 MPHP 的雜湊函數通常會使用於階層 2，

(37)

(38)

(39)

(40)

### 3.1.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

### 5. 將各交易下的物件索引編號排序。

(41)

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.1.3 SIT 排序的方法

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

(42)

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

### 5

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

### 3.2 索引(Indexing)

索引的技巧已經有很多的地方應用，如資料庫系統，加入索引能加快搜尋的速 度，這個技巧也可以使用在關聯式法則的演算法，我們將於3.2.1 介紹 Apriori 的索引改良法，3.2.2 介紹 MPHP 的索引改良方法，這兩個方法將更有助於關聯 式法則的演算法效益提昇。

(43)

### 3.2.1 Apriori 的索引改良法

{m,p}

{f,p}

{f,m}

{c,p}

{c,m}

{c,f}

{b,p}

{b,m}

{b,f}

{b,c}

{a,p}

{a,m}

{a,f } {a,c}

{a,b}

Itemset

8 8 7 8 7 4 1 1 1 1 8 7 4 2 2 Count

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

(44)

### 4. 依上序方法，依序比對了候選物項集合{a,m}、{a,p}、{b,c}、{b,f}、{b,m}、

{b,p}、{c,f}、{c,m}、{c,p}、{f,m}、{f,p}、{m,p}是否為 Tid=1 的子集合，分 別比對了7、8、1、1、1、1、4、7、8、7、8、8 次。

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

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

{5,6}

{4,6}

{4,5}

{3,6}

{3,5}

{3,4}

{2,6}

{2,5}

{2,4}

{2,3}

{1,6}

{1,5}

{1,4 } {1,3}

{1,2}

Itemset

5 4 4 5 4 4 5 4 4 3 5 4 4 3 2 Count

(45)

### 4. 依上序方法，依序比對了候選物項集合{1,5}、{1,6}、{2,3}、{2,4}、{2,5}、

{2,6}、{3,4}、{3,5}、{3,6}、{4,5}、{4,6}、{5,6}是否為 Tid=1 的子集合，分 別比對了4、5、3、4、4、5、4、4、5、4、4、5 次。

(46)

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

{16,17}

{15,17}

{15,16}

{14,17}

{14,16}

{14,15}

{13,17}

{13,16}

{13,15}

{13,14}

{12,17}

{12,16}

{12,15 } {12,14}

{12,13}

Itemset

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Address

{16,17}

{15,17}

{15,16}

{14,17}

{14,16}

{14,15}

{13,17}

{13,16}

{13,15}

{13,14}

{12,17}

{12,16}

{12,15 } {12,14}

{12,13}

Count

0 0 17

15 15 16

14 13 15

12 10 14

9 6 13

5 1 12

0 0 11

0 0 10

0 0 9

0 0 8

0 0 7

0 0 6

0 0 5

0 0 4

0 0 3

0 0 2

0 0 1

End Start Item

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

(47)

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

{16,17}

{15,17}

{15,16}

{14,17}

{14,16}

{14,15}

{13,17}

{13,16}

{13,15}

{13,14}

{12,17}

{12,16}

{12,15 } {12,14}

{12,13}

Itemset

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Address

0 0 17

15 15 16

14 13 15

12 10 14

9 6 13

5 1 12

0 0 11

0 0 10

0 0 9

0 0 8

0 0 7

0 0 6

0 0 5

0 0 4

0 0 3

0 0 2

0 0 1

End Start Item

0 17

1 16

1+2=3 15

1+2+3=6 14

1+1+2+3+4=11 12

0 5

0 3

0 1

Count Item

### 2. Tid=1 的第 4 個位址物項 12，直接對映至索引對映矩陣，發現其開始與結束

(48)

{12,15}、{12,16}、{12,17}需要比對。

### 3. 比對步驟 2 所得的 5 個候選物項集合，已經確認候選物項集合的第 1 個位址

12 存在於 Tid=1，所以可直接至這 5 個候選物項集合的第 2 個位址開始比對 物項是否存在於Tid=1 物項集合內，至於 Tid=1 開始比對的位址則在物項 12 之後的位址，其位址為5。

### 3.2.2 MPHP 的索引改良方法

MPHP 於階層 2 找尋高頻物項集合計算時，採用的雜湊函數能確認不會碰撞，

(49)

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 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,8} {1,9} {1,12} {1,14} {1,15} {1,16}

{1,17} {8,9} {8,12} {8,14} {8,15} {8,16}

{8,17} {9,12} {9,14} {9,15} {9,16} {9,17}

{12,14} {12,15} {12,16} {12,17} {13,15}

{13,16} {13,17} {15,16} {15,17} {16,17}

5

{7,11} {7,13} {7,15} {7,16} {11,13} 11,15}

{11,16} {13,15}{13,16} {15,16}

4

{4,6} {4,10} {4,13} {4,17} {6,10} {6,13}

{6,17} {10,13} {10,17} {13,17}

3

{8,10} {8,12} {8,13} {8,14} {8,16} {8,17}

{10,12} {10,13} {10,14} {40,16} {10,17}

{12,13} {12,14} {12,16} {12,17} {13,14}

{13,16} {13,17} {14,16} {14,17} {16,17}

2

{1,3} {1,5} {1,12} {1,14} {1,15} {1,16}

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

{3,17} {12,14} {12,15} {12,16} {12,17}

{14,15} {14,16} {14,17} {15,16} {15,17}

{16,17}

1

Items Tid

1. In the textbook, pp 224-223, there is a surprising result called Space- filling curve. In addition, note the proof is related with Cantor set in exercise 7. There exists a

• To the right of the Draw mode buttons you find push buttons through which you can access all the functions that you need to define and solve the PDE problem: define

As students have to sketch and compare graphs of various types of functions including trigonometric functions in Learning Objective 9.1 of the Compulsory Part, it is natural to

Chen, The semismooth-related properties of a merit function and a descent method for the nonlinear complementarity problem, Journal of Global Optimization, vol.. Soares, A new

11 (1998) 227–251] for the nonnegative orthant complementarity problem to the general symmet- ric cone complementarity problem (SCCP). We show that the class of merit functions

Establishing the connection between the exact master equation and the non -equilibrium Green functions provides a general approach to explore the non-Markovian