• 沒有找到結果。

中 華 大 學

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學"

Copied!
53
0
0

加載中.... (立即查看全文)

全文

(1)

中 華 大 學 碩 士 論 文

題目:具負載平衡之權重式平行化關聯式法則 探勘演算法

A Weighted Load-Balancing Parallel Apriori Algorithm for Association Rule Mining

系 所 別:資訊管理學系 碩士班 學號姓名:M09510013 周嘉伶 指導教授:游 坤 明 博 士

中華民國 九十七 年 八 月

(2)

具負載平衡之權重式平行化關聯式法則探勘演算法

中文摘要

由於資訊的蓬勃發展,使得企業中累積龐大的資料量,如何能從龐大的資料庫 中快速且正確探勘出資料間的相關性,是資料探勘重要的議題之一,因此目前已有 許多學者針對資料探勘的技術進行鑽研。關聯式法則是資料探勘中最常被使用的技 術之一,其中以 Apriori 演算法最具代表性,然而此演算法在探勘高頻項目集合時 需要多次資料庫掃描,並且會產生大量的候選項目集合。因此藉由平行分散的計算 策略可以有效的加速求解,但現有的平行演算法中由於交易紀錄或項目集合分配不 均勻,造成處理間負載不平衡,並且需要多次資料庫掃描以致需要耗費冗長的執行 時間。因此,本論文提出權重式平行化關聯式法則探勘演算法(WDPA),在探勘項 目集合時儲存交易資料的識別碼於 Tid 表格中,藉由此表格便能做項目集合次數比 對及計算,因此只需要一次資料庫掃描並能加快項目集合次數的計算;平行分散的 策略是將項目集合的次數列入計算機制中,能準確的對項目集合做分配,使處理器 達到負載平衡並節省閒置時間,有效提升探勘效率。根據實驗結果顯示,WDPA 的執行時間不論在資料庫增多或支持度降低皆能具有良好的執行效率,並且在最佳 情況下時間約只需要前人研究方法的百分之五或更低。

關鍵字:資料探勘、關聯式法則、Apriori、Cyclic 分配、負載平衡

(3)

A Weighted Load-Balancing Parallel Apriori Algorithm for Association Rule Mining

Abstract

Because of the exponential growth in worldwide information, companies have to deal with an ever growing amount of digital information. One of the most important challenges for data mining is quickly and correctly finding the relationship between data.

The Apriori algorithm is the most popular technique in association rules mining;

however, when applying this method, a database has to be scanned many times and many candidate itemsets are generated. Parallel computing is an effective strategy for accelerating the mining process. In this thesis, the Weighted Distributed Parallel Apriori algorithm (WDPA) is presented as a solution to this problem. In the proposed method, metadata are stored in TID forms, thus only a single scan to the database is needed. The TID counts are also taken into consideration, and therefore better load-balancing as well as reducing idle time for processors can be achieved. According to the experimental results, WDPA outperforms other algorithms while having lower minimum support or having large database. Moreover, under the some situations, WDPA spends only about 5% of the time that other algorithms in previous works spend.

Keyword: Data Mining, Association Rule, Apriori, Cyclic Distribution, Loading Balance

 

(4)

致謝

時光飛逝,兩年的研究所生涯已接近尾聲,在此非常感謝許多人的幫助及鼓勵。

首先,非感感謝我的指導老師 游坤明老師的栽培,於研究上給予孜孜不倦的指導 及生活上的教導、包容及鼓勵。在此,致上由衷的謝意。

還要感謝研究所同學及學弟們,才讓我的研究生活多采多姿。最後更感謝我的 父母及哥哥們,在我求學的過程中,給我最大的鼓勵及關懷,讓我能專心致力於學 學業上。感謝所有曾給我幫助的人,謝謝你們。

周嘉伶 謹致 中華大學資訊管理學系 碩士班 中華民國九十七月八月

(5)

目錄

 

中文摘要 ... I

Abstract ... II

致謝... III 目錄... IV 表目錄 ... VI 圖目錄 ... VII

第 1 章 緒論 ... 1

1.1 研究背景 ... 1

1.2 研究動機 ... 2

1.3 研究目的 ... 2

1.4 研究流程 ... 3

第 2 章 文獻探討 ... 4

2.1 資料探勘技術介紹 ... 4

2.2 關聯式法則探勘 ... 5

2.3 Apriori 演算法 ... 7

2.4 Ye’s 演算法 ... 9

2.5 EDMA 演算法 ... 10

第 3 章 權重式平行化關聯式法則探勘演算法 ... 13

3.1 研究設計概念 ... 13

3.2 研究架構與特性說明 ... 13

3.3 演算法步驟 ... 18

3.4 實例推導 ...

24

第 4 章 實驗結果與分析 ...

31

4.1 實驗平台 ...

31

4.2 實驗設計 ...

32

4.3 不同支持度對 WDPA 四種分配法之比較 ... 33

Deleted:

Deleted: 3 Deleted:

Deleted:

Deleted:

(6)

4.4 各處理器執行時間之比較 ...

34

4.5 固定支持度對 EDMA, Ye’s, WDPA 演算法效能影響之比較 ...

36

4.6 不同資料量對 EDMA、Ye’s、WDPA 演算法效能影響之比較 ...

37

4.7 不同支持度對 EDMA、Ye’s、WDPA 演算法效能影響之比較 ...

38

4.8 資料量對 Ye’s 及 WDPA 演算法效能影響之比較 ...

39

4.9 不同資料量對 WDPA 演算法效能影響之比較 ... 40

4.10 不同支持度對 WDPA 演算法效能影響之比較 ... 41

第 5 章 結論與未來研究方向 ...

43

參考文獻 ... 44

Deleted:

Deleted:

Deleted:

Deleted:

Deleted:

Deleted:

Deleted:

Deleted: 4 Deleted: 4

(7)

表目錄

表3-1. Tid 表格 ...

17 

表3-2. 複合式組合分配表 ... 18 

表3-3. 循序區塊數分配演算法 ... 19 

表3-4. 循環區塊數分配演算法 ... 20 

表3-5. 循序 TID 加權值分配演算法 ...

22

 

表3-6. 循環 TID 加權值分配演算法 ...

23

 

表3-7. WDPA 演算法 ... 23 

表3-8. 交易資料庫 ... 24 

表3-9. 一階候選項目集合 Tid 表格 ...

25 

表3-10. 一階高頻項目集合 ... 25 

表3-11. 二階候選項目集合 ... 27 

表3-12. 二階候選項目集合 ... 28 

表3-13. 符合支持度之二階高頻項目集合 ... 28 

表3-14. 所有階層之項目集合及次數 ... 29 

表4-1. 測試資料庫參數 ... 31 

表4-2. 四種分配法之執行時間 ... 33 

表4-3. 四種分配法之執行時間 ... 33 

Deleted:

Deleted:

Deleted: 2 Deleted: 2

Deleted: 2

Deleted: 2 Deleted: 2

Deleted: 3 Deleted: 3 Deleted: 3

(8)

圖目錄

圖2-1. Apriori 演算法流程架構圖 ... 8 

圖2-2. Ye’s 演算法之平行分散樹狀圖 ... 10 

圖2-3. 建立交易紀錄矩陣 (CMatrix) ... 12 

圖2-4. 利用 CMatrix 計算項目集合次數 ... 12 

圖3-1. 組合次數計算 ... 15 

圖3-2. Tid 長度加權計算 ...

16

 

圖3-3. 循序分配 (Block partition) ... 16 

圖3-4. 循環分配 (Cyclic partition)... 16 

圖3-5. 區塊數計算 ... 17 

圖3-6. Tid 加權值計算 ... 17 

圖3-7. WDPA 演算法流程圖 ...

19

 

圖3-8. 二階候選項目集合矩陣 ... 26 

圖3-9. 候選項目集合次數計算 ... 27 

圖4-1. WDPA 四種分配法之加速比 ...

34 

圖4-2. 各處理器執行時間 ... 35 

圖4-3. WDPA 之各處理器執行時間 ...

36 

圖4-4. 演算法執行時間 ... 37 

圖4-5. 改變資料量大小,演算法執行時間 ... 38 

圖4-6. 變動支持度高低,演算法執行時間 ... 39 

圖4-7. 演算法執行時間 ... 40 

圖4-8. 變動資料量大小,WDPA 之執行時間 ...

41 

圖4-9. 變動資料量大小,WDPA 之加速比 ...

41 

圖4-10. 改變支持度高低,WDPA 之加速比 ...

42

 

Deleted:

Deleted:

Deleted:

Deleted: 2

Deleted: 3 Deleted: 3 Deleted: 3 Deleted: 3 Deleted: 3 Deleted: 3 Deleted: 3 Deleted: 4 Deleted: 4 Deleted: 4

