• 沒有找到結果。

中 華 大 學

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學"

Copied!
59
0
0

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

全文

(1)

中 華 大 學 碩 士 論 文

加權值平行分散式時序更新樣式資料探勘演算 法

A Weighted Distributed Temporal Up-to-date Patterns Algorithm

系 所 別:資訊管理學系 碩 士 班 學號姓名:M09510025 王 冠 傑 指導教授:游 坤 明 博 士

中 華 民 國 九十八 年 八 月

(2)

摘摘摘 摘 要要要 要

關聯式法則資料探勘能從資料庫中快速並且準確找出項目間的關聯式,目前 已廣泛地被應用各領域中,本論文所引用的 The Up-to-date Patterns Mining 演算 法便是融合關聯式法則與時序探勘,探勘結果的更新樣式能了解特定時序內發生 項目間的關聯法則,特色在於由支持度能將非高頻項目再次調整資料量判斷是否 能再進入高頻項目,而產生更多高頻項目集合,因此資料量會變更多;如果資料 庫越龐大或是支持度越小越可能無法負載。

本論文提出加權值平行分散式時序更新樣式資料探勘演算法(WDTU 演算 法),藉由平行分散的策略將項目集合的次數列入計算機制,能以較準確方式均 勻分配各處理器的工作量,讓各處理器達到負載平衡,以有效率提升探勘效率。

在實驗可顯示,WDTU 演算法在資料量增多或拉低支持的情況都能保持穩定的 探勘。

關鍵詞: 時序資料探勘,關聯式法則,分散式運算、負載平衡

(3)

Abstract

Association rules data mining is quickly and correctly finding the relationship between databases, the association rules data mining has been widely applied to various kinds of fields. In this paper, the Up-to-date Patterns Mining Algorithm is a hybrid of association rules and temporal mining, which is temporal association rule, in which the user-defined minimum support threshold must be satisfied. The approach can mine more useful large item sets, the amount of data increases explosively. The approaches maybe can not minimum support because of such heavy data or low minimum support.

In this paper, a Weighted Distributed Temporal Up-to-date Patterns Algorithm

(WDTU) is proposed. The Tid counts are also taken into consideration, and therefore better load-balancing as well as reducing idle time for processors. According to the experimental results, WDTU algorithm outperforms while having large database or having lower minimum support.

Keyword:Temporal Data Mining, Association Rule, Distributed Processing, Loading Balance

(4)

致謝致謝致謝 致謝

中華大學研究所生涯帶給我充實美好的回憶,首先要特別感謝我的指導教授

游坤明老師的栽培及指導,在讀書研究的方法、時間及情緒的管理、為人處世的 態度、資訊管理領域的專業知識等等都讓我有所成長,順利完成這本論文,真誠 感謝游坤明老師對我的教導、激勵及包容,在此致上最高的謝意。

其次,我要感謝中華大學資管系的所有教授與老師以及工作人員,陪伴我成 長的同學們,特別是在這段日子裡相處最久的研究室夥伴們,嘉奕、日瑋、啟宏、

嘉伶、政頤、名豐、秉璋、政光、唐維、義諺、暉元、宗杰、宏儒、承諺,以及 其他學長、學姐、學弟、學妹們,跟大家一起度過多采多姿的快樂時光,再一次 感謝你們。

最後,我要感謝我的父母親與家人對我的支持,讓我可以專心學業。感謝所 有曾幫助過我的老師及家人,以及每一位陪我走過這段路程的同學摯友。

王 冠 傑 謹致

中華大學資訊管理學系 碩士班

中華民國九十八年七月

(5)

目錄 目錄目錄 目錄

摘要 摘要 摘要

摘要...i

Abstract...ii

致謝 致謝 致謝 致謝... iii

目錄 目錄 目錄 目錄...iv

圖目錄 圖目錄 圖目錄 圖目錄...v

表目錄 表目錄 表目錄 表目錄...vi

第 第 第 第一章一章一章一章 緒論緒論緒論緒論 ...1

1.1 研究背景 研究背景研究背景 ...1 研究背景 1.2 研究目的 研究目的研究目的 ...3 研究目的 1.3 研究方法 研究方法研究方法 ...4 研究方法 第 第 第 第二章二章二章二章 文獻探討文獻探討文獻探討文獻探討 ...5

2.1 關聯式法則探勘關聯式法則探勘關聯式法則探勘 ...5 關聯式法則探勘 2.2 Apriori 演算法演算法演算法演算法...6

2.3 The Up-to-date Patterns Mining 演算法演算法演算法演算法...8

2.4 權重式平行化關聯式法則探勘 權重式平行化關聯式法則探勘權重式平行化關聯式法則探勘演算法權重式平行化關聯式法則探勘演算法演算法演算法 ...14

第 第 第 第三章三章三章三章 加權值平行分散式時序更新樣式資料探勘加權值平行分散式時序更新樣式資料探勘加權值平行分散式時序更新樣式資料探勘加權值平行分散式時序更新樣式資料探勘 ...21

演算法 演算法 演算法 演算法...21

3.1 研究設計概念研究設計概念研究設計概念 ...21 研究設計概念 3.2 研究架構與特性研究架構與特性研究架構與特性研究架構與特性 ...22

3.3 WDTU 演算法步驟演算法步驟演算法步驟 ...26 演算法步驟 3.4 實例推導實例推導實例推導...32 實例推導 第 第 第 第四章四章四章四章 實驗結果與分析實驗結果與分析實驗結果與分析實驗結果與分析 ...39

4.1 實驗平台實驗平台實驗平台實驗平台...39

4.2 實驗設計實驗設計實驗設計實驗設計...40

4.3 WDTU 四種分配法在不同支持度之比較 四種分配法在不同支持度之比較四種分配法在不同支持度之比較四種分配法在不同支持度之比較 ...41

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

4.5 不同資料量對不同資料量對不同資料量對 WDTU 演算法效能之影響不同資料量對 演算法效能之影響演算法效能之影響演算法效能之影響 ...44

4.6 不同支持度對不同支持度對不同支持度對 WDTU 演算法效能之影響不同支持度對 演算法效能之影響演算法效能之影響演算法效能之影響 ...46

4.7 拉低支持度對拉低支持度對拉低支持度對 WDTU 演算法效能之影響拉低支持度對 演算法效能之影響演算法效能之影響演算法效能之影響 ...47

第 第 第 第五章五章五章五章 結論與未來展結論與未來展結論與未來展結論與未來展望望望 ...50 望 參考文獻 參考文獻 參考文獻 參考文獻...51

(6)

圖目錄 圖目錄 圖目錄 圖目錄

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

圖 2-2. 探勘演算法的計畫 ...9

圖 2-3. 調整改變資料量 ...10

圖 2-4. 組合次數計算 ...15

圖 2-5. Tid 長度加權計算...16

圖 2-6. 循序分配 ...17

圖 2-7. 循環分配 ...17

圖 2-8. 區塊數計算 ...18

圖 2-9. Tid 長度加權值計算...18

圖 2-10. WDPA 演算法流程圖...19

圖 3-1. 調整資料量 ...22

圖 3-2. 組合次數計算 ...24

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

圖 3-4. 循序分配 ...24

圖 3-5. 循環分配 ...24

圖 3-6. 區塊數計算 ...25

圖 3-7. Tid 長度加權值計算...25

圖 3-8. WDTU 演算法流程圖 ...26

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

圖 3-10. 候選項目集合次數計算 ...35

圖 4-1. WDTU 四種分配方式的加速比 ...43

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

圖 4-3. 變動資料量大小,WDTU 之執行時間 ...45

圖 4-4. 變動資料量大小,WDTU 的加速比 ...45

圖 4-5. 改變支持度高低 ...46

圖 4-6. 改變支持度高低,WDTU 的加速比 ...47

圖 4-7. 變動資料量大小的 WDTU 演算法探勘時間 ...48

圖 4-8. 變動資料量大小的 WDTU 演算法之加速比 ...48

(7)

表目錄 表目錄 表目錄 表目錄

表 2-1. Log 資料庫...12

表 2-2. The item-oriented bitmap representation...13

表 2-3. The obtained up-to-date 1-patterns...13

表 2-4. Finding Timelist(ac)by the AND operation...13

表 2-5. The final up-to-date patterns...14

表 2-6. Tid 表格...17

表 2-7. 四種計算分配組合 ...18

表 3-1. 四種計算分配組合 ...25

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

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

表 3-4. 循序 Tid 加權值分配演算法...30

表 3-5. 循環 Tid 加權值分配演算法...31

表 3-6. 交易紀錄內容 ...32

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

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

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

表 3-10. 二階候選項目集合交易紀錄及次數 ...35

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

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

表 3-13. The final up-to-date patterns...37

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

表 4-2. 硬體環境與軟體規格 ...39

表 4-3. 不同支持度,探勘出的項目數量 ...41

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

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

(8)

第 第 第

第一章 一章 一章 一章 緒論 緒論 緒論 緒論

1.1 研究背景 研究背景研究背景研究背景

資訊科技在最近幾年來的快速成長,儲存數位資料空間的電腦硬體不斷擴 充,電腦硬體效能大幅度地提升,以及網際網路的普及化,讓資訊能迅速、便捷 地傳遞,並讓使用者輕鬆、便利儲存需要的資訊。也因此,電腦普及率以驚人地 速度在增加,加上環境保護的意識抬頭,以及大幅減少儲藏實體空間,讓原本儲 存資料的方式不再依賴過去以傳統紙本紀錄,逐漸轉為以數位資料的方式儲存,

也間接宣告數位資料時代已來臨。

由於資訊科技的進步,儲存大量的數位資料已經不是難事,所以儲存這些大 量數位資料的用途,除了能回朔或是比對外,主要就是對資料分析,希望藉由資 料分析發覺出有價值的資訊。其中最重要的就是資料庫技術的應用,透過資料庫 技術的儲存和搜尋,能夠有效地保存大量的數位資料並且可以隨意地搜尋,因為 資料庫擁有的可靠性和便利性功能,讓資料庫獲得企業間最佳選擇,企業間紛紛 在資料庫領域內投入巨額資本,為的就是獲得隱藏在數位資料裡能開拓出無限利 潤和商機。其實不只有企業間投入,資料庫的熱潮已經慢慢流向到各行各業,因 為隨著各行各業的資訊科技發達,小至店面單位的交易時間、交易筆數、進出貨 等資料,大至政府、銀行、教育、醫療等單位的時間日期、股票交易、稅率、經 濟、學籍、病歷等資料,全部都能以數位資料方式完整紀錄,並確實地儲存在電 腦硬體中。但是如此大量的數位資料要如何發展有效率資料庫應用。本論文便針 對資料庫應用其中之一技術的資料探勘進行探討。

資料探勘[1]能針對資料庫內的大量資料進行有效地挖掘,能將原本零散、

大量的資料進行精煉萃取,其應用是根據有意義的規則或是模式,以自動或半自 動方式,適時發現其對使用者有價值的資訊,使用者便能依據探勘出的相關資訊 來改善決策或是處理問題的參考依據。而資料探勘的應用範圍極廣,其中,本論 文探討的是能針對紀錄交易時間資料庫(Log Database)進行探勘稱為時序

(Temporal)資料探勘[19],跟原本探勘不同,改變原本探勘只能對通過支持度 或門檻值的項目進行探勘,時序探勘能從紀錄交易時間資料庫裡面的每一筆資料 都能清楚知道在何時賣出某商品,例如紀錄在某段時間賣出某商品的發票,根據 其紀錄交易時間資料庫的交易時間來探勘出對決策者有用的資訊,像是某時段的 熱門商品銷售量能幫助店家預測該在何時進行補貨或其他的作業程序,幫助整體 銷售量有效提高。因為大部份的探勘都針對資料項目的次數一定要大過設定的支 持度或門檻值才能算是挖掘出有價值的資訊,但其實越是近期的資料項目越有可 能幫助使用者改善現階段策略,其近期的資訊參考價值並不亞於大過設定支持度 的資訊參考價值,不過現有的時序資料探勘並沒有特別針對近期交易時間的資料

(9)

項目做探勘研究,所以該如何有效利用近期交易時間使其成為使用者所需求的資 訊便是重要的研究。

關聯式法則(Association Rules)[3][4]探勘可以從資料庫中探勘出項目與項 目間的關聯性,即使資料庫只有相關性的項目卻沒有按其順序排序,但依然能探 勘出關聯式法則。而時序資料探勘卻不同,時序資料所探勘的 Log 資料庫,雖 然一樣有相關性的項目,但必須依序每筆時序資料的交易時間遞增做排序,進而 探勘出具有順序以及相關性的探勘結果。

但是不管如何,就算跟時序資料有關的時序資料探勘,所探勘出的時序樣式 還是必須從紀錄時間的資料集合中找出其關聯性;所以已經有前人針對關聯性法 則探勘和時序資料探勘一起使用的研究[22],藉由關聯性法則和時序特徵進而組 合一種樣式<Association Rules, Temporal Feature>,表示在某段特定的時序中有 項目跟項目間的關聯性,而特定的時序可能包含一季、一星期、一段明確紀錄,

而在該段時序內,進行買賣交易項目、投資股票等具有關聯性動作,因此,該探 勘出的樣式表示關聯法則和時序探勘是可從資料庫中預期被推論出。

關聯式法則是資料探勘所常被應用的技術之一,關聯式法則普遍是用來針對 靜態資料庫進行處理,是一個能從大量資料中去找出資料彼此間特定關聯性的技 術。目前已經有許多應用都藉由關聯性法則去完成,例如部份消費者在購買某些 商品時,在此同時也會購買其他特定商品的機率,進而能分析出之後可能的消費 者行為,以便進行補貨或打折扣等情況,來增加業績及利潤。藉由關聯式法則所 探勘的資訊來輔助或改善決策,讓關聯式法則受到許多業界的重視,但也因為業 界的資料庫都是一日以數以千萬筆的資料的速度不斷累積,由於太過於龐大,可 能光是進行搜尋就會耗費許多時間,更別談要如何進行處理資料項目彼此間的關 聯性,面對如此龐大的資料庫,昔日的單機處理已經難以負荷,因此已有學者陸 續提出平行分散式處理的探勘技術[5-11],希望藉由多台處理器的支援減緩單機 負荷以及加速時間,藉由導入平行分散技術的運用,分工合作的方式讓多台處理 器能同時間處理分配到的工作,來加速進行求解,也因此平行分散技術讓關聯式 法則能在資料探勘裡受到肯定。不過平行分散的資料探勘技術,在處理過程遇到 不同的資料結構或切割方式的變動,或多或少會影響到整個過程的處理時間,或 是造成各處理器間負載不平衡的狀況,這些問題都會消耗掉平行分散技術的優 勢。為此,在平行分散的資料探勘演算法中,該如何針對處理器的數量有效地均 勻分配工作成為目前探討議題。

(10)

1.2 研究 研究研究目的研究目的目的 目的

The Up-to-date Patterns Mining 演算法[19]於 2008 年由 Hong 等學者提出,

以 Apriori 演算法為基礎,主要組合關聯法則和時序探勘的方式,從 Log 資料庫 使用關聯法則的項目間比對,並根據未通過的非高頻項目集合藉由改變資料量而 得出新的門檻值再次進行準確的判斷,以藉由這種判斷方式探勘出資料庫後端,

也就是近期所出現頻繁次數較多的資料項目,並將探勘出所有的近期內高頻項目 集合轉換為使用者能比較能了解的更新樣式(up-to-date pattern)方式的結果給 使用者當做新的參考價值,其更新樣式,便是表示在某近期的特定時序內具有關 聯式法則。然而,雖然能探勘出對使用者有價值的所有近期內高頻項目結果,但 是此架構卻是建立在單機上,所以當面臨大量可觀地資料量或是拉低支持度,在 產生關聯式法則時,必需進行龐大資料量的項目間比對,也因此將需要耗費更多 時間來進行比對和計算時間,大部份的電腦可能都無法單機負載那麼龐大資料量 的情況,需要改善成多台處理器架構來面對這問題,所以藉由平行分散式技術來 加以改善。