(9)

第 1 章 緒論

資料探勘的主要目的便是從龐大且雜亂的資料庫中挖掘出有意義的資訊、知識,

以提供給使用者作為輔助決策略的參考使用。因此目前已有許多不同的領域應用此 探勘技術以幫助達成預測的目的或發現有意義的規則。然而當面對龐大的資料量時,

探勘就需耗費許多的時間做判斷及分析,因此如何發展一個有效率的資料探勘技術 便成為目前重要的研究課題。

1.1 研究背景

資訊技術的快速發展,使得電腦成為企業必備的工具,因此許多企業都將經營 方式改以電子化以提升工作效率及產業競爭力;然而全面電子化的作業模式也使得 企業資料庫累積龐大的資料量,在這些資料中可能會隱藏著一些有用的資訊,透過 技術的萃取就可以把這些有用的資訊外顯出來。因此資料探勘便是對大量的資料進 行探勘找出隱藏在資料庫中有意義的規則。資料探勘的模式大致可分為六種:(1) 資 料 分 類(data classification) 、 (2) 關 聯 法 則 (association rule) 、 (3) 資 料 分 群 (data clustering)、(4) 因果(sequence)、(5)迴歸(regression)、(6)時間序列(time series)。本 論文的探勘模式是以「關聯法則」為主,關聯式法則探勘主要是找出資料間的關聯 性,例如:當大多數的消費者在購買牛奶的同時會購買麵包,因此就產生「牛奶→

麵包」的關聯法則,所以商家就能根據此關聯法則推出整合型的促銷活動,以提升 產品的銷售量。

大部份關聯法則探勘的研究是針對單一處理器對靜態資料或漸進式資料的探勘 技術進行改良,藉由減少資料庫掃描次數或減少候選項目集合的數量,以提升探勘 效率;然而減少資料庫掃描次數的方式,卻是需要大量的儲存空間存放探勘過程所 需的相關資料;而改良候選項目集合的數量,雖然能減少項目集合的數量,但在產 生高頻項目集合的過程中,仍需要對資料庫反覆掃描以求得項目集合的資訊,因此 此二種改良方式皆無法得到良好的探勘效能。為改善單一處理器所需的時間成本或 儲存設備的耗費,陸續有許多學者提出平行分散式的資料探勘技術,藉由分工的概 念由多台處理器同時運作;然而平行分散的探勘技術,當探勘過程使用不同的資料

(10)

結構或資料切割方式的改變,都會影響處理器間的執行時間,並有可能會造成負載 不平衡的問題。因此,在平行分散的資料探勘演算法中,如何對交易資料或項目集 合做均勻的分配成為目前重要的研究之一。

1.2 研究動機

資料探勘是對大量的資料進行探勘、分析以找出隱藏在資料庫中有意義的規則 或模式。關聯式法則是資料探勘中最常被使用的技術之一,主要是找出某些事件或 是資料會同時發生的項目關聯性。其應用相當廣泛,舉凡大賣場、醫療單位到政府 機構都能藉由探勘技術挖掘出有意義的資訊,作為輔助決策的參考。大賣場可藉由 購物籃分析以提出產品組合建議或促銷、對顧客購物習慣的分析以針對個人行銷化 的策略,醫學界藉由探勘技術研究追蹤探討基因、疾病及治療間的關係等。

大部份關聯法則探勘演算法,都是使用單一處理器進行掃描與分析技術,然而 當資料庫包含龐大的資料量時,以單一處理器執行計算量也跟著提高,便需要耗費 更多的時間成本。因此陸續就有學者提出平行分散式處理的探勘技術[8][9][10][11]

[13][16][17],透過多台電腦所組成的叢集式電腦系統,以分工方式同時處理一件工

作,便可有效節省處理時間。平行分散式處理的優點是負載量的分散並具有經濟性,

利用數台低價位的處理器取代一部高價位處理器,節省購置成本;各處理器透過一 個平台傳遞資訊,所以負荷量是由各處理器分擔,能有效節省處理時間,以提升探 勘效率。然而在平行分散部份當交易紀錄或項目集合分配不均勻時,就容易發生處 理器的執行時間有落差;因此,本論文針對資料探勘之平行分散演算法的項目集合 分配部份,藉由準確的計算分配機制使處理器間分配的項目集合數量能更為平均,

有效提升探勘效率。

1.3 研究目的