由於 The Up-to-date Patterns Mining 演算法是以 Apriori 演算法為基礎,所以 目前已經有許多由前人針對 Apriori 演算法所提出的平行分散技術[5-11],針對資 料量切割、處理器負載量、掃瞄完整資料庫次數等問題進行研究,不過資料量的 切割方面,卻還是難以均勻地分配到各處理器,所以各處理器還是有可能因為分 配不均造成部份處理器分配資料量較少而產生閒置時間,但其他處理器卻因處理 較大資料量而一直處於忙碌,造成處理大部份資料量其實還是一直集中在少許幾 台處理器狀況。

平行分散技術的原理同等於利用團隊分工合作的方式來達到加速完成工作 的目的,然而在團隊工作中,如果分配工作數量出問題將會造成團員間彼此的工 作不平均的不良情況,反而浪費了團隊的多人優勢,所以該如何正確地安排與平 均團員間的工作量便是成功團體的重點之一;處理器間的工作也是如此,若是工 作量不平均,將會使有些處理器閒置,但有些處理器卻一直處於使用率滿載的問 題,這樣的效率將會失去多台處理器的意義,所以該如何讓處理器間的工作量均 勻分配、負載平衡等問題便是平行演算技術主要考量的問題。

權重式平行化關聯式法則探勘演算法(A Weighted Load-Balancing Parallel Apriori Algorithm, WDPA 演算法)[2]於 2008 年由周嘉伶等學者提出一樣以 Apriori 演算法為基礎加以平行分散計算的演算法,包含四種計算分配組合方式,

具有改善各處理器常會因資料量分配不均勻的狀況,讓各處理器能較均勻地負載 資料量,具有減少各處理器的閒置時間已達到負載平衡的特性,也改善需要漫長 時間對資料庫反覆進行掃瞄的問題,而且只需要掃瞄完整資料庫次數一次即可。

(11)

本論文之目的,便是以 The Up-to-date Patterns Mining 演算法為基礎以及導 入 WDPA 演算法的平行分散技術,藉由 WDPA 演算法具有讓各處理器能較均勻 分配資料量、只需掃瞄一次完整資料庫特性的平行分散運算技術,提出將單機處 理的 The Up-to-date Patterns Mining 演算法改良為多台分散處理的加權值平行分 散式時序更新樣式資料探勘演算法(A Weighted Distributed Temporal Up-to-date Patterns Algorithm, WDTU 演算法),藉由平行分散運算技術,處理 The Up-to-date Patterns Mining 演算法單機無法有效率地面臨大筆資料量或拉低支持度的情況,

以期能做到快速且平均運算的功能,讓各處理器發揮最大效能,加速探勘出更新 樣式以及達到平衡各處理器負載之目的。

1.3 研究研究研究研究方法方法方法方法

為了達成所要求的目標,本論文之進行可分為以下幾個階段:

1. 第二章 文獻探討:先為關聯性法則以及相關的 Apriori 演算法解說,再針對 Apriori 演算法為基礎的 The Up-to-date Patterns Mining 演算法以及 WDPA 演 算法,進行更深入的探討與認識。

2. 第三章 研究設計:本論文所提出的 WDTU 演算法,是以 The Up-to-date Patterns Mining 演算法為基礎以及導入 WDPA 演算法的平行分散技術,藉由 WDPA 演算法所提出的四種計算分配組合方式改善各處理器執行效率的方 法。

3. 第四章 演算法實作:藉由中華大學資訊工程學系平行分散實驗室的叢書系 統(PC Cluster)作為實驗平台,搭配 MPI 作為平行運算系統,以 PYTHON 語言做為本論文提出演算法之開發工具,並已進行實驗與驗證其執行效率。

4. 第五章 實驗設計與結果分析:探討本論文所提出的 WDTU 演算法在工作負 載平均量對處理時間上是否能達到預期目標,以及提出未來可能改良方向。

(12)

第 第 第

第二章 二章 二章 二章 文獻探討 文獻探討 文獻探討 文獻探討

資料探勘技術是一種多用途的資訊軟體技術,此種技術可應用在各種不同領 域中,其目標都是期望在極大量、繁雜的交易資料庫中找出隱藏、未知的具有潛 在價值的探勘資訊,於是讓資料探勘技術廣受歡迎,引起許多學者提出相關研 究,依據不同的技術特性,將這些研究歸納出不同類別,主要可以分為:分類

(Classification)[20]、群集(Clustering)、決策樹(Decision tree)、關聯式法則

(Association rule)[3][4]、迴歸(Regression)、時間序列(Time sequence)[19],

其中以關聯式法則是最常被應用的研究,最具代表性的便是 Apriori 演算法,根 據關聯式法則探勘方式需要不斷的對資料庫進行反覆掃瞄找出項目與項目間的 關聯性,以提供具有參考價值的資訊,所以目前有許多以 Apriori 演算法為基礎 而衍生的演算法,本論文所引用的 The Up-to-date Patterns Mining 演算法便是其 中之一;但由於需要反覆掃瞄比對找出項目與項目間的關聯性,如果面臨的資料 庫過於龐大、雜亂,過多資料項目的比對與探索讓電腦不堪負荷,其處理時間冗 長又浪費電腦資源,這樣探勘結果失去原有資料探勘帶來的及時性與實用性。

因此近年來已有許多學者提出改善探勘過程中執行效率的不同資料結果,其 中利用平行分散技術來改善不良情況的問題,包含面對龐大資料量時、均勻分配 各處理器的資料量、減少對完整資料庫掃描次數、減少產生候選項目集合、減少 項目間的比對次數等。本論文所引用的 WDPA 演算法,便是衍生出面對大量資 料量時該如何均勻分配資料量到各處理器的平行分散技術。

以下將針對關聯式法則與相關的 Apriori 演算法,和 Apriori 演算法為基礎的 The Up-to-date Patterns Mining 演算法以及 WDPA 演算法作介紹。

2.1 關聯式法則探勘關聯式法則探勘關聯式法則探勘關聯式法則探勘

關聯性法則的起始,原始於 Agrawal[3][4]等學者於 1993 年提出關聯性法則 的模型,用來在零亂中的資料裡,呈現特定項目與項目間同時發生的關聯性。在 商業上便常用分析顧客購買行為的應用,例如:消費者在購買 X 商品時也會同 時購買 Y 商品,這便是一種關聯性法則。而真正有價值的是能藉由關聯式法則 探勘出未知卻存在消費者的行為中所隱含訊息,能讓業者掌握在特定規則性會令 消費者感到興趣的資訊,來藉以改善銷售策略以提升買氣的參考依據。而要如何 找出項目與項目間之關聯,便必須藉由資料庫中的資料進行一連串地組合、計 算,直到最後產生出關聯性法則。

關聯性法則的模型[3][4],假設有一個用來儲存資料項目的資料庫(D),在 D 內儲存著從過去所的各筆交易紀錄,而每筆交易紀錄以 Tid 做為辨識不同交易 紀錄,每一筆交易紀錄中包含許多的資料項目 Item1,Item2,Item3,…,ItemN,I

(13)

是所有項目的集合,所有的 Item 都會包含於 I 中,而由個別項目組成的項目集 合即稱為 itemset。資料探勘在開始會設定一個門檻值作為項目是否有關聯性判 斷標準,稱為支持度(support),主要是為了分辨項目與項目之間的關聯性是否 夠頻繁,當累積的次數夠多,才能在眾多的項目集合 I 裡找出該項目集可能具有 獨特規則,所以倘若該項目集符合門檻值的設定,便稱為高頻項目集合(frequent itemsets)。

而每一個關聯性法則皆存在一個支持度和信賴度(Confidence),舉例來說,

假設 A 與 B 是項目集合 I 裡的商品項目,並且都已經紀錄在交易紀錄 T 中,如 果交易紀錄 T 在資料庫 D 的次數頻率高於支持度,那麼就會判斷 AB 為高頻項 目集,發現 A 與 B 具有關聯性的可能,便以 Support(A∪B)表示。而當高頻 項目集合產生後,仍需要透過信賴度來檢驗,才能證明該高頻項目的可信程度,

也就是說,當 A 出現時,B 也會一起出現的條件機率,這裡以 Support(A∪B)

/ Support(A)表示,當高頻項目必須都要符合此兩項門檻後,才可稱為有意義 的關聯性法則。目前在關聯式法則的架構主要分為兩類:

(1)候選項目產生與測試方法(Candidate generate-and-test approach):以 Apriori 演算法為例,在產生可能的候選項目集後,為了準確找出所有高頻項目,必須將 每個候選項目集合跟資料庫進行掃描與比對,而且還要判斷項目集合次數是否符 合門檻值,如此一直反覆直到產生所有高頻項目集合為止。

(2)樣式生成方式(Patten growth approach):以 FP-Growth 演算法[21]為例,

藉由使用額外的資料結構儲存所有高頻一階項目集合以及次數,所以探勘過程裡 便不需要對完整資料庫再進行多餘掃描,只需要對此資料結構反覆地進行探勘即 可,如此便不需要配置額外空間去儲存所有可能的候選項目集合。

2.2 Apriori 演算法演算法演算法演算法

1994 年 R. Agrawal 與 R. Srikant 學者提出 Apriori 演算法[3],是關聯式法則 探勘中最具代表性推導方法的演算法,藉由逐層搜尋方式找出所有頻繁的項目 集。Apriori 演算法的特性是假設當一個項目集合不是高頻項目集合時,其所有 包含的子項目集合都一定不是高頻項目集合。探勘方式是藉由 r-1 階產生的高頻 項目集合以兩兩組合方式繼續產生 r 階的候選項目集合,再以對資料庫掃描統計 項目集合出現的次數,來找出符合支持度的項目集合,如此反覆處理,直到找不 出任何高頻項目集合為止。圖 2-1 為 Apriori 演算法的流程架構圖。

Apriori 演算法的探勘步驟:

步驟 1:先設定門檻值。一次資料庫掃描,探勘出符合門檻值的一階高頻項目集 合。高頻項目集合的所有子集合也必是高頻項目集合,所以項目與項目 兩兩組合方式產生二階的候選項目集合。

(14)

步驟 2:再次資料庫掃描,驗證下一階高頻項目集合,判斷下一階的候選項目集 合次數是否符合門檻值成為高頻項目集合。再以驗證後的高頻項目集 合,產生下一階層的候選項目集合。

步驟 3:反覆搜尋資料庫,判斷步驟 2 所產生的候選項目集合是否符合門檻值,

直到不再產生新的候選項目集合。藉由探勘所得到的高頻項目集合,推 導關聯法則並分析其有效性。

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

但是,不斷反覆搜尋的方式,造成 Apriori 演算法須耗費很長的計算時間在 項目組合上。所幸,Apriori 演算法使用的資料結構易於平行處理,所以陸續有 許多學者藉由 Apriori 為基礎延伸出相關的平行分散演算法,以下將介紹四種平 行分散策略的演算法:

(1)1996 年 R. Agrawal 等學者提出 CD(Count Distribution)[12]:CD(Count Distribution)將資料庫等分切割給處理器計算高頻項目集合,每台處理器都會由 r-1 階高頻項目集合產生 r 階的候選項目集合,再掃描分配到的資料庫計算項目 集合次數。優點在於處理器只需計算分配到的資料庫,可以降低訊息交換的成本。

(2)1996 年 R. Agrawal 等學者提出 DD(Data Distribution)[12]:DD(Data Distribution)只需計算 M/P 的候選項目集合(M 為候選項目集合數,P 為處理 器數量),可改善 CD(Count Distribution)中記憶體浪費的情況。缺點是當處理

產生 r 階高頻項目

項目結合

產生 r+1 候選項目集合

推導關聯法則 資

料 庫

No 統計項目集合次數

大於或等於支持度 No Yes

Yes

產生 r 階候選項目集合

項目刪除

(15)

器增加時,也會耗費較多的時間在項目集合的傳輸。

(3)1996 年 Cheung 等學者提出 FDM(Fast Distributed Mining of association rules)

[13]:藉由 Local Prune 及 Global Prune 的技術,減少候選項目集合的產生。

(4)2002 年 Cheung 等學者提出改良 FDM 的演算法 FPM(Fast Parallel Mining Algorithm)[14]:藉由減少次數的訊息交換以增加探勘效率。

目前已有許多學者提出以 Apriori 為基礎平行分散的演算法[2][15][16][17],

但大多數仍有平行分散處理會發生的問題,如需多次資料庫掃描、各處理器負載 工作量不平衡等缺點。在 2.4 將以 WDPA 演算法[2]為例來探討說明。

2.3 The Up-to-date Patterns Mining 演算法演算法演算法演算法

The Up-to-date Patterns Mining 演算法[19]於 2008 年由 Tzung-Pei Hong 等學 者提出,主要組合關聯法則和時序探勘的方式探勘時序資料,產生近期內常出現 的高頻項目,其探勘結果是以更新樣式呈現,表示在近期內或其特定時序內的項 目間的關聯式法則。

時序資料探勘,有關時序樣式和規則可從時序資料中發現分析,關聯法則和 特定時序從資料庫中預期推論,時序樣式表示在特定時序內的項目間的關聯式法 則[22]。這特定時序內表示廣泛地應用在指定某段時序,其指定的紀錄時期,可 能如一天、一個月、或一年,在這指定的紀錄時期,探勘出其中項目間的關聯法 則,便是從紀錄交易時間(Log)資料庫中發現。

時序態資料的特性和一般資料有很大的不同,在 Log 資料庫中,需考量時 間發生前後關係,再推論時空關係結果,才能產生出具有時間價值的資訊;時間 單位短至毫秒,長至數年甚至世紀,其時間比例的長短影響不容忽視,所以進行 資料分析前必須先瞭解資料的時間性質,設定合理時間軸規格才能得到較合理的 結果,像是藉由使用者自設的其最小支持門檻,探勘更多有用及潛在價值的項目 集合。由時序探勘與關聯法則產生的時序樣式,其輔助使用者方向有重要的、複 雜的、先前無法知道和潛在的有用知識,能在管理方向提供更好參考價值的決策。

The Up-to-date Patterns Mining 演算法,包含除了具有通過高於支持度的高頻 項目,並且以探勘最新資料為主的高頻項目,其探勘結果的更新樣式,表示在特 定時序內所具有其關聯性法則,如表 2-5;因為 Log 資料庫是以 Tid 的流水號編 排,當 Tid 為 1 時,便表示是最前端也是最早期的資料,反之,Tid 越後面時,

表示該資料越靠近後端,也表示是最近剛更新的最新資料,如圖 2-2,所以 The Up-to-date Patterns Mining 演算法特別針對 Log 的後端資料庫,也就是 Log 資料 庫的最近剛紀錄的最新資料,藉由探勘這些最新資料量可以探勘出在近期內所有 的高頻項目集合,藉由這些近期內所有的高頻項目集合可能帶來近期內熱賣的潛 在銷售能力和實際利益。

(16)

圖 2-2. 探勘演算法的計畫

The Up-to-date Patterns Mining 演算法所使用能從 Log 資料庫中探勘以最新 資料為主的高頻項目的特性,取決於使用者所設定的支持度改變非高頻項目集合 中的門檻值,藉由調整總資料筆數與非高頻項目次數來進行判斷,以表 2-1 的 Log 資料庫為例,一般探勘的門檻值判斷方式,支持度固定為 50%,所以在只有 1~10 筆的 10 筆資料量的 Log 資料庫中可計算出 5 次為門檻值,表示一階候選項 目需要在 10 筆資料中出現 5 次以上才可具有一階高頻項目探勘價值,所以只有 項目 a 和 f 可以被探勘,其他項目便視為非高頻項目。但 The Up-to-date Patterns Mining 演算法卻從非高頻項目集合提出不同判斷方式了,不再依賴 1~10 筆的 10 筆資料量以及 5 的門檻值只作 1 次判斷,而是藉由該項目從何時出現時為開始定 為調整資料量的判斷方式,以一階候選項目 d 為例,最初紀錄項目 d 的時候是在 資料庫第 1 筆、第 2 筆、第 3 筆與第 9 筆,總共 4 筆,所以隨著資料量也同時改 變支持度所計算出的門檻值,如圖 2-3 所示;原本項目 d 是從第 1 筆到第 10 筆,