資料探勘的技術能從龐大的資料中探勘出有意義的資訊,然而當資料庫中包含 有大量的資料筆數時,在關聯規則的產生就需要耗費很長的計算時間,此時就需要 藉由平行分散式的處理來改善;平行分散式的資料探勘(Parallel Distributed Data

Formatte Roman, (A Deleted:

Formatte Roman, (A Deleted:

Formatte Roman, (A Deleted:

Formatte Roman, (A Deleted:

Formatte Roman, (A Deleted:

Formatte Roman, (A Deleted:

Formatte Roman, (A Deleted:

(11)

Mining)便是希望藉由分散計算的優點,依序將工作分配給各處理器執行,但往往 會因為資料分配不均勻,造成處理器間負載不平衡的情況,導致沒有發揮平行分散 處理應該有效能,並且需要冗長的執行時間對資料庫反覆掃描。因此本論文希望藉 由儲存交易資料的識別碼以減少資料庫掃描次數,同時在平行分散處理部份,使用 更精確的項目集合計算機制做平行分散以節省處理器的閒置時間並使處理器達到負 載平衡,如此能夠更有效且快速的探勘出關聯規則。

1.4 研究流程

為達上述的研究目標,本論文之研究流程可以分為以下四個階段:

1. 文獻探討:針對資料探勘的技術領域進行初步的介紹後,對本論文的研究主題

「平行分散式關聯法則」的相關演算法進行探討,並探討相關演算法的執行效 率。

2. 研究設計:在對過去的各種平行分散式關聯法則演算法有深入了解後,為改善 平行分散過程中處理器會發生的問題,設計一個新的平行分散式關聯法則探勘 演算法,並提出四種組合做項目集合的分配以改善處理器執行效率的方法。

3. 演算法之實作:根據本論文所提出的演算法進行實驗以驗證其執行效率,並與 近年所提出相關的平行分散演算法進行實驗比較。

4. 實驗結果分析:探討本論文所提出的演算法效能是否達到預期目標,並思考未 來的研究方向。

本論文相關章節安排如下。第二章為文獻探討,簡介關聯式法則及說明目前以 Apiori 演算法為基礎的相關平行分散式關聯式法則探勘演算法,並指出目前平行分 散演算法中可能會發生的問題處。第三章研究方法將詳細描述所提出的權重式平行 化關聯式法則探勘演算法(WDPA),包括計算分配機制方式及演算法步驟。第四章 實驗結果與分析,探討WDPA 演算法的執行效率是否達到預期結果。第五章為結 論與未來研究方向。

(12)

第 2 章 文獻探討

隨著大量的資料探勘技術應用於各領域中,因此探勘技術的執行效率成為重 要的研究方向,其中關聯式法則是資料探勘中最普遍被應用的技術之一,此技術是 從資料庫中找出項目間的關聯性,以輔助使用者做決策參考;關聯式法則的探勘主 要分為高頻項目集合的挖掘及關聯規則推導,然而最耗費執行時間的部份是高頻項 目集合的探勘,因此目前已有許多學者相繼提出不同的資料結構以改善探勘過程的 執行效率,包含減少資料庫掃描次數、改善項目集合次數的計算及減少候選項目集 合的產生。以下將針對資料探勘技術、關聯式法則及相關演算法做介紹。

2.1 資料探勘技術介紹

資料探勘的技術提供二項功能:預測未來的趨勢和找出未知的樣式(pattern);

預測未來的趨勢是從龐大的資料庫中找出資料間的相關性,以預測未來可能發生事 件的機率;找出未知的樣式是以現有的資訊經過探勘後發掘隱藏在資料庫中的樣式,

而這些樣式在過去的規則中並不存在。一般而言,資料探勘是建立模式以模擬現實 生活中的情況,只要能建立模式且充分的運用,便能藉由模式以描述或預測潛藏在 資 料 庫 中 有 用 的 樣 式 特 徵 及 關 係 , 模 式 可 分 為 六 種 模 式 :(1) 資 料 分 類 (data classification)、(2)關聯法則(association rule)、(3)資料分群(data clustering)、(4) 因果 (sequence)、(5)迴歸(regression)、(6)時間序列(time series),以下將對六種模式進行 說明:

(1) 資料分類 (data classification):根據已知的資料及分類屬性值做定義,建立分類 模型,根據分類的資料研究特徵,再將特徵結果應用在未分類的資料或是對資料做 預測。例如:保險公司依照客戶的風險程度,區分為高風險客戶、低風險客戶,根 據這些資訊推行不同的保險策略及保險費用。

(2) 關聯法則 (association rule):主要是找出某些事件或是資料會同時發生的項目關 聯性。關聯式的模式特別適合用於購物籃分析,主要是用來幫助商家瞭解客戶的消 費模式。例如:客戶購買A 商品,同時會購買 B 商品的可能性百分比。

(13)

(3) 資料分群 (data clustering):不同於資料分類事先定義好類別數目,分群模式是 將性質相似的資料進行分群,主要的功能是找出群組與群組間的差異性,及找出群 組中項目間的相似度。由於同群組的性質相似度、不同群組的性質差異性大,因此 可以對不同群組的客戶依照偏好進行合適的行銷方案。

(4) 循序樣式(sequence):與資料關聯式相似,不同在於關聯式模式是找出項目間的 相關性,而循序樣式是以時間做區隔,分析項目發生的先後順序。藉由循序模式,

瞭解客戶的消費行為後,可以進一步的對客戶進行個人化的行銷策略。

(5) 迴歸(regression):是使用過去一系列的數值預測一個連續數值的可能性。

(6) 時間序列 (time series):與迴歸模式相似,主要的分析數值都與時間相關,藉由 現有的數值預測未來的數值。時間序列可以用以處理與時間相關特性的資料,例如:

季節性。

一般而言,資料分類、迴歸模式及時間序列主要是做預測使用,關聯式與因果 模式則是具有描述性行為的功能,而資料分群則同時適用於預測及描述性行為的功 能。

2.2 關聯式法則探勘

關聯式法則是由 Agrawal 等人所提出[1][2],藉由對資料庫進行項目的掃描、

驗證,找出隱藏於龐大資料庫中項目與項目間有意義的相關性。關聯式法則探勘是 假設將所有交易紀錄(T)存放於資料庫(DB),每筆交易紀錄是由一個或多個的項目 (item)所構成 item1, item2, …, itemn,個別的項目組成的項目集合稱為 itemset,I 是 交易紀錄所有項目的集合,因此所有的 item 都包含於 I 中。假設 A、B 為項目集合,

A、B⊆I,A∩B=∅,當 A→B 表示 A 與 B 有一個關聯規則。為了判斷探勘的關聯 法則是否具有效性,因此在探勘的過程中有二個重要的參數:支持度(support)及信 賴 度(confidence),判斷項目集合是否具有效性的根據。支持度又稱為門檻值 (threshold),是用以判斷項目集合出現的次數是否符合設定的值,亦是最小支持度 (minimum support),當項目集合次數高於支持度,就稱為高頻項目集合(frequent itemsets);信賴度是確認事件的可信程度,則表示在包含有 X 的資料筆數中,同時

Formatte Auto Deleted:

Formatte Auto Deleted:

(14)

也包含 Y 的比例。有效的關聯規則是當探勘出的關聯規則支持度及信頼度都大於 或等於指定的最小支持度及最小信賴度。

對於改善高頻項目集合探勘效能,關聯式法則探勘的演算法架構可分為兩類:

(1) 候選項目產生與測試方法(the candidate-and-test approach):將每個候選項目集合 對資料庫進行掃描,並判斷項目集合次數是否符合門檻值,反覆的執行產生候選項 目集合、掃描資料庫並判斷項目集合次數,直到沒有高頻項目集合的產生即探勘完 成。例如 Apriori 演算法即是候選項目產生與測試方法的代表性演算法,其概念是 當某項目集合是高頻項目集合時,則所包含的所有子集合也一定是高頻項目集合。

(2)項目成長方法(the pattern growth approach):需要產生額外的資料結構,將探勘 所需要資訊儲存於此資料結構中,因此在探勘的過程中,只需要對此資料結構進行 反覆的探勘,可以有效減少掃描資料庫的次數;並且由於此種的資料結構大多是適 合記憶體容量的,因此可以避免直接對硬體做存取,也不需額外的空間儲存候選項 目集合。例如FP-Growth。

上述的演算法架構中,候選項目產生與測試方法主要是減少候選項目集合的產 生,因此可以減少掃描資料庫的次數;而項目成長方法則是直接將掃描資料庫的次 數減少到最多只需要兩次,由於運用高頻項目集合其所有子集合必為高頻項目集合 的特性,因此只需要較少次的掃描資料庫便可產生高頻項目集合。然而隨著資訊科 技的普及應用,資料量也快速的增加,當探勘的資料庫包含大量的資料筆數時,由 一台處理器在候選項目集合的產生及驗證過程就必需要耗費很長的計算時間,因此 藉由平行分散的資料探勘技術可以有效的加速求解。平行分散式的資料探勘 (parallel distributed data mining)便是希望藉由分散計算的環境,依序將工作分配給 各主機,故能加快項目集合的次數驗證,節省探勘所需的執行時間,並達到負載平 衡。目前常見的平行分散演算法大多是以 Apriori 演算法或 FP-Growth 演算法為基 礎平行分散。由於 Apriori 演算法在探勘高頻項目集合的過程中資料相依性低,比 較適合於平行分散,因此,本論文將以Apriori 為基礎做平行分散的資料探勘。

(15)

2.3 Apriori 演算法

Apriori 演算法[2]是由 R. Agrawal 與 R. Srikant 於 1994 年所提出的關聯式法則 探勘的演算法,是關聯式法則探勘中最具代表性的演算法之一,之後有許多關聯式 法則演算法是以 Apriori 為基礎加以延伸。其特性是假設當一個項目集合不是高頻 項目集合時,其所有包含的子項目集合皆一定不是高頻項目集合。探勘方式是藉由 k 階高頻項目集合以兩兩組合方式產生(k+1)階的候選項目集合,再以反覆搜尋的方 式對資料庫掃描,以找出符合支持度的項目集合。圖 2-1 為 Apriori 演算法的流程 架構圖。Apriori 演算法探勘過程:

(1) 設定門檻值

(2) 一階(k 階)高頻項目集合:一次資料庫掃描,探勘出符合門檻值的項目集合。應 用高頻項目集合的所有子集合也是必是高頻集合的特性,以項目與項目兩兩組 合方式產生二階候選項目集合。

(3) (k+1)階高頻項目集合的驗證是再次掃描資料庫,判斷 (k+1)階的候選項目集合 次數是否符合門檻值成為高頻項目集合。再以驗證後的高頻項目集合,產生下 一階層的候選項目集合。

(4) 反覆搜尋資料庫,判斷(3)所產生的候選項目集合是否符合門檻值標準,直到不 再產生新的候選項目集合。

(5) 藉由探勘所得到的高頻項目集合,推導關聯法則並分析其有效性。

Formatte Roman, (A Deleted:

(16)

圖2-1. Apriori 演算法流程架構圖

Apriori 演算法雖然在項目組合需耗費很長的計算時間,但使用的資料結構卻 是易於平行處理,因此陸續有學者以 Apriori 為基礎提出平行分散演算法,最早由 R. Agrawal 等人於 1996 年提出 CD (Count Distribution)、DD (Data Distribution)等[3],

CD 將資料庫等分切割給處理器計算高頻項目集合,每台處理器皆會由 k 階高頻項 目集合產生(k+1)階候選項目集合,在掃描分配到的資料庫計算項目集合次數,優 點在於處理器只需計算分配到的資料庫,可以降低訊息交換的成本;DD 的探勘方 式與 CD 相似,但只需計算 M/P 的候選項目集合(M 為候選項目集合數,P 為處理 器數量),可以改善 CD 中記憶體浪費的情況,但是當處理器增加時,亦會耗費較 多的時間在項目集合的傳輸。Cheung 等人於 1996 年提出 FDM (Fast Distributed Mining of association rules)[6],藉由Local Prune 及 Global Prune 的技術,減少候選 項目集合的產生,並於 2002 年提出改良 FDM 的演算法 FPM(Fast Parallel Mining Algorithm)[7],只需更少次的訊息交換並增加探勘效率。目前已經許多學者提出以 Apriori 演算法為基礎平行分散的演算法[12][14][15],然而大多仍然有平行分散處 理會發生的問題,例如需多次資料庫掃描、產生過多候選項目集合、負載不平衡等。

Formatte Deleted:

Formatte Deleted:

Formatte Deleted:

Formatte Deleted:

Formatte Deleted:

Formatte Deleted:

(17)

以近年提出的 Ye’s 演算法[15]及 EDMA 演算法[14]為例,Ye’s 演算法雖然結合 trie structure[5]做項目集合的平行分散,但在探勘中仍需反覆對資料庫掃描、多次的訊 息交換、並且會造成處理器間負載不平衡;而 EDMA 演算法藉由建立交易紀錄的 矩陣以減少資料庫掃描,但當資料庫龐大時就需要耗費大量的記憶體空間,並且高 頻項目集合的收集及驗證亦需耗費較長的計算時間。以下為 Ye’s 及 EDMA 演算法 流程介紹。

2.4 Ye’s 演算法

Ye 等人於 2006 年[15]提出以Apriori 演算法為基礎並結合 Trie Structure 資料結 構的平行分散演算法,依此樹狀資料結構做項目集合的平行分散,平均將要探勘的 一階高頻項目集合分配給各處理器。此演算法的探勘方式可以分為二部份討論:第 一部份為尚未做項目集合平行分配的一階及二階高頻;第二部份為做項目集合平行 分散處理後的階層。雖然藉由平行分散的策略可以加快高頻項目集合的探勘,然而 此演算法的平行分散處理部份,會使處理器間分配到的候選項目數量在資料量龐大 或是項目集合眾多時有明顯的差距,不但需要反覆的資料庫掃描,並且沒有使處理 器達到負載平衡,如圖2-2 所示。

演算法的步驟:

第一部份:一階、二階高頻項目集合探勘 (1) 設定門檻值

(2) 首先 P0將資料庫平均切割成N 等分給處理器,DB = {db0, db1, …, dbn-1}。

(3) P0 , Pi從各自的dbi中探勘一階候選項目集合,並傳送給P0

(4) 當 P0收集所有 Pi 的一階候選項目集合並計算次數後,將符合門檻值的一階高 頻項目集合傳送給Pi

(5) 計算二階高頻項目集合的方式同(3)、(4)

第二部份:三階後的項目集合探勘及項目集合的平行分散

(6) 藉由此樹狀結構的特性,P0將一階高頻項目集合等分切割給 P0、Pi。如圖 2,

Formatte Deleted:

Formatte Deleted:

Formatte Deleted:

Formatte Auto Deleted:

(18)

P0要探勘以A 開頭的項目,P1要探勘以 B 開頭的項目,要 P2探勘C、D、E 開 頭的項目。

(7) 當 Pi的 dbi包含有其他處理器要探勘的項目集合時,將該筆交易紀錄傳送給對 方。

(8) 組合 k 階項目時,當項目集合在(k-1)階是高頻項目集合時,才會掃描 dbi。將 符合門檻值的項目集合k 階高頻項目集合。

(9) 以此類推,反覆的執行步驟(8),直到沒有高頻項目集合的產生。

(10) 藉由探勘所得到的高頻項目集合,推導關聯法則並分析其有效性。

圖2-2. Ye’s 演算法之平行分散樹狀圖

2.5 EDMA 演算法

EDMA[14]是由 Wu 等人於 2008 年提出以 Apriori 演算法為基礎的平行演算法。

此演算法將交易資料以矩陣結構儲存(CMatrix),如圖 2-3 所示,藉由矩陣式的儲存 交易資料,因此在項目集合探勘的過程中不需要再對資料庫重新掃描,能夠有效減 少資料庫掃描次數。項目集合的產生及驗證應用二種篩減技術:Local pruning 及

Formatte Roman, (A Deleted:

(19)

Global pruning;經由篩減技術,在候選項目集合產生過程能有效減少候選項目集 合的產生,亦能減少項目集合需驗證的執行時間;由於集合數量的減少,因此也減 少處理器間資訊交換次數及時間。在項目集合次數的計算是利用已儲存的矩陣,從 矩陣中讀取項目集合出現筆數位置的資料做交集比對,因此不需要對資料庫重新掃 描,能加快項目集合計算及提升探勘效率,如圖 2-4 所示。但由於此演算法在探勘 之前需要將資料庫以矩陣結構儲存,因此當資料庫龐大時,就需要耗費較大的空間 建立矩陣。

EDMA 演算法步驟:

(1) 設定門檻值。

(2) P0將資料庫平均切割成N 等分給 Pi,DB = {db0, db1, …, dbn-1}。

(3) P0、Pi 將各自的 dbi建立資料庫矩陣 (CMatrix)

(4) 藉由 CMatrix 表格計算 k 階候選項目集合次數(k-itemsets, k=1)。

(5) 各處理器將探勘的一階候選項目集合分成二部份:一、為符合門檻值的項目集 合存為區域的 k 階高頻項目集合,稱為 ;二、未符合門檻值的項目集合存 為區域的k 階候選項目集合,稱為 。

(6) P0收集Pi的LL,當收集後會有二種情況:

(6-1) 項目集合存在 於所有的 處理器: 此項目集 合存為全 域高頻項 目 集合 (Global frequent itemsets, GL),並加總次數。

(6-2) 項目集合不存在於所有的處理器:先從 P0收集的 中找尋其集合的子 集合最小值,並加上已存在的次數,當計數後的次數符合門檻值時,則將 此項目集合傳送給Pi 做項目集合次數計算。

(7) k=k+1, P0、Pi計算 k 階候選項目集合, 產生方式是將 以 Apriori 兩兩組合 產生。 是指其項目集合是 亦是 GL 的項目集合。

(8) 反覆的執行步驟(4~7),直到 k 階全域高頻項目集合個數小於(k+1)或已沒有高頻 項目集合的產生。

(9) 藉由探勘所得到的高頻項目集合,推導關聯法則並分析其有效性。

(20)

圖2-3. 建立交易紀錄矩陣 (CMatrix)

圖2-4. 利用 CMatrix 計算項目集合次數

從文獻中得知,由於EDMA 演算與過去提出的 CD 演算法[3]、FDM 演算法[6]

相比,已可以節省約30%的執行時間。因此在後續的實驗部份,本論文所提出的 演算法將僅與EDMA 演算法及 Ye’s 演算法做比較。

由於 Ye’s 演算法會對每個候選項目集合進行資料庫掃描,因此當項目集合數 量愈多時便需要多次資料庫;而在平行分散部份,項目集合分配不均更使得處理器 間負載不平衡,執行時間有顯著的落差。而 EDMA 演算法雖然藉由矩陣結構儲存 交易記錄能加快項目集合次數的計算,然而在項目集合計算部份較繁雜,並需要多 次對矩陣進行讀取,因此仍需要較長的執行時間。為改善前人提出的平行分散演算 法當項目集合數量眾多或資料量龐大時,仍需要耗費許多時間於資料庫掃描,並且 在平行分散的分配上亦使處理器間沒有達到負載平衡。因此,本論文提出權重式平 行化關聯式法則探勘演算法,能有效減少資料庫掃描次數,使處理器達到負載平衡,

並能節省處理器的閒置時間。

(21)

第 3 章 權重式平行化關聯式法則探勘演算法

3.1 研究設計概念

本論文針對關聯式法則進行研究,當需要探勘的資料量愈來愈龐大,由一台 處理器處理探勘項目組合的比對驗證就需要花費更多的時間。因此藉由平行分散的 策略能有效加速求解,就前人所提出的平行分散演算法在探勘過程仍需要多次對完 整資料庫掃描或是資料分配不均勻使處理器有負載不平衡的情況,而需要耗費冗長 的計算時間於探勘中。因此本論文提出一個平行分散的關聯式法則演算法,在第一 次資料庫掃描時會記錄交易紀錄的相關資訊,藉由記錄的資訊使在之後探勘的過程 中不需要重覆的掃描完整資料庫,只需要對所記錄的資訊進行探勘;在平行分散的 策略為改善處理器執行工作分配不平均的的情況,因此提出計算分配機制,使處理 器間所分配的工作能更均勻。藉由本論文提出的方法,能夠有效避免多次資料庫掃 描,有效提升探勘效率,並使處理器達到負載平衡。

演算法中每筆交易資料都有一個識別編號,以流水號編碼從 0 開始遞增,稱 為 Tid;應用高頻項目集合的所有子集合也是高頻的特性,因此K階候選項目集合 是由

( K − 1 )

階高頻項目集合產生,即

freq

K1

= { I

0

, I

1

,..., I

n1

}

,因此之後提到的

} ,..., ,

{ I

0

I

1

I

n1 指 的 是

( K − 1 )

階 的 高 頻 項 目 集 合 ; 項 目

I

i 的 Tid 表 示 則 為

}

,..., ,

{

0 1 1

=

m

i

trans trans trans

I

TID

3.2 研究架構與特性說明

本論文所提出的平行分散演算法之架構是以 Apriori 演算法為基礎加以平行 化。不同於相關研究的平行分散計算方式,本論文所提出權重式平行化關聯式法則 探勘演算法(Weighted Distributed Parallel Apriori Algorithm, WDPA),能夠 有效的減少資料庫掃描,並能節省閒置時間使處理器達到負載平衡,本演算法的特 性如下:

(22)

(1) 一次資料庫掃描

在進行一階高頻項目探勘時,只需要掃描完整資料庫一次,便會記錄一階項目 集合及 Tid,Tid 的儲存可以快速且清楚的知道項目集合出現的交易紀錄編號及次 數。藉由項目集合的 Tid 交互比對結果,便能快速探勘計算出項目集合共同出現的 交易紀錄編號。因此,當 Tid 的個數符合最低門檻值時,此項目集合便是高頻項目 集合。之後的探勘是以(K-1)階高頻項目集合的 Tid 表格做為 K 階高頻項目集合探 勘的依據。

(2) 區塊計算及 Tid 長度加權計算

由於Apriori 演算法產生候選項目集合的特性是以項目與項目交互組合產生,因 此 K 階候選項目集合的產生是以(K-1)階的高頻項目集合交互組合而成,其組合的 結構為二維矩陣。為使各處理器分配到的項目集合更為平均,因此將(K-1)階的高 頻項目集合以 Tid 長度做遞減排序後組合 K 階候選項目集合,每個項目集合組合 視為一個區塊(Lattice),如圖 3-1,由於此二維矩陣是對稱式的矩陣,所以為避免 重覆探勘項目集合,則以下方三角矩陣做探勘。組合次數計算的概念是計算項目集 合需組合的總次數及平均數;公式(1)為每個項目集合需組合的區塊數,公式(2)則 顯示 K 階候選項目集合需組合的總次數。

_ 1 ……… (1)

_ ∑ _ ……….. (2)

(23)

圖3-1. 組合次數計算

由於項目集合的 Tid 長度可能會有差距,若只考慮候選項目集合組合次數,則 會使項目集合的分配不平均,因此將項目集合出現頻率及 Tid 需比較次數的因素列 入公式內討論,可以更準確的對項目做分配,如圖 3-2。公式(3)及公式(4)分別為計 算項目Ii加權後的Tid 值及 k 階候選項目集合的 Tid 加權總值。

_ ∑ ………. (3)

_ ∑ ∑ …. (4)

(24)

圖3-2. Tid 長度加權計算

(3) 循序分配 (Block partition) 及循環分配 (Cyclic partition)

循序分配 (Block partition),如圖 3-3,是將項目集合先分配給一台處理器,直 到處理器分配到的項目集合數已達到平均值,才會開始將項目集合分配給下一台處 理器。而循環分配(Cyclic partition),如圖 3-4,以輪流的方式將項目集合分配給各 處理器,藉由循環分配方式,會使處理器分配到需處理的資料量近似相同,較不會 使區塊數量多的項目集合聚集於同一處理器,而使處理器負擔過大。

圖3-3. 循序分配 (Block partition) 圖3-4. 循環分配 (Cyclic partition)

(25)

因此本論文將二種計算方式及二種平行分散的分配法以複合式方式組合呈現。

可分成四種不同的組合型態,以找出最佳執行效率的探勘模式。以下簡例介紹四種 計算分配機制的組合,假設處理器為三台(P0、P1、P2)、支持度數量為 2,則表 3-1 為符合支持度的項目集合Tid 表格,以項目 A 為例表示其項目出現次數共 5 次,分 別在第1, 2, 3, 4, 5 筆中。

表3-1. Tid 表格

Items Count TID

A

5 1, 2, 3, 4, 5

B

4 1, 2, 3, 5

C

4 2, 3, 4, 5

D

3 1, 4, 5

E

3 1, 2, 4

F

2 3, 5

項目集合的計算方式可分為區塊數計算及Tid 長度加權值計算。區塊數計算是 依照項目集合需組合次數做分配,如圖3-5 可看出項目 A 的組合次數為 5 次,以此 類推則可得各項目集合的組合次數及總數。而Tid 長度加權值計算亦即是將項目集 合於資料庫中出現次數列入考量,同樣以項目A 為例則加權後的值為 80,如圖 3- 6 所示。其分配方式則是當處理器分配到的區塊數或加權值已大於或等於平均值即 停止,區塊數平均值為5,Tid 加權平均值約為 60。

圖3-5. 區塊數計算 圖3-6. Tid 加權值計算

(26)

表3-2. 複合式組合分配表

複合式組合 分配結果

以區塊計算配合循序分配法 (Lattice & Block partition)

P0:{A} = 5

P1:{B, C} = 4 + 3 = 7 ( 5 ) P2:{D, E} = 2 + 1 = 3

以區塊計算配合循環分配 (Lattice & Cyclic partition)

P0:{A} = 5

P1:{B, D} = 4 + 2 = 6 ( 5 ) P2:{C, E} = 3 + 1 = 4

以Tid 長度加權計算配合循序分配 (WeightTid & Block partition)

P0:{A} = 80 ( 60 )

P1:{B, C} = 48 + 32 = 80 ( 60 ) P2:{D, E} = 15 + 6 = 21

以Tid 長度加權計算配合循環分配 (WeightTid & Cyclic partition)

P0:{A} = 80 ( 60 )

P1:{B, D} = 48 + 15 = 63 ( 60 ) P2:{C, E} = 32 + 6 = 38

由於項目集合的排序方式是以項目集合的 Tid 長度做遞減排序,因此從表 3-2 可得知,循環分配的方式優於循序分配;而 Tid 長度加權方式當項目集合數多眾多 時,再配合循環分配能更平均的將項目分配給處理器。下一節將說明演算法的執行 步驟。

3.3 演算法步驟

本論文主要針對平行分散的關聯式法則探勘進行研究,WDPA 演算法是利用 一次掃描資料庫後建立交易紀錄的 Tid 表格,由於 Tid 表格是記錄項目集合出現的 交易紀錄編號,藉由 Tid 表格中項目集合的資料比對及驗證即可快速得到項目集合 的次數,因此可以節省需要反覆掃描資料庫的次數。本論文將 WDPA 演算法的架 構主要可分為二大部份,一個是計算區塊數目做為平行分散依據,一個是計算 Tid 長度做為加權值的平行分散方法;其項目集合次數的計算皆是經由 Tid 表格比對驗 證後,將符合最小支持度的項目集合儲存為高頻項目集合,並記錄項目集合名稱及 交易紀錄的編號,以利下一個階層做資料的比對驗證。圖 3-7 為 WDPA 演算法流 程圖。

(27)

圖3-7. WDPA 演算法流程圖

(1) 循序區塊數分配 (Block Lattice Partition, BL)

平行分散項目集合的分配方式,首先計算每個項目集合需組合候選項目集 合的次數,稱為區塊 (Lattice)。區塊數的計算是(k-1)階高頻項目集合在產生 k

階候選項目集合需組合的次數,每個項目集合的區塊數為 _ ,因

此 k 階候選項目集合需組合的區塊總數是 _ ,如公式(1)(2)。當 計算出項目集合的總數及平均數,以循序的概念做高頻項目集合的分配,依序 將需計算的項目集合分配給處理器,當一台處理器分配到的區塊數目已大於或 等於平均值,才開始分配給下一台處理器,此分配稱為Block

_

Lattice

(

BL

)

。表 3-3 為循序區塊數分配演算法過程。

表3-3. 循序區塊數分配演算法

(28)

Block Lattice Partition (BL)

(1) Calculate total lattice count and average lattice count: _ , _

_ _

(2) prcs, val_Lattice = 0 dis_itemsets = null array For i = 0 to ( len(freqk-1) – 1 ):

If val_Lattice >= _ or i == ( len(freqk-1) – 1 ):

Send dis_itemsets to pprcs

prcs += 1 val_Lattice =0

dis_itemsets = null array Else:

dis_itemsets append freqk-1[i]

val_Lattice += _

由於二維矩陣的下三角區塊數量是遞減呈現,在分配的過程中區塊數目亦是從 區塊數多的項目集合開始分配。當項目集合數眾多時使用循序分配會使得處理器間 分配的區塊數目有差距,亦會造成負載不平衡的可能性。因此,為改善項目集合可 能會發生分配不均勻的情況,便將項目集合的分配方式改以區塊數的計算配合循環 (Cyclic partition)分配,使處理器間分配到的工作量更接近平均值,以減少可能發生 的閒置時間。

(2) 循環區塊數分配 (Cyclic Lattice Partition, CL)

此分配法的計算公式同 BL,不同在於項目集合的分配是使用循環切割的 概念。循環切割是將項目集合以輪流方式將下三角矩陣內的區塊數依序分配給 各處理器,其優點是區塊數多的項目集合不會同時在一台處理器,如此可以減 少處理器分配區塊數目間的顯著差距。因此便能有效節省處理器的閒置時間,

達到負載平衡,表3-4 為循環區塊數分配演算法過程。

表3-4. 循環區塊數分配演算法

(29)

Cyclic Lattice Partition (CL)

(1) Calculate total lattice count and average lattice count: _ , _

_ _

(2) prcs, val_Lattice = 0 dis_itemsets = null array For i = 0 to ( len(freqk-1) – 1 ):

If val_Lattice prcs mod (p-1) >= _ or i == ( len(freqk-1) – 1 ):

Send dis_itemsetsprcs mod (p-1) to pprcs

prcs += 1

val_Lattice prcs mod (p-1) =0 Else:

dis_itemsets prcs mod (p-1) append freqk-1[i]

val_Lattice prcs mod (p-1) += _ prcs += 1

由於使用計算區塊總數只有考慮到項目的組合次數,而忽略項目集合包含的 Tid 長度及需比對的次數。如此當需處理的資料庫愈龐大,Tid 表格記錄的交易編 號愈多,就會有分配不均勻的情況。為改善此問題,本論文將 Tid 長度列入項目集 合分配的計算機制中,並將比對次數視為加權值,便能使項目集合的分配更為精確,

因此提出以計算Tid 出現的次數為加權值的平行分散演算法。

(3) 循序 TID 加權值分配 (Block WeightTid Partition, BWT)

循序 TID 加權值分配是為改善區塊數分配機制中忽略的項目集合 Tid 長度,

由於項目集合出現於資料庫的次數不一致,當出現次數有顯著的落差時,只按 照項目集合組合次數做為分配依據則會處理器間的比對次數有差距。因此,為 更精確的對項目集合做分配,本論文將項目集合的 Tid 長度列入計算機制中,

以 降 低 處 理 器 等 待 的 閒 置 時 間 。 當 計 算 出 各 項 目 集 合 的 加 權 值 _ 及總數,如公式(3)(4),便利用循序切割(block partition)將 項目集合分配給處理器。表3-5 為循序 TID 加權值分配演算法過程。

_ ∑ ………...… (3)

(30)

_ ∑ ∑ ……. (4)

表3-5. 循序 TID 加權值分配演算法

Block WeightTid Partition (BWT)

(1) Calculate total weight value and average weight value: _ ,

_ _

(2) prcs, val_WeightTid = 0 dis_itemsets = null array For i = 0 to ( len(freqk-1) – 1 ):

If val_WeightTid >= _ or i == ( len(freqk-1) – 1 ):

Send dis_itemsets to pprcs

prcs += 1

val_WeightTid =0 dis_itemsets = null array Else:

dis_itemsets append freqk-1[i]

val_WeightTid += _

同樣在區塊計算時會發生的切割問題,即是循序分配(block partition)的過程中,

由於項目集合組合次數是由多至少,因此使用 TID 加權後的值亦是從大至小;為 改善加權值大的項目集合聚集在同一台處理器,所以將切割方式改以循環分配 (cyclic partition),使各處理器分配到的加權值能更相近,以減少處理器間等待的閒 置時間,有效達到負載平衡。

(4) 循環 TID 加權值分配 (Cyclic WeigthTid Partition, CWT)

以TID 加權並配合循環切割的分配方式是結合上述所提的有效計算方式及切割 分配法。為能準確的將項目集合分配給處理器,因此在計算機制中將項目集合於資 料庫出現的次數視為加權值 ,再以循環方式做切割。如此能使各處理器分配需處

(31)

理的工作量相近,達到負載平衡,有效提升執行效率。表3-6 為循環 TID 加權值分 配的演算法過程。

表3-6. 循環 TID 加權值分配演算法

Cyclic WeightTid Partition (CWT)

(1) Calculate total weight value and average weight value: _ ,

_ _

(2) prcs, val_WeightTid = 0 dis_itemsets = null array For i = 0 to ( len(freqk-1) – 1 ):

If val_WeightTidprcs mod (p-1) >= _ or i == ( len(freqk-1) – 1 ):

Send dis_itemsetsprcs mod (p-1) to pprcs

prcs += 1

val_WeightTidprcs mod (p-1) =0 Else:

dis_itemsets prcs mod (p-1) append freqk-1[i]

val_WeightTidprcs mod (p-1) += _ prcs += 1

以上四種項目集合的平行分散分配機制中,由於 CWT 分配法藉由更細微的計 算方式及較平均的分配,所以在項目集合分配的過程中,最能使項目集合準確且平 均分配給各處理器。因此在後續的實例推導及實驗中,項目集合的平行分散是以 CWT 分配法為主,表 3-7 為 WDPA 演算法流程。

表3-7. WDPA 演算法

WDPA Algorithm

Input: a transaction database DB = {T0, T1, ..., Tn-1}, and each transaction Ti I, I = {i0, i1, ..., im-1}. A given minimum support s. p is the number of processors. (p0 is master processor (MP), and p1, p2, ..., pp-1

are salve processors (SPs)) Output: All frequent itemsets.

(32)

Method:

Step 1. Each processor reads the database DB.

Step 2. Each processor scans DB and creates the transaction identification set (TID).

Step 3. Each processor calculates candidate k-itemsets counts, when the calculated count is greater than s, let freqk be frequent k-itemsets.

Step 4. MN equally divides the freqk into p disjoint partitions and assigns itemsetsi to pi. Itemsetsi denots SPs was assigned the itemsets from MN. The frequent pattern divides method:

(1) Block_Lattice (BL) (2) Cyclic_Lattice (CL) (3) Block_WeightTid (BWT) (4) Cyclic_WeightTid (CWT)

Step 5. Each processors receives the itemsetsi and combination candidate (k+1)-itemsets.

Step 6. Each processors candidate itemsets is calculated by the count of Tid forms.

Step 7. When itemsets count greater than s then it be frequent (k+1)-itemsets, and save itemsets appearn transaction id to (k+1)-TID.

Step 8. SPs send freqent itemsets to MN.

Step 9. MN receives SPs itemsets, and repeat execution step4 to setp9 until without any frequent itemsets.

3.4 實例推導

本節將實際舉例 WDPA 演算法中以 CWT 為計算分配機制的項目集合平行分 散,將演算法進行完整的推導。設定資料探勘的高頻支持度為交易筆數的 40% ( 8 筆資料 × 40% ≒ 3,當求出的值有小數點時,則無條件捨去),亦指當項目集合共 同出現 3 次(含)以上的則為高頻項目集合、處理器設定為二台為 P0及 P1 ,P0 為伺 服處理器 (Master Processor)。以下開始探勘的流程。表 3-8 為交易紀錄內容。

表3-8. 交易資料庫

TID Items

1 e, d, r, m, a, f 2 r, o, d, i, h, p 3 b, h, r, g, f 4 j, h, l, g, r 5 p, f, d, g, h, a 6 r, f, a, m, p, d 7 m, r, d, o, f, h

(33)

8 c, r, e, n, g, f

步驟一:建立交易紀錄Tid 表格及探勘一階高頻項目集合

掃描原始資料庫一次,計算一階候選項目集合的名稱及 Tid 表格,如表 3-9。

並將符合支持度的高頻項目集合儲存為一階高頻項目集合,如表 3-10。藉由一階 高頻項目集合,依項目集合出現的高頻次數做遞減,建立項目集合的二維矩陣,如 圖3-8。

表3-9. 一階候選項目集合 Tid 表格

Items TID Items TID

a 1, 5, 6 i 2

b 3 j 4 c 8 l 4 d 1, 2, 5, 6, 7 m 1, 6, 7

e 1, 8 n 8

f 1, 3, 5, 6, 7, 8 o 2, 7 g 3, 4, 5, 8 p 2, 5, 6 h 2, 3, 4, 5, 7 r 1, 2, 3, 4, 6, 7, 8

表3-10. 一階高頻項目集合

Items Count TID

r 7 1, 2, 3, 4, 6, 7, 8 f 6 1, 3, 5, 6, 7, 8 d 5 1, 2, 5, 6, 7 h 5 2, 3, 4, 5, 7 g 4 3, 4, 5, 8

a 3 1, 5, 6

m 3 1, 6, 7

p 3 2, 5, 6

(34)

圖3-8. 二階候選項目集合矩陣

步驟二:(k-1)階高頻項目集合的平行分配

• 項目 r 的 Tid 加權值計算方式為

= 7 × 6 + 7 × 5 + 7 × 5 + 7 × 4 + 7 × 3 + 7 × 3 + 7 × 3 = 203

• 以此類推可以計算出所有項目集合的 Tid 加權值

∑ ∑

= r (203) + f (138) + d (90) + h (65) + g (36) +a (18) + m (9) + p (0) = 559

• 平均一台處理器需處理的 Tid 加權值

= Tid 加權總值 ÷ 處理器數量 ≒ 279

• 以 Cyclic_WeightTid (CWT) 做項目集合的平行分散,輪流的方式將項目集 合分配給 P0及 P1,當處理器分配到的 Tid 加權值已等於或大於平均值時,

即不再被分配項目集合。以下為P0及P1 分配到的項目集合。

o P0: r (203)+ d (90) = 293

(已大於平均值,因此不再被分配項目集合)

o P1: f (138)+ h (65)+ g (36)+ a (18) + m (9) =266

雖然 P1分配到的項目集合 Tid 加權總值小於平均值,但由於項目集合已分 配完,因此P1即是處理所分配到的5 個項目集合。

(35)

步驟三:k 階高頻項目集合的產生

藉由步驟二所分配到的項目集合做 k 階候選項目集合的產生,並比對驗證 Tid 表格,計算出項目集合出現次數及Tid 編號。由於 P0 及 P1 分配到的項目集合沒有 重覆,因此當 P0 要收集所有處理器的 k 階高頻項目集合時,並不需要花費時間再 確認項目集合有無重覆,只需要做收集的動作即可。以下為P0 及 P1 的候選項目集 合,及比對Tid 表格計算項目集合次數,如表 3-11。

表3-11. 二階候選項目集合 處理器名稱

k 階候選項目集合

P0 md, rd, rg, pd, rf, rm, hr, dg, pr, ad, ar, hd

P1 gf, ph, pf, mf, mg, af, am, ap, ag, pm, ah, pg, hg, hm, hf, df

在驗證候選項目集合的過程中,是藉由項目集合的Tid 表格做比對計算。以 P0

的候選項目集合”md”為例,抓取”m”跟”d”的 Tid 值做交集比對,就可以快速的得 到項目集合出現的交易紀錄編號及次數,如表3-12。

Items TID

d 1, 2, 5, 6, 7

m 1, 6, 7

Itemsets Count TID

md 3 1, 6, 7 圖3-9. 候選項目集合次數計算

以此類推,各處理器便可找出所有二階候選項目集合的交易紀錄編號及次數,如 表 3-13。探勘出的候選項目集合交由 P0收集,並將符合支持度的項目集合儲存為 高頻項目集合,如表3-14。

(36)

表3-12. 二階候選項目集合

P

0

P

1

Itemsets Count TID Itemsets Count TID

md 3 1, 6, 7 gf 3 3, 5, 8

rd 4 1, 2, 6, 7 ph 2 2, 5

rg 3 3, 4, 8 pf 2 5, 6

pd 3 2, 5, 6 mf 3 1, 6, 7

rf 5 1, 3, 6, 7, 8 mg 0 (null) df 4 1, 5, 6, 7 af 3 1, 5, 6

rm 3 1, 6, 7 am 2 1, 6

hr 4 2, 3, 4, 7 ap 2 5, 6

dg 1 5 ag 1 5

pr 2 2, 6 pm 1 6

ad 3 1, 5, 6 ah 1 5

ar 2 1, 6 pg 1 5

hd 3 2, 5, 7 hg 3 3, 4, 5

hm 1 7

hf 3 3, 5, 7

表3-13. 符合支持度之二階高頻項目集合

Itemsets Count TID

rf 5 1, 3, 6, 7, 8 rd 4 1, 2, 6, 7 df 4 1, 5, 6, 7 hr 4 2, 3, 4, 7

md 3 1, 6, 7

rg 3 3, 4, 8

pd 3 2, 5, 6

rm 3 1, 6, 7

ad 3 1, 5, 6

(37)

hd 3 2, 5, 7

gf 3 3, 5, 8

mf 3 1, 6, 7

af 3 1, 5, 6

hg 3 3, 4, 5

hf 3 3, 5, 7

步驟四:k = k + 1,反覆執行步驟二至步驟四,直到沒有高頻項目集合產生,即 完成高頻項目集合的探勘。

以此例子,當完成探勘時可以得到 29 個高頻項目集合,最長的項目集合為四 階,如表3-15 為高頻項目集合的項目名稱及共同出現的次數。

表3-14. 所有階層之項目集合及次數

一階高頻項目集合 二階高頻項目集合 三階高頻項目集合 四階高頻項目集合

Itemsets Count Itemsets Count Itemsets Count Itemsets Count

r 7 rf 5 dfr 3 dfrm 3

f 6 rd 4 dfm 3

d 5 df 4 drm 3 h 5 hr 4 frm 3 g 4 md 3 adf 3

a 3 rg 3 m 3 pd 3

p 3 rm 3

(38)

ad 3 hd 3 gf 3 mf 3 af 3 hg 3 hf 3

步驟五:藉由探勘所得到的高頻項目集合,推導關聯法則並分析其有效性。

(39)

第 4 章 實驗結果與分析

本章將對 WDPA 演算法進行實驗與結果分析,藉由改變實驗的支持度或資料 量來驗證我們所提出演算法的效率。實驗資料是以 IBM synthetic data generator (Almaden)產生

[4],分別為

T10I4D6KN100K, T10I4D10N100K, T10I4D20N100K, T10I4D50KN100K, T10I4D100KN100K, T10I4D200KN100K,其參數如表 4-1,並 分別以1, 2, 4, 8, 16 台處理器執行。本實驗會針對我們所提出的 WDPA 演算法之四 種項目集合分配方式進行探勘資料實驗。分別進行改變處理器數量、調整門檻值高 低及變動資料庫大小三種效能評估的實驗。在實驗的對照組部份,採用的是 Ye’s 演算法及 EDMA 演算法,由於 Ye’s 演算法與 EDMA 演算法為近年以 Apriori 演算 法為基礎的平行分散演算法,並且由文獻中可以得知 EDMA 演算法與過去提出的 CD 或 FDM 演算法相比較,在執行時間上較有效能優勢。因此本論文所提出的演 算法只與此二個演算法做比較。

表4-1. 測試資料庫參數

T 資料庫中單筆交易紀錄最大的項目數 I 產生高頻項目集合平均最大的項目數 D 資料庫的總交易紀錄筆數

N 資料庫中項目的總數

4.1 實驗平台

本論文所使用的硬體、軟體規格如下:

ƒ 硬體環境

CPU: AMD Athlon Processor 2200+

Memory: 1GB DDR Ram

Network: 100 Mbps interconnection network Disk: 80GB IDE H.D.

Formatte Deleted:

(40)

ƒ 軟體環境

O.S.: ReadHat Linux 7.3 Library: MPICH2 1.0.3

4.2 實驗設計

本實驗主要針對我們所提出的演算法進行效率的驗證,實驗對象是與近年所提 出的平行分散演算法進行探勘。探勘的過程中,為驗證本論文所提出的演算法確實 能夠有效提升探勘效率,本論文將進行下列實驗:

實驗一:改變處理器數量

在平行分散的環境中,處理器的數量,亦是驗證演算法是否的確具有提升資料 探勘的效率。處理器的數量愈多時,加速比應該同樣呈正向增加;反之,當處理器 數量增加但加速比反而下降則表示其演算法適用的處理器數量有限制,其因素可能 為資料庫小、支持度過高或處理器間過多次的訊息交換等。因此,本實驗便是探討 處理器數量對於演算法的加速比影響。

實驗二:調整門檻值高低

資料探勘的高頻項目集合是以門檻值為判斷依據。因此當門檻值愈低,符合的 項目集合數目會愈多,即需要耗費較長的執行時間於項目集合次數的計算,並且需 要較多次的訊息交換於處理器間,如此就會影響探勘的執行效能。因此,本實驗為 討論變動門檻值對演算法執行率的影響。

實驗三:變動資料庫大小

隨著資訊技術應用普及,資料庫包含的交易資料愈來愈龐大,然而資料量的大 小會影響探勘的執行效率。因此本實驗的目的是針對不同資料量的交易資料做探勘,

探討不同演算法間在資料庫大小對完成探勘工作所需時間的效能分析比較。

(41)

4.3 不同支持度對 WDPA 四種分配法之比較

本實驗為進行資料量在二十萬筆的情況下,對 WDPA 演算法的四種分配進進 行不同支持度的探勘,探勘時間如表4-2 及表 4-3。

表4-2. 四種分配法之執行時間 (資料:T10I4D200KN200K,支持度:0.2%)

Processors BL CL BWT CWT

1

354.0802513 355.0935591 355.0642994 353.8362865

2

186.7499379 183.3127015 184.5240253 181.2629127

4

100.6899249 98.58112637 97.13417546 95.4871823

8

55.69393531 55.45340165 53.89986038 52.67128023

16

36.05501763 33.72334997 33.42436282 31.79873443

表4-3. 四種分配法之執行時間

(資料:T10I4D200KN200K,支持度:0.15%)

Processors BL CL BWT CWT

1

2146.846135 2151.642765 2139.224329 2134.66684

2

1086.085024 1091.467562 1077.27761 1076.458966

4

560.1858676 561.2040627 545.9039406 543.2788765

8

299.928161 289.7025937 282.6013444 278.1970629

16

164.9561691 161.20001 154.4834379 148.6000716

表 4-2 及 4-3 為 WDPA 四種項目集合分配法分別在支持度 0.2%及 0.15%的執 行時間。由表中可看出,不論支持度在 0.2%或 0.15%之下,CWT 計算分配方式的 執行時間都較優於另外三種分配法;並且當支持度愈低時,藉由 CWT 分配法探勘 所節省的時間就更為顯著。

(42)

圖 4-1 為資料二十萬筆,支持度設定為 0.15%時 WDPA 四種分配方式的加速 比。根據實驗結果可觀察到四種項目集合分配法執行後的加速比都相當的接近,而 CWT 的計算分配方式由於使用 Tid 加權值並配合 Cyclic 分配方式,所以可以更準 確對項目集合做分配。並且不論處理器在1, 2, 4, 8, 16 台時,CWT 分配法的執行效 率都會優於其他三種分配方式。因此,後續實驗將以CWT 計算分配法為主。

圖4-1. WDPA 四種分配法之加速比 (資料:T10I4D200KN100K,支持度:0.15%)

4.4 各處理器執行時間之比較

本實驗是進行 EDMA、Ye’s 及 WDPA 演算法中處理器個別執行所需時間的比 較。在平行分散的演算法,由於資料庫掃描次數、交易紀錄或項目集合的計算切割 方式都會影響執行所需的時間。因此本節針對不同演算法之個別處理器所需探勘時 間做比較。

圖 4-2 表示 EDMA、Ye’s 及 WDPA 演算法在資料量一萬筆的執行時間,分析 每一台處理器個別執行時所需要的時間。WDPA(4)表示 WDPA 演算法由四台處理 器做平行分散時,處理器個別所花費的時間;以此類推,WDPA(8)是指由八台處

(43)

理器執行探勘工作個別需探勘的時間。由於 Ye’s 在探勘的過程需要多次資料庫掃 描,並且在項目集合的切割方式會造成處理器間的負載不平衡。EDMA 演算法雖 然不需要多次資料庫掃描,但在探勘的前置動作卻需要龐大的儲存空間建立交易紀 錄的矩陣(CMatrix),項目集合在探勘過程中驗證動作繁雜,如此便需要耗費許多 時間。WDPA 使用 Tid 表格儲存項目集合的資料,並藉由 Tid 表格應用於項目集合 的次數計算及平行分散的計算機制中,因此可以有效減少資料庫的掃描以節省探勘 的執行時間,並且能使每台處理器達到負載平衡,如圖 4-3 所示。因此,根據實驗 結果可得知處理器為四台時,演算法間的執行時間最大會相差近156 倍。

圖4-2. 各處理器執行時間

(資料:T10I4D10KN100K,支持度:0.2%)

(44)

圖4-3. WDPA 之各處理器執行時間 (資料:T10I4D10KN100K,支持度:0.2%)

4.5 固定支持度對 EDMA, Ye’s, WDPA 演算法效能影響之比較

在資料量固定為六千筆、支持度為0.2%的情況下,對 EDMA、Ye’s 及 WDPA 演算法進行探勘。

圖4-4 為 EDMA、Ye’s 及 WDPA 演算法當處理器分別由 1, 2, 4, 8 台探勘的執 行時間。根據實驗結果得知,由於 Ye’s 探勘的過程會對每個項目集合進行資料庫 掃描以計算項目集合次數,因此當候選項目集合愈多時,其演算法的效能會愈差。

而 EDMA 演算法雖然建立 CMatrix 做項目集合次數的計算以減少資料庫掃描,但 當候選項目集合眾多時,仍需要多次從 CMatrix 矩陣中讀取資料計算次數。本論文 所提出的 WDPA 演算法藉由儲存 Tid,因此只需要一次資料庫掃描,並利用 Tid 表 格做項目集合次數計算,便可快速得到項目集合共同出現的交易筆數,有效節省探 勘時間。

(45)

圖4-4. 演算法執行時間

(資料:T10I4D6KN100K,支持度:0.2%)

4.6 不同資料量對 EDMA、Ye’s、WDPA 演算法效能影響之比較

圖 4-5 是固定支持度為 0.2%,改變資料量以進行效能比較。根據實驗結果可 得知,WDPA 演算法當資料量改變時仍可有效達到探勘效率。而 EDMA、Ye’s 演 算法不但需要耗費很長的探勘時間,而且在資料量 6000 筆 (6K)時反而較交易筆數 多的資料庫耗費更長的執行時間,是由於高頻項目集合在支持度 0.2%、資料量六 千筆的情況下,反而較資料量大的高頻項目集合來的多。因此當演算法在執行的過 程中就需要多次對資料量掃描或對矩陣進行項目集合次數的計算,才會使得在執行 時間上資料量少的執行時間反而高於交易筆數多的資料庫。

(46)

圖4-5. 改變資料量大小,演算法執行時間 (支持度:0.2%,處理器:8 台)

4.7 不同支持度對 EDMA、Ye’s、WDPA 演算法效能影響之比較

由於支持度的設定會影響候選項目集合及高頻項目集合的數量,因此進行當改 變支持度高低對演算法執行時間的影響。固定資料量為一萬筆、處理器為八台,設 定支持度為0.35%、0.3%、0.25%、0.2%。

圖 4-6 為變動支持度對執行時間的影響。由於當支持度於 0.35%時,只有一階 高頻項目集合,因此演算法在支持度於 0.35%執行時間皆相近;但當支持度由 0.25%降低至 0.2%時,高頻項目集合數量會大量增加,因此 Ye’s 演算法在探勘過 程需要多次資料庫掃描, EDMA 演算法則需要多次從矩陣中讀取資料以計算項目 集合次數,所以由圖中可看出 Ye’s 及 EDMA 演算法的探勘時間急速上升。而本論 文所提出的 WDPA 演算法,藉由 Tid 表格的儲存能有效減少資料庫掃描次數並加 快項目集合次數的計算,配合加權值計算分配方式使處理器間有效減少閒置時間,

提升探勘效率。

(47)

圖4-6. 變動支持度高低,演算法執行時間 (資料:T10I4D10KN100K,處理器:8 台)

4.8 資料量對 Ye’s 及 WDPA 演算法效能影響之比較

由於 EDMA 演算法需要耗費較多的記憶體空間於矩陣的建立,因此當資料庫 龐大時則會有執行上的困難,如記憶體不足。因此在此章節的實驗中,只針對 WDPA 及 Ye’s 演算法進行討論,固定資料量為十萬筆、支持度為 0.2%。

從圖 4-7 中可看出,由於 Ye’s 演算法在探勘的過程中會對各個項目集合進行 資料庫掃描,因此需要花費相當長的時間執行時間,而在平行分散的過程由於分配 不均勻,因此使處理器間的執行時間相差 10%以上; EDMA 演算法藉由 Tid 表格 的項目集合儲存能有效減少資料庫掃描次數,並將項目集合以加權值計算後平均分 配,能有效提升探勘效率並達到負載平衡。因此,根據圖 4-7 的實驗結果,WDPA 演算法的執行時間大約只需要Ye’s 演算法的 5%。

參考文獻

相關文件

隨機實驗是一種過程 (process),是一種不能確定預知會

2-1 化學實驗操作程序的認識 探究能力-問題解決 計劃與執行 2-2 化學實驗數據的解釋 探究能力-問題解決 分析與發現 2-3 化學實驗結果的推論與分析

推理論證 批判思辨 探究能力-問題解決 分析與發現 4-3 分析文本、數據等資料以解決問題 探究能力-問題解決 分析與發現 4-4

學習活動 討論、角色扮演、專題講座 經驗分享、 訪問 、 資料蒐集 學習材料 兒童故事、兒歌、古詩 圖書 、日常生活經驗

2.注重實地演練,角色扮演、跟隨經驗、實地參訪及邀請業界主管演講方 式,使學生能從「經驗中學習」

微陣列玻片資料庫 (The Microarray Database,以下簡稱 TMD) 為本研究嘗 試建置的一套提供存取、分析微陣列玻片 (Microarray)

本論文之目的,便是以 The Up-to-date Patterns Mining 演算法為基礎以及導 入 WDPA 演算法的平行分散技術,藉由 WDPA

Kaiser 提出 MSA(Measure of Sampling Adequacy,資料做因 素分析適合性指標),雖然 MSA 的大小沒有統計上的判斷臨 界點,但實證經驗,當 MSA > 0.8 表示此組資料作因素分析