但因為使用調整資料量方式所以變成,改成以第 1~10 筆的 10 筆資料量、第 2~10 筆的 9 筆資料量、第 3~10 筆的 8 筆資料量、第 9~10 筆的 2 筆資料量等 4 種調整 資料量方式進行判斷,而支持度一樣為 50%;因此調整資料量有 4 種,先以第 1~10 筆的 10 筆資料量為開始,這時項目 d 項目次數為 4 次,故以高於或等於 10×50%,計算出 5 為門檻值,但 5<4 一樣低於門檻值,所以繼續計算;再由第 2~10 筆的 9 筆的資料量,d 項目次數為 3 次,是以高於或等於 9×50%,計算出 4.5 為門檻值,但 4.5<3 還是低於門檻值;再繼續第 3~10 筆的 8 筆資料量,d 項目次 數為 2,以高於或等於 8×50%,計算出 4 為門檻值,但 4<2 還是低於標準;最後 是第 9~10 筆的 2 筆資料量,d 項目次數已經調整為 1,一樣以高於或等於 2×50%,

計算出 1 為門檻值,剛好 1=1 等於其門檻值,如此一來,便可算出項目 d 在第 9 筆時,變成具有近期內的一階高頻項目而進行探勘;其他非高頻項目也是一樣,

藉由調整總資料筆數以及非高頻項目次數找出是否能進入一階高頻項目,而因為 藉由這方法,所以大部份非高頻項目集合因為靠近資料庫後端而進入高頻項目,

故能從最新資料裡探勘出具有近期高頻價值的項目,但如果藉由這判斷方法還是 無法進入高頻項目便確定視為非高頻項目。

Log Database

Itemsets A Itemsets B Itemsets C

(17)

圖 2-3. 調整資料量

The Up-to-date Patterns Mining 演算法另一個特性是減少從 r-1 階高頻項目產 生 r 階後選項目時的項目間比對,The Up-to-date Patterns Mining 演算法因為以 Apriori 演算法的關聯式探勘為基礎,為了減少掃描次數,所以在第一次掃瞄資 料庫後便會建立以 0 和 1 表示的位元圖(bitmap),如表 2-2,產生每階項目都需 要位元圖來輔助項目間的比對,為了減少項目間的比對,在探勘出的一階高頻項 目集合中,如步驟 3 和步驟 4 進行公式轉換裡放入了生命週期(Lifetime),其更 新樣式表示<First( I ), n>,如表 2-3,樣式除了能讓使用者方便了解時序裡的關 聯法則外,也具有彈性化計算,在項目比對裡藉由(n-(T(I)/Min_Sup)+

1, n)的樣式轉換的 First( I )可以輔助減少比對的用途,如表 2-4,在一階高頻項 目 a 與 c 在產生二階候選項目,藉由項目 c 的 First( I ),讓原本可能要從位元 1~10 比對改變從位元 5~10 比對即可。

The Up-to-date Patterns Mining 演算法的步驟:

D:Log 資料庫。

n:Log 資料庫內的資料總筆數。

I:一筆項目筆數或是一筆項目集合筆數。

T(I):出現在資料庫 D 裡的 I 項目集合筆數。

Min_Sup:產生高頻項目集合的門檻值。

r:用來表示現在項目集合已處理到第幾階參數。

Sr:在 Log 資料庫 D 裡的 r 階未通過但可能靠計算通過的 r 階項目集合,其該項 目的生命週期較短(short-lifetime),但能藉由計算該項目集合的生命週期來

(18)

判斷能否能再為高頻的可能。

Lr:在 Log 資料庫 D 裡的 r 階高頻項目集合。

Cr:在 Log 資料庫 D 裡的 r 階候選項目集合。

Timelist(I):出現在項目集合裡 I 筆筆數交易識別碼(Transaction ID, Tid)的集 合。

First(I):在時間列表 Timelist(I)出現的第一筆交易識別碼(Transaction ID, Tid)。 Lifetime(I):時間週期,其樣式表示<First( I ), n>,代表高頻項目的時間週期。

如果已通過支持度的項目 I 的時間週期便以<1, n>表示,如果未 通過支持度但能從步驟 4 的計算方式通過的項目 I 的時間週期便以

<First( I ), n>表示。

輸入:紀錄所有每筆包含 Tid、交易項目、交易時間的 Log 資料庫 D。

設定最小支持度門檻 Min_Sup。

輸出:輸出所有符合的更新樣式。

步驟 1:將 Log 資料庫 D 內的資料轉換成以項目和 Tid 所組合而成的位元圖,其 Tid 也表示交易時間(Transaction Time)的代號,再將 Log 資料庫 D 中 每筆資料依序依照 Tid 以 1 或 0 放入位元圖裡,如果存在便以 1 表示,

反之,就以 0 表示,如表 2-2。

步驟 2:藉由位元圖表示出所有項目 I 的 Tid。而每項項目 I 的所列的 Tid 便以此 稱為 Timelist(I),項目 I 在 Timelist(I)的 Tid 總合並以 T(I)稱呼。

步驟 3:確認每項項目 I 的 T(I)是否大於或等於 n×最小支持度,如果通過便成 為一階高頻項目集合(L1)裡的其中之一項目,並以({I}, <1, n>)

的樣式儲存,其樣式表示({Item} , < Lifetime >),如表 2-3 的({ a } , < 1 , 10>)。反之,便將該項項目 I 放入一階未通過但可能藉由計算通過 的項目集合(S1)。

步驟 4:在這 S1內的每項項目 I 是否能成為一階高頻項目集合(L1)裡的其中之 一項目,必須依下子步驟處理:

子步驟 4-1:在該項目 I 的 Timelist(I)裡,找出第一個 Tid 並設為該項目 I 的 First(I)。

子步驟 4-2:該項目 I 藉由 Lifetime 的<First(I), n>,計算是否為高頻項目,

其公式:

( ) ( )

Sup _ Min

I 1 T

I First

n− + ≤

如果該項目 I 通過,以({I}, <n-(T(I)/Min_Sup)+1, n>)

的樣式,放入一階高頻項目集合(L1)內,如表 2-1 的({ c } , < 5 , 10>);如果沒通過,那再選該項目 I 的第二個 Tid 為 First(I), 再進行計算,一直計算到該項目 I 的 Timelist(I)內的最後一個

(19)

Tid,如果都沒通過,便只能成為非高頻項目集合之一。如此反 覆步驟 4-1 到步驟 4-2,直到將 S1內的所有項目 I 處理完畢。

步驟 5:設定 r=1,r 表示處理的階層,表示處理第一階。

步驟 6:這步驟類似 Apriori 演算法,藉由第 r 階高頻項目集合組合出 r+1 階候選 項集合,也就是從 Lr中產生的候選集合 Cr+1

步驟 7:每項可能產生出的 Cr+1的 r+1 階項目集合 I,是使用 AND 邏輯運算在位 元圖裡組合可能組合出 r+1 階項目集合的 r 階項目集合 I,並從 r 階項目 集合 I 的 Lifetime 找出適合的 First(I)遮蓋不需要 AND 邏輯運算部份,

以組合出可能的 r+1 階項目集合 I 的 Timelist(I),如表 2-4。

步驟 8:找出所有(Lr+1)高頻項目的 r+1 樣式,其方式如步驟 3 和步驟 4。

步驟 9:當 Lr+1為空值,便處理下一步驟;否則,設定 r=r+1 以及重複步驟 6 到步驟 8。

步驟 10:為了減少高頻樣式和節省記憶體空間,便將已告一段落的高頻項目集 合去取代所有高頻樣式,以減少相同時間週期(lifetime)高頻集合。

最後,再把時間週期的交易識別碼(Tid)轉換為原本的真實交易時間 並輸出更新樣式的結果給使用者。

實例(An Example):

(1) 其實例的 Log 資料庫,如表 2-1,Log 資料庫內包含 10 次紀錄交易時間的 交易以及 6 個項目,項目從 a 至 f,將實際應用 The Up-to-date Patterns Mining 演算法。

表 2-1. Log 資料庫 Log Database

Transaction ID Transaction Time Items 1 2008/8/11 9:00 a ,d ,f 2 2008/8/11 9:12 a ,d ,f 3 2008/8/11 9:35 d ,f 4 2008/8/11 10:05 b ,f 5 2008/8/11 10:48 a ,b ,f 6 2008/8/11 11:06 f 7 2008/8/11 12:10 c 8 2008/8/12 10:56 a ,b ,c 9 2008/8/12 11:07 c ,d ,e 10 2008/8/12 14:32 a ,f

(2) 設定最小支持度門檻為 50%,首先先將 Log 資料庫轉換為代表項目和 Tid 所組合而成的位元圖,其位元圖表示,如表 2-2:

(20)

表 2-2. The item-oriented bitmap representation Tid

Items

1 2 3 4 5 6 7 8 9 10 a 1 1 0 0 1 0 0 1 0 1 b 0 0 0 1 1 0 0 1 0 0 c 0 0 0 0 0 0 1 1 1 0 d 1 1 1 0 0 0 0 0 1 0 e 0 0 0 0 0 0 0 0 1 0 f 1 1 1 1 1 1 0 0 0 1

(3) 經由步驟 2 到步驟 4 的處理,將符合通過的第一階高頻項目,轉換為更新 樣式。其結果在表 2-3:

表 2-3. The obtained up-to-date 1-patterns

( {Item} , < Lifetime > )

( { a } , < 1 , 10 > )

( { c } , < 5 , 10 > )

( { d } , < 9 , 10 > )

( { e } , < 9 , 10 > )

( { f } , < 1 , 10 > )

(4) 應用其第一階樣式(1-patterns)繼續找出第二階候選組合 C2,而每筆第 二階項目集合(2-itemset I)是從位元圖藉由 AND 邏輯運算發現 C2。從 其中一筆第二階候選項目集合{a , c}從中組合,根據其{a , c}的 Lifetime 是<5,10>,便從第 5 位元至第 10 位元進行 AND 邏輯運算組合。這過 程為表 2-4:

表 2-4. Finding Timelist(ac)by the AND operation Tid

Items

1 2 3 4 5 6 7 8 9 10 a 1 1 0 0 1 0 0 1 0 1 c 0 0 0 0 0 0 1 1 1 0

ac 0 0 0 1 0 0

(5) 一直反覆處理,直到確定所有更新樣式無法再繼續到下一階,所有更新樣 式便被探勘出來,最後依據所有交易 IDS的 Lifetime 在 Log 資料庫的交易 時間,進行轉回為實際交易時間上,完成所有更新樣式,如表 2-5:

(21)

表 2-5. The final up-to-date patterns

( { Itemset } , < Lifetime > )

( { a } , < 2008/8/11 9:00 , 2008/8/12 14:32 > ) ( { c } , < 2008/8/11 10:48 , 2008/8/12 14:32 > ) ( { f } , < 2008/8/11 9:00 , 2008/8/12 14:32 > )

( { af } , < 2008/8/12 11:07 , 2008/8/12 14:32 > )

( { cde } , < 2008/8/12 11:07 , 2008/8/12 14:32 > )

表 2-5 就是表示所探勘出的結果轉為更新樣式,每一個項目集合都表示著在 什麼時間開始到什麼時間為止的這段期間,在該段期間是具有該時序內的高頻價 值以及項目間的關聯法則,藉由這些更新樣式的結果讓使用者多一種新的參考價 值。

The Up-to-date Patterns Mining 演算法能從非高頻項目藉由調整資料量而能 再度判斷是否為高頻項目集合,因此資料庫後端大部份非高頻項目都可能會進入 高頻項目集合,所以探勘資料量會比其他探勘演算法的資料量來得多,但因為 The Up-to-date Patterns Mining 演算法並沒有針對面臨大量資料時以及拉低支持 度的處理,因此本論文提出將原為單機處理架構的 The Up-to-date Patterns Mining 演算法改變為多台處理器架構的 WDTU 演算法,WDTU 演算法導入 WDPA 演算 法四種計算分配組合的平行分散技術,藉由有效減少資料庫掃描次數,讓各處理 器能達到負載平衡,節省處理器的閒置時間的特性,以加快整體探勘時間。

2.4 權重式平行化關聯式法則探勘 權重式平行化關聯式法則探勘權重式平行化關聯式法則探勘演算法權重式平行化關聯式法則探勘演算法演算法演算法

權重式平行化關聯式法則探勘演算法(A Weighted Load-Balancing Parallel Apriori Algorithm, WDPA 演算法)[2]於 2008 年由周嘉伶等學者提出以 Apriori 演算法為基礎加以平行分散計算方式,具有減少資料庫掃瞄次數、節省閒置時間 讓各處理器能達到負載平衡。

WDPA 演算法中的資料庫其每筆交易資料都有一個識別編碼,以流水編碼從 0 開始遞增,稱為 Tid;應用高頻項目集合的所有子集合也同是高頻項目的特性,

因此 r 階候選項目集合是由 r-1 階高頻項目集合產生,即 freqr-1={I0,I1,I2,....,In-1},

因此本節的{I0,I1,I2,....,In-1}都指 r-1 階高頻項目集合。

WDPA 演算法特性如下:

(1)掃瞄資料庫次數只需一次

掃描資料庫只需要一次,在一階高頻項目探勘時便會紀錄所有一階項目集合 及 Tid,可明確快速知道項目集合出現的交易紀錄編號及次數。當 Tid 的個數符

(22)

合最低門檻值時,此項目集合就是高頻項目集合。接著的探勘是以 r-1 階高頻項 目集合的 Tid 表格做為 r 階高頻項目集合探勘之依據。

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

r 階候選項目集合的產生是以 r-1 階高頻項目集合交互組合,將 r-1 階的高頻 項目集合以 Tid 長度作遞減排序後組合 r 階候選項目集合,每個項目集合組合視 為一個區塊(Lattice),如圖 2-4,為避免重覆探勘項目集合,以下方三角矩陣做 探勘,計算項目集合需組合的總次數及平均數:

公式(2.1)為每個項目集合需組合的區塊數:

( )I

[

(len(freq ) ) i

]

Lattice

Cnt_ i = r1 −1 − ………(2.1)

公式(2.2)為 r 階候選項目集合需組合的總次數:

( ) ( )

=

= 1

0

1 _

_ len freqr

i Cnt Lattice Ii

Lattice

TotalCnt ………(2.2)

CntLattice( I0 ) ↓

I0

I1

Ilen(freqr1)1

Lattice

I0 I1 …… I

1 ) (freqr1 len

圖 2-4. 組合次數計算

因為項目集合的 Tid 長度可能會不整齊,所以將項目集合出現頻率及 Tid 需 比較次數的因素列入公式內討論,可精準對項目做分配,如圖 2-5。

(23)

公式(2.3)為計算項目 Ii加權後的 Tid 值

( )Ii lenj (ifreqr ) len

(

IiTID

)

len

(

IjTID

)

WeightTid

Value =

= + ×

1 1

_ 1 ………(2.3)

公式(2.4)為 r 階候選項目集合的 Tid 加權總值

( ) ( )

( )

( )

=

= + ×

= 1

0

1 1

1 1

_ r r

TID TID

freq len i

freq len

i

j lenIi lenIj

WeightTid

TotalValue …(2.4)

ValueWeight Tid( I0 ) ↓

Ien(I0 Tid)I0

Ien(I1 Tid)I1

: :

( )

(

Ilen freqr Tid

)

len 1

1

Ilen(freqr1)1

I0 I1 … I

1 ) (freqr1 len

Ien(I0 Tid) Ien(I1 Tid) Ien(I

1 ) (freqr1

len TID

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

(3)循序分配與循環分配

為了能節省閒置時間使處理器達到負載平衡,WDPA 演算法使用兩種不同的 分配法,循序分配與循環分配,其作用是能節省閒置時間讓各處理器達到負載平 衡,其兩種分配方式如下:

(3-1)循序分配(Block partition):將項目集合先分配給一台處理器,直到所分 配的項目集合數已達平均值時,才會分配給 下一台處理器,如圖 2-6。

(3-2)循環分配(Cyclic partition):以輪流方式將項目集合分配給各處理器,

由循環分配方式會使處理器所分配到的資 料量近似相同,較易讓處理器達到負載平 衡,如圖 2-7。

(24)

圖 2-6. 循序分配 圖 2-7. 循環分配

因此 WDPA 演算法主要是將兩種不同分配法以及兩種不同計算方式的複合 式方式組合呈現,所以可分成四種不同計算分配組合。以下便以四種計算分配組 合的例子來說明:

3 台處理器:P0、P1、P2。支持度數量:2。符合支持度的項目集合 Tid 表格如下,

如表 2-6:

表 2-6. 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

兩種項目集合的計算方式:

(3-3)區塊數(Lattice)計算:依照項目集合需組合次數做分配,從第一個項 目 A 的組合次數為 5 次開始,依序類推得出接 下去的項目組合次數以及總數,而因為處理器 為 3 台所以區塊數平均值為 5,如圖 2-8。

(3-4)Tid 長度加權值(WeightTid)計算:將項目集合於資料庫中出現次數列 入考量,以 A 為例在加權後的值為 80,之後的項目一樣依序進行加權 計算,而 Tid 加權平均值約為 60,

如圖 2-9。

(25)

圖 2-8. 區塊數計算 圖 2-9. Tid 長度加權值計算 兩種分配與兩種計算所組合而成的四種計算分配組合,藉由例子所產生的四 種計算分配結果,如表 2-7。

表 2-7. 四種計算分配組合

分配組合 分配結果

區塊數計算 + 循序分配

P0:{ A } = 5(≧ 5)

P1:{ B,C } = 4 + 3 = 7 (≧ 5)

P2:{ D,E } = 2 + 1 = 3

區塊數計算 + 循環分配

P0:{ A } = 5(≧ 5)

P1:{ B,D } = 4 + 2 = 6 (≧ 5)

P2:{ C,E } = 3 + 1 = 4

Tid 長度加權值計算 + 循序分配

P0:{ A } = 80 (≧ 60)

P1:{ B,C } = 48 + 32 = 80 (≧ 60)

P2:{ D,E } = 15 + 6 = 21

Tid 長度加權值計算 + 循環分配

P0:{ A } = 80 (≧ 60)

P1:{ B,D } = 48 + 15 = 63 (≧ 60)

P2:{ C,E } = 32 + 6 = 38

WDPA 演算法在第一次掃瞄資料庫後建立交易紀錄的 Tid 表格,藉由 Tid 表 格紀錄項目集合出現的編號,所以只需要比對及驗證便可快速得到項目集合次 數。再來藉由兩種分配與兩種計算所組合而成的四種計算分配組合做為平行分散 的處理,將所有通過支持度的高頻項目集合進行儲存,並紀錄項目集合名稱和交 易紀錄的編號,以方便下一階項目做比對驗證。圖 2-10 為 WDPA 演算法流程圖。

(26)

圖 2-10. WDPA 演算法流程圖

WDPA 演算法的步驟:

輸入:交易資料庫(D)={T0, T1, ..., Tn-1},每筆交易 Ti⊆ I, I={i0, i1,..., im-1}。

最小支持度 s。

p 為處理器數量(p0為 master processor(MP),其他處理器 p1,p2,....pp-1則 稱為 salve processors(SPS))。

輸出:所有高頻項目集合。

設定支持度 資料庫

Cyclic_Lattice Block_WeightTid Cyclic _WeightTid Block_Lattice

產生 r 階候選項目集合

四種項目計算切割法 產生關聯法則 No

Yes 建立 Tid 表格

r=1,產生 r 階候選項目集合

>=支持度

產生 r 階候選項目集合 r=r+1

(27)

步驟 1:每一個處理器讀取資料庫 D。

步驟 2:每一個處理器掃瞄 D 和創造交易 Tid 表格。

步驟 3:每一個處理器計算候選 r 階項目集合次數,當次數高於支持度 s,便成 為 r 階高頻項目集合。

步驟 4:在分配到 SPS前,MP 將公平地分割 r 階高頻放入 p,分割成已選定的支 離破碎項目集合到各 pi,分割後的項目集合(Itemseti)表示從 MP 裡已 分配到 SPS,其高頻樣式的分割方法為以下四種方法:

(1)區塊數計算 + 循序分配(Block_Lattice,BL)

(2)區塊數計算 + 循環分配(Cyclic_Lattice,CL)

(3)Tid 長度加權值計算 + 循序分配(Block_WeightTid,BWT)

(4)Tid 長度加權值計算 + 循環分配(Cyclic_ WeightTid,CWT)

步驟 5:每一個處理器接收所分配到的項目集合和組合成 r+1 階候選項目集合。

步驟 6:每一個處理器計算候選項目集合在 Tid 表格內的次數。

步驟 7:當項目集合的次數高於支持度 s 時,便把該項目集合成為 r+1 階的項目 集合,並且儲存該項目集合的 Tid 在 r+1 階的 Tid 內。

步驟 8:SPS傳回高頻項目集合到 MP。

步驟 9:MP 接收 SPS的項目集合,並且一直重覆執行步驟 4 到步驟 9 直到無法 產生任何高頻項目為止。

(28)

第 第 第

第三 三 三 三章 章 章 章 加權值平行分散式時序更新 加權值平行分散式時序更新 加權值平行分散式時序更新 加權值平行分散式時序更新樣式資料探勘 樣式資料探勘 樣式資料探勘 樣式資料探勘 演算法

演算法 演算法 演算法

3.1 研究設計概念研究設計概念研究設計概念 研究設計概念

本論文主要針對關聯法則如何有效率地將產生結果進行研究,因為關聯法則 講求兩兩項目間組合的比對,所以每當遇到探勘資料量倍增的情況,單機進行處 理龐大資料量的探勘比對項目組合就會越顯得吃力。本論文所引用的單機處理架 構的 The Up-to-date Patterns Mining 演算法[19],其特性是能從 Log 資料庫中探勘 出具有價值的近期高頻項目集合結果,但因為該演算法混合關聯法則和時序探 勘,而且能將非高頻項目集合藉由調整資料量再判斷是否能進入高頻項目集合,

所以大多資料庫後端非高頻項目集合的資料量將可能會進入高頻項目集合,便會 產生更多的資料量要項目比對,當面臨此情況發生時,為了解決單機已經無法負 載龐大比對項目組合的資料量,必須藉由平行分散技術來加以改善此情況發生,

也因此許多學者提出應用在關聯法則的不同平行分散技術,但就目前所提出的平 行分散技術在探勘過程中卻要多次掃描完整資料庫或是分配資料量極不均勻造 成各處理器負載不平衡等問題,間接影響到整體探勘時間。因此本論文另外又引 用一樣以關聯法則為代表的 Apriori 演算法為基礎進行平行分散技術的 WDPA 演 算法[2],WDPA 演算法具有四種計算分配組合平行分散技術,藉由 WDPA 演算 法的平行分散技術,在第一次對資料庫進行掃描後便會儲存相關交易紀錄的 Tid 表格,藉由 Tid 表格在之後探勘過程裡便不需要一直重覆地對完整資料庫進行掃 描,只需要對所紀錄的資訊進行探勘即可;並且使用計算分配組合機制,能以較 均勻地分配各處理器所負載的資料量,使處理器達到負載平衡,減少處理器的閒 置時間,有效增加探勘效率。

所以本論文導入 WDPA 演算法四種計算分配組合的平行分散技術,提出將 原為單機處理架構的 The Up-to-date Patterns Mining 演算法改變為多台處理器架 構的加權值平行分散式時序更新樣式資料探勘演算法(A Weighted Distributed Temporal Up-to-date Patterns Algorithm, WDTU 演算法),藉由有效減少資料庫掃 描次數,以及讓各處理器能達到負載平衡等特性,有效率地探勘出更新樣式,從 中發現特定時序內的項目間關聯法則。

WDTU 演算法中負載的 Log 資料庫的每筆交易資料都有一個識別編號,並 以流水編碼方式逐漸累積,稱為 Tid;以及紀錄各項交易時間的 Transaction Time 和各項交易項目中的 Item。應用關聯法則中高頻項目集合所有子集合是高頻的特 性,藉此由 r-1 階高頻項目集合產生 r 候選項目集合。

(29)

3.2 研究架構與特性研究架構與特性研究架構與特性研究架構與特性

本論文所提出 WDTU 演算法具有能夠有效地減少對完整資料庫掃瞄次數,

並讓以較均勻計算方式均分各處理器負載工作量,以探勘出所有對使用者有價值 的更新樣式,特性說明如下:

WDTU 演算法是融合關聯法則和時序探勘以及平行分散技術的演算法,其 特性的所探勘出的更新樣式為結果,能從更新樣式了解到特定時序內所產生的項 目關聯法則,藉由使用者設定支持度,根據非高頻項目出現在資料庫的 Tid 為開 始,而非原本 Tid 從 1 開始的資料總數,是調整原本資料總數×支持度,而以(總 資料數-出現的 Tid 資料筆數)×支持度,稱為新的門檻值,才能進入高頻項目的 判斷標準,如圖 3-1,原本二階非高頻項目 a,f 因為藉由 4 次調整資料量而改變 判斷標準,最後在第 4 次的調整資料量以及項目次數能通過門檻值而又再度回到 第二階高頻項目;所以特性在 Log 資料庫中越後端的資料量,也就是越新的資 料量越有可能通過門檻值,改變非高頻項目集合的門檻值判斷方法以求探勘更多 有價值的近期高頻項目集合結果。

而且 WDTU 演算法在掃瞄完整 Log 資料庫只需要一次,便會建立一個紀錄 一階項目集合以及 Tid 表格,而非 0 與 1 所組合的位元圖,原因除了比位元圖還 要節省儲存空間外,藉由 Tid 表格可以快速及確定知道項目集合出現的 Tid 以及 次數,如表 3-8;在從 r-1 階高頻項目產生 r 階候選項目時的項目與項目間比對,

會使用 Lifetime 的樣式<First( I ), n>,樣式除了能了解特定時序內的項目間關 聯性法則外,藉由 First( I )可以減少項目間的比對次數。

圖 3-1. 調整資料量

(總資料量為 10 筆,支持度 50%)

(30)

平行分散技術是以 Apriori 演算法為基礎,藉由計算工作量再分配的方式來 達到均勻工作量。所以使用區塊計算和 Tid 長度加權計算的兩種計算方式與循序 分配和循環分配兩種分配方式所組合出的四種組合分配的平行分散技術,計算出 能以較均勻地方式分配資料量到各處理器,使各處理器能達到負載平衡之目的。

兩種計算方式:

區塊計算,計算方式考量到 r 階候選項目集合的產生是以 r-1 階高頻項目集 合交互組合,將 r-1 階的高頻項目集合以 Tid 長度作遞減排序後組合 r 階候選項 目集合,每個項目集合組合視為一個區塊(Lattice),如圖 3-2,為了避免重覆探 勘項目集合,便以下方三角矩陣做探勘。組合次數計算的概念是計算項目集合需 組合的總次數及平均數;公式(3.1)為每個項目集合需組合的區塊數,公式(3.2)

為 r 階候選項目集合需組合的總次數。

( )I

[

(len(freq ) ) i

]

Lattice

Cnt_ i = r1 −1 − ………(3.1)

( ) ( )

=

= 1

0

1 _

_ len freqr

i Cnt Lattice Ii Lattice

TotalCnt ………(3.2)

Tid 長度加權計算,由於項目集合的 Tid 長度可能會不整齊,所以將項目集 合出現頻率及 Tid 需比較次數的可能列入公式內,進行加權值的計算,可以較精 準地對項目做分配,如圖 3-3。公式(3.3)為計算項目 Ii加權後的 Tid 值,公式

(3.4)為 r 階候選項目集合的 Tid 加權總值。

( ) len(freqr )

(

TID

) (

jTID

)

i

j i

i len I lenI

I WeightTid

Value =

= + ×

1 1

_ 1 ………(3.3)

( ) ( )

( )

( )

=

= + ×

= 1

0

1 1

1 1

_ r r

TID TID

freq len i

freq len

i

j lenIi lenIj

WeightTid

TotalValue …(3.4)

(31)

圖 3-2. 組合次數計算 圖 3-3. Tid 長度加權計算

兩種分配方式:

循序分配,將項目集合先分配給一台處理器,一直分配到其項目集合數已達 平均值時,才會分配其他項目集合給下一台處理器,如圖 3-4。

循環分配,以輪流方式將項目集合分配給各處理器,因為循環分配方式比較 容易讓各處理器所分配到的資料量接近相同,較可能達到負載平衡之目的,如圖 3-5。

圖 3-4. 循序分配 圖 3-5. 循環分配

因此 WDTU 演算法將各兩種不同分配法及計算方式以複合的方式組合,所 以分成四種不同計算分配組合。以下便以四種計算分配組合的例子來說明:2 台 處理器:P0、P1。支持度數量:5%。符合支持度的項目集合 Tid 表格如下,如表 3-8。

(32)

區塊計算:依照項目集合需組合次數做分配,從第一個項目 f 的組合次數為 5 次開始,g 的組合次數為 4 次,依序得出接下去所有項目組合次數以及組合次 數,而因為處理器為 2 台所以區塊數平均值為 7.5,如圖 3-6。

Tid 長度加權值計算:將項目集合於資料庫中的出現次數×項目比較次數列入

加權值計算的參數,f 為例,從公式(3.3) ( )

( )





×  +

=

len freqj ir111lenIiTID len IjTID 的加權值公式後,計算出7×6+7×5+7×3+7×1+7×1=112,f 的加權值為 112,

之後的項目一樣依序進行加權計算,而 Tid 加權平均值約為 102,如圖 3-7。

圖 3-6. 區塊數計算 圖 3-7. Tid 長度加權值計算 兩種分配與兩種計算所組合而成的四種計算分配組合,藉由例子所產生的四 種計算分配結果,如表 3-1。

表 3-1. 四種計算分配組合

分配組合 分配結果

區塊數計算 + 循序分配

P0:{ f ,g } = 5 + 4 = 9 (≧ 7.5)

P1:{ a,c,d } = 3 + 2 + 1 = 6

區塊數計算 + 循環分配

P0:{ f ,a } = 5 + 3 = 8 (≧ 7.5)

P1:{ g,c,d } = 4 + 2 + 1 = 7

Tid 長度加權值計算 + 循序分配

P0:{ f } = 112 (≧ 102)

P1:{ g,a,c,d } = 60 + 25 + 6 + 1 = 92

Tid 長度加權值計算 + 循環分配

P0:{ f } = 112 (≧ 102)

P1:{ g,a,c,d } = 60 + 25 + 6 + 1 = 92

下一節並將說明 WDTU 演算法的執行步驟。

(33)

3.3 WDTU 演算演算演算法演算法法步法步步步驟驟驟驟

本論文所提出的 WDTU 演算法,在演算法流程中,設定支持度,掃瞄完整 Log 資料庫一次後,建立 Tid 表格,再經由支持度產生 r 階高頻項目集合以及調 整 r 階非高頻項目的資料量進行判斷是否能進入 r 階高頻項目集合,再選四種計 算分配組合法其中之一種進行分配各處理器工作量,藉由各處理器的項目比對產 生 r+1 階的候選項目集合,再傳回,之後便一直循環流程直到產生不出下一階為 止,最後產生更新樣式,讓使用者能了解在特定時序內的項目間關聯法則。圖 3-8 為 WDTU 演算法流程圖。

圖 3-8. WDTU 演算法流程圖 設定支持度

No 產生更新樣式 建立 Tid 表格

產生 r 階候選項目集合, r=1

>=支持度

Cyclic_Lattice Block_WeightTid Block_Lattice

產生 r 階候選項目集合

四種項目計算分配法 Yes

產生 r 階高頻項目集合 r=r+1

Cyclic _WeightTid

>=調整資料量後 的門檻值

Log 資料庫

Yes No

參考文獻

相關文件

Keywords: pattern classification, FRBCS, fuzzy GBML, fuzzy model, genetic algorithm... 第一章

並以較淺易的方式進行評估,為學生建立學習成就感。整體而言,大多數政治演變的課題,會以概覽式課題的方法處理,即教師

W ing )教授在美國電腦權 威期刊《 C ommunications of the

西元 1998 年,G oogle 的創辦人之一賴利佩吉發表了網 頁排序的演算法,涵蓋 G oogle

4.2 Copy the selected individuals, then apply genetic operators (crossover and mutation) to them to produce new individuals.. 4.3 Select other individuals at random and

由於資料探勘 Apriori 演算法具有探勘資訊關聯性之特性,因此文具申請資 訊分析系統將所有文具申請之歷史資訊載入系統,利用

介面最佳化之資料探勘模組是利用 Apriori 演算法探勘出操作者操作介面之 關聯式法則,而後以法則的型態儲存於介面最佳化知識庫中。當有

本論文結合了 GPU-FPM 以及 Bitmap 的優點,並利用 Multi-GPU 架構提出 Multi-GPU CSFPM 的演算法,由於 CSFPM 如同 GPU-FPM