• 沒有找到結果。

資料流最近常見項目集變動探勘之研究

N/A
N/A
Protected

Academic year: 2021

Share "資料流最近常見項目集變動探勘之研究"

Copied!
64
0
0

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

全文

(1)國立臺灣師範大學 資訊工程研究所碩士論文. 指導教授:柯佳伶 博士. 資料流最近常見項目集變動探勘之研究 Mining Recently Frequent Itemsets Change over Data Streams. 研究生:李蕙君 撰. 中 華 民 國 九 十 八 年 七 月.

(2) 摘要. 資料流最近常見項目集變動探勘之研究 李蕙君. 本論文針對資料流滑動視窗的模型提出一個探勘狀態變動項目集的方法,稱 為 CV-SCD(Cross-Verify Status Change Detection)演算法。本方法主要利用兩棵稱 為 Base-Tree 及 Delta-Tree 的相同字首樹之樹狀結構,儲存在任一時間點 t 時滑動 視窗中所有交易資料,以及從 t 到 t+1 之間新增及過時的交易資料,並利用 Base-Tree 及 Delta-Tree 的資訊判斷出狀態變動項目集,再同時對兩棵樹遞迴建立 包含特定項目的條件樹,以探勘出更長的狀態變動項目集。本論文對固定區間長 度探勘出的狀態變動項目集儲存成狀態變動資料項集快照,並採用金字塔式時間 框架的結構來儲存快照,提供可由使用者指定特定時間區間對其中各狀態變動項 目集的變動情形進行相對特性分析。實驗結果顯示,當新增及過時的交易資料相 對於滑動視窗資料為少量,或是資料集中包含之項目種類較多,或是在支持度小 的情況下,CV-SCD 演算法相較於以 FP-growth 探勘出常見項目集後再進行狀態 變動項目集比對可顯著增進執行效率。.

(3) Abstract Mining Recently Frequent Itemsets Change over Data Streams Huei-Jyun Li. In this thesis, a method for discovering recently status-changed itemsets over data streams is proposed, which is named the CV-SCD (Cross-Verify Status Change Detection) algorithm. In this algorithm, two prefix tree structures, which are named Base-Tree and Delta-Tree, respectively, are constructed for maintaining the transaction data in a sliding window at time t, and the newly inserted and removed transactions at time t+1. The data stored in the Base-Tree and Delta-Tree is used to discover the status-changed itemsets at t+1 with respect to t. By performing cross-verification on Delta-Tree and Base-Tree, then by constructing conditional Delta-Tree and conditional Base-Tree recursively, all the status-changed itemsets are discovered in depth-first search. The discovered status-changed itemsets within a fixed time interval are stored in a snapshot of status-changed itemsets. Accordingly, given a specific period of time interval, the changing characteristics of itemsets in this interval can be compared relatively. The experiment results show that FP-growth to discover all the frequent itemsets at each time point and then performing itemsets matching to get status-changed itemsets, the CV-SCD algorithm provides significant improvement on execution time when the added and expired transactions are few, or there are many different items in transaction data, or the support is small..

(4) 誌謝. 在就讀研究所的兩年期間,很感謝指導教授柯佳伶老師的細心指導,不僅教 給我許多知識,在研究上也給我許多建議,使得論文能有今天的成果。在平時對 於處理事情的態度、解決問題的方法,更是獲益良多,對於人生的處事態度也有 更深一層的體會,因此非常感謝柯佳伶老師的教導,讓我有所成長。而口詴期間 承蒙陳良弼教授及吳宜鴻教授對本論文提供寶貴的指教與建議,使得論文能夠更 加完整,在此亦致上對兩位教授的謝意,感謝兩位教授不吝指教。 在所上的這段期間,也非常感謝所上教授們在各個領域的教導與鼓勵。對於 實驗室同學益郎、佩君、哲瑋的鼓勵與支持,實驗室學長建良學長、順宏學長在 平時給予的建議與協助,實驗室學妹毓雯、衣菱、實驗室學弟喬彬、晉緯、翼麟 的加油與鼓勵也非常感謝,讓我能有動力在研究上努力。 最後,將此論文獻給我最親愛的家人,感謝雙親對我的關懷與照顧,以及弟 弟妹妹對我的支持與鼓勵,讓我能無後顧之憂的順利完成學業,僅以此篇論文表 達內心最誠摯的感激。. 李蕙君. 謹識. 於國立臺灣師範大學資訊工程研究所 2009 年 7 月.

(5) 目錄 附表目錄……………………………………………………………………………...I 附圖目錄……………………………………………………………………………..II 第一章 緒論…………………………………………………………………………1 1-1 1-2 1-3 1-4. 研究背景與研究動機………………………………………………………..1 文獻探討……………………………………………………………………..3 論文方法……………………………………………………………………10 論文結構……………………………………………………………………11. 第二章 背景知識及問題定義…………………………………………………12 2-1 背景知識……………………………………………………………………12 2-2 狀態變動項目集探勘………………………………………………………14. 第三章 資料流常見項目集變動探勘………………………………………..16 3-1 交易資料儲存結構…………………………………………………………16 3-2 狀態變動項目集探勘處理…………………………………………………20. 第四章 狀態變動項目集儲存及分析………………………………………..31 4-1 狀態變動資料項集快照……………………………………………………31 4-2 項目集變動特性分類………………………………………………………33 4-3 快照儲存結構………………………………………………………………37. 第五章 實驗效能評估…………………………………………………………..41 5-1 實驗測詴資料………………………………………………………………41 5-2 實驗評估……………………………………………………………………42 5-3 實驗結果總結………………………………………………………………51. 第六章 結論……………………………………………………………………….52 參考文獻……………………………………………………………………………54.

(6) 附表目錄. 表 3.1 一般化資料流範例……………………………………………………………17 表 3.2 項目集狀態變動狀況………………………………………………………….21 表 4.1 狀態變動項目集類別…………………………………………………………36 表 4.2. 計算 t1~t10 狀態變動項目集快照之avg ∆CT t P 及cr ∆CT t P …………36. 表 5.1. 模擬資料集參數說明………………………………………………………..41. I.

(7) 附圖目錄. 圖 2.1. 一般化資料流滑動視窗移動範例…………………………………………..13. 圖 3.1 Base-Tree 建構情形………………………………………………………….18 圖 3.2 Delta-Tree 建構情形…………………………………………………………19 圖 3.3 B-conditional Base-Tree 及 B-conditional Delta-Tree………………………25 圖 3.4 C-conditional Base-Tree 及 C-conditional Delta-Tree……………………….26 圖 3.5 D-conditional Base-Tree 及 D-conditional Delta-Tree………………………26 圖 3.6 呼叫 CV-SCD 之主程式………………………………………………………28 圖 3.7 CV-SCD 演算法之虛擬程式碼……………………………………………...30 圖 4.1 記錄 t1~t10 間發生的狀態變動項目集之快照………………………………33 圖 4.2. 狀態變動項目集之分佈與分類……………………………………………..37. 圖 4.3. 快照記錄情形………………………………………………………………..40. 圖 5.1. 改變模擬資料集之滑動視窗中交易資料筆數執行時間結果……………..42. 圖 5.2. 改變模擬資料集之交易區塊中交易資料筆數的執行時間結果…………..43. 圖 5.3. 改變模擬資料集之支持度的執行時間結果………………………………..44. 圖 5.4. 改變模擬資料集中平均交易長度的執行時間……………………………..45. 圖 5.5. 改變模擬資料集中常見項目集之長度的執行時間………………………..46. 圖 5.6. 改變模擬資料集中包含之項目種類的執行時間…………………………..47 II.

(8) 圖 5.7. 改變 BMS-POS 資料集之滑動視窗大小的執行時間………………………48. 圖 5.8. 改變 BMS-POS 資料集之交易區塊大小的執行時間………………………48. 圖 5.9. 改變 BMS-POS 資料集之支持度的執行時間………………………………49. 圖 5.10. 採用 T5I4D30k(N200) 執行狀態變動項目集探勘執行時間及快照儲存分. 析時間………………………………………………………………………………...50 圖 5.11. 採用 PMS-POS 執行狀態變動項目集探勘執行時間及快照儲存分析時. 間……………………………………………………………………………………...50. III.

(9) 第一章 緒論. 1-1 研究背景與研究動機 在資料探勘的領域中,從大量資料中進行常見項目集(frequent itemset)探勘 [17]是一個基本而重要的研究主題,因為找出常見項目集之後,可進一步探勘出 出項目集之間的關聯法則(association rules)[16],或是作為進行分類(classification) 或分群(clustering)中特徵萃取的前處理。以往需要進行探勘的資料大多儲存於靜 態資料庫中,代表性的探勘演算法包括如 Apriori 演算法[16]及 FP-growth 演算法 [1]。 由於電腦科技應用的快速發展,愈來愈多的資料以動態資料流的形式產生, 例如:顧客的消費行為、感測網路、股票行情資訊等等。在這種隨著時間不斷有 新資料產生的資料流環境下,資料可能無法全部儲存在資料庫中,常見項目集也 可能會隨著時間而有所不同;如果必頇對資料庫中的大量交易資料重複掃描進行 探勘,不僅耗費很高的計算成本,且不易即時反應目前的最新狀況。因此近來開 始有許多研究針對動態資料流的環境,提出有效率的探勘常見項目集方法。 許多研究提出不同資料結構的設計來儲存項目集相關出現資訊,以便有效率 的找出資料流中常見項目集(frequent itemset)[5, 7, 11, 14, 15]、最大常見項目集 (maximal frequent itemset)[4]、或是封閉項目集(closed itemset)[2, 3]。針對考慮探 勘資料的時間性,這些探勘方法可分成兩種不同類型[13],一種以地標視窗 1.

(10) (landmark window)為單位進行探勘,另一種則是以滑動視窗(sliding window)為單 位進行探勘。在以地標視窗為單位的前提下,是針對從最初到目前進入資料流中 的所有交易資料來進行探勘,因此累積的歷史資料會隨著時間愈來愈龐大,且探 勘結果受歷史資料影響很大,不易反映最近狀況。在以滑動視窗為單位的作法, 則會設定一個視窗大小 w,表示探勘範圍為目前最近 w 個時間中所輸入的資料, 由於有時間範圍的限制,在一個新的時間點,除了可能有新進資料新增,原視窗 中亦可能有資料變為過時而必頇排除於探勘範圍之外。以滑動視窗為模型的作法 能明確訂出探勘區間,並能即時反應資料最近趨勢,因此為本論文所採用。 目前針對資料流環境的研究大多著重在如何有效率的探勘出常見項目集,但 是對資料流連續進行常見項目集探勘,只是在每一時間不斷列舉出當時出現的常 見項目集,特別在常見項目集數量繁多時,使用者並不容易直覺得知常見項目集 的變化狀況。由於資料流中的資料出現狀況可能會隨著時間改變,因此資料流中 的概念變動(concept drift)探勘亦為一個重要的探討議題[9, 10]。然而以往提出的研 究多是以統計分析的觀點來看資料出現分佈的改變,而較少探討實際常見項目集 的變動探勘。若在初始時間提供常見項目集的探勘結果,接下來的時間點皆提供 有哪些常見項目集不再是常見項目集,以及有哪些新產生的常見項目集,使用者 就可以很快的得知常見項目集合的變動狀況。 欲提供常見項目集變動探勘,在以滑動視窗模型為概念的情況下,直覺的作 法是由各時間點探勘出常見項目集再進行比較,來得知狀態產生變動的項目集。 2.

(11) 這個方法雖然簡單,但要列舉並儲存各時間點的常見項目集,不僅需要耗費大量 的計算成本,亦需要相當大的記憶體空間。當狀態改變的項目集相對於所有的常 見項目集是屬於少數的情況下,則連續探勘出的常見項目集有大部分是相同的, 如果能避免重複探勘這些項目集,就能有效節省計算成本及記憶體空間需求。 為解決上述問題,本論文探討如何能快速找出出現頻率狀態上有變動的項目 集之探勘方法,也就是找出由常見變為非常見,或由非常見變為常見的項目集。 另外,為了對這些狀態上有變動的項目集之變動狀況提供一個整體總結資訊,本 論文中進一步探討分析項目集的變動週期,將變動項目集分類成相對常變動或不 常變動,以及相對變動週期較穩定或是不穩定的類別,以提供使用者更多關於項 目集變動特性的資訊。. 1-2 文獻探討 1-2-1 常見項目集探勘 探勘靜態資料庫常見項目集的代表方法之一為 R. Agrawal 等人所提出的 Apriori 演算法[16]。此方法會先掃描資料庫一次,先統計長度為 1 的各項目集的 出現次數,並判斷該項目集是否符合使用者所定義的最小支持度門檻值(minimal support threshold)以得知是否為常見項目集。然後重覆將長度為 L-1 的常見項目集 組合成長度為 L 的候選項目集,再掃描資料庫統計各候選項目集的支持度,從而 判斷候選項目集是否符合最小支持度門檻值。此方法雖然簡單,但是經常會產生 3.

(12) 龐大的候選項目集,並在探勘過程中需要多次掃描資料庫,因此相當耗費記憶體 空間及時間。 為了改善 Apriori 演算法會產生龐大候選項目集的缺點,J. Han 等人提出 FP-growth 演算法[1]:該演算法會先掃描資料庫中的資料一次,統計出各項目出 現的次數後,將每一筆交易中所包含項目的順序依各項目出現次數遞減排序,接 下來利用相同字首共享樹中同一路徑節點的方式,將每一筆交易一一新增到樹的 結構中,此樹狀結構稱為 fp-tree。結構中還有一個稱為 HeaderTable 的陣列(array), 用來記錄每一項目出現的次數。依據 fp-tree 中記錄的資訊,FP-growth 演算法利 用使用者所給定的最小支持度門檻值來對 fp-tree 進行常見項目集探勘,其採用 divide-and-conquer 的策略,分別對各單一項目建立 conditional fp-tree,然後根據 該 conditional fp-tree 相對應的 HeaderTable 中統計出的項目出現次數,組出常見 項目集,再繼續以該新產生的常見項目集為基準遞迴探勘出更長的常見項目集。. 1-2-2 資料流常見項目集探勘 由於現今應用資料有許多是以資料流的形式產生資料,因此近來有許多研究 針對動態資料流常見項目集探勘提出有效率的方法。在論文[18]中所提出的 Lossy Counting 演算法為探勘動態資料流常見項目集的代表方法,此方法以地標視窗的 模型為前提,探勘出整個歷史資料流常見項目集的近似集合。Lossy Counting 演 算法會根據使用者所訂定的最小支持度門檻值 s 及最大支持度誤差值ε,將支持 4.

(13) 度大於ε的項目集都儲存在 Lattice 的結構當中。存於 Lattice 中的每個節點都會 包含三種資訊(e, f, Δ),e 表示所儲存的資料項目集,f 表示此資料項目集的計數 值,Δ表示最大可能的誤差值。當資料流有新進交易資料進入時,會將此新進資 料所包含的子集出現次數更新到 Lattice 結構中,其對應節點的計數值也加 1,並 同時設定最大可能估算的誤差值Δ。當交易資料新增完成後,為節省記憶空間需 求,只保留支持度大於等於ε的項目集於 Lattice 結構中。此方法保證可以找出所 有的常見項目集,並且其估計出的支持度與實際支持度的誤差一定不會超過ε。 論文[19]則考慮以滑動視窗的模型為前提,每一時間固定有一筆新增交易資 料的假設下,探勘目前視窗中的最近常見項目集。除了新進資料對最近常見項目 集會有所影響外,也必頇將過時資料考慮進去。論文[19]利用 Lossy Counting 演 算法的概念來估算近似的支持度計數值,該方法會記錄資料項目集及支持度計數 值的資訊,並將資料項目集第一次加入 Lattice 中的時間點也記錄下來。如果新增 的交易資料中包含原本不存在於 Lattice 結構中的資料項目集,則在新增節點後, 先利用估算的方式計算出該資料項目集之前在視窗內可能出現次數的最大值,並 且記錄下此項目集加入的時間點。如果該資料項目集已經存在於 Lattice 結構中, 則只要將此項目集的支持度計數值加 1。在過時交易資料的處理,則是將過時交 易資料中對應到 Lattice 結構內所有子集的節點之支持度計數值減 1。如果資料項 目集記錄的加入時間點大於視窗中最早的時間點,則表示此資料項目集先前可能 已經出現過,但是因為先前此項目集為非常見而被刪除,因此其支持度計數值必 5.

(14) 頇加上先前可能出現的最大次數;如果估算之後支持度仍然小於ε,則將此項目 集從 Lattice 中移除。 論文[5]亦考慮在動態資料流以滑動視窗模型為前提下,以視窗中的交易資料 為探勘範圍,但假設在每一時間點有一批資料數入,且資料輸入數量可不固定。 論文[5]認為當每個時間點輸入滑動視窗中的批次資料量龐大時,如果要對整個滑 動視窗中的資料進行探勘會需要耗費相當多的時間。因此,論文[5]對視窗內各批 次中的常見項目集以聯集方式記錄於一棵稱為 PT (Pattern Tree)的樹狀結構中,當 有新批次資料集加入的時候,為了得知已存於 PT 中的各項目集是否仍維持為常 見項目集,因此會對新加入的批次資料集建立一棵 FP-tree,然後藉由對 PT 及 FP-tree 同時遞迴建立 conditional-tree 來得知已存在 PT 中各項目集的新增出現次 數,以檢查原本存在 PT 中的項目集是否仍為常見項目集,且可同時探勘出新加 入之批次資料集中的常見項目集。但是對於新加入批次資料集中的常見項目集, 若其不存在 PT 中,則無法得知其在先前時間點出現的次數。因此該論文中設計 一個稱為 aux_array 的陣列結構,用來儲存這些可能新成為常見但卻不確定其出 現次數的項目集,並將該加入時間點記錄下來。使用者可以決定這些項目集是否 可以被延後做常見項目集的判定,以及可延後告知的容忍時間。隨著時間的流逝, 記錄在 aux_array 中的項目集會繼續累計其在滑動視窗新輸入資料中的出現次數, 當加入此項目集的時間點成為滑動視窗中最早的時間點時,就能完整得知此項目 集在滑動視窗中的確實出現次數,並準確判斷是否為一常見項目集。依據使用者 6.

(15) 選定可容忍延後報告的時間,可根據當時統計資訊輸出結果;如果使用者選擇不 可容忍延後,則找出的常見項目集誤差會較大,如果使用者可容忍延後的時間愈 長,則誤差會愈小。 論文[20]同樣考慮資料流中以滑動視窗模型為前提的情況下探勘最近常見項 目集的問題。作者認為當最近常見項目集沒有顯著變化的情況下,先前探勘出的 常見項目集會近似於目前的常見項目集,因此可做為目前常見項目集的代表而不 需每個時間點都重新進行探勘,但同時必頇監視滑動視窗內各項目集的出現次數, 並估算出每個時間點最新的常見項目集和先前探勘的常見項目集的改變比例值, 以決定是否需要重新探勘。作者利用一個稱為樣式監視樹的樹狀結構監視原有最 近常見項目集的出現次數及狀態變化狀況,並運用常見項目集出現次數分佈近似 power-law 分佈的現象,從中估算常見項目集的變化量。. 1-2-3 探勘資料流中資料代表項目集 為了減少探勘出的常見項目集數量,有些研究針對資料流環境提出探勘封閉 常見項目集(closed frequent itemsets)的方法。論文[2]所提出的 Moment 演算法,是 在滑動視窗的模型為前提下進行最近封閉常見項目集的探勘。Moment 演算法會 利用一個稱為 CET (Closed Enumeration Tree)的樹狀結構來動態維護在滑動視窗 內資料項目集的出現資訊,並根據資料項目集之常見或非常見的性質,以及是否 具有包含的關係,建立並維護封閉常見項目集的節點。此外,亦維護和監控其他 7.

(16) 可能成為封閉常見項目集的節點,因此在探勘的過程中,只需要觀察這些可能會 影響封閉常見項目集的節點之出現次數變化即可。Moment 演算法會在每個時間 點更新目前最新的封閉常見項目集,並將其儲存於 hash table 中以便隨時提供目 前常見項目集的資訊。 論文[3] CFI-Stream 演算法則可以在不需得知支持度計數值的情況下,以漸進 的方式探勘出資料流中封閉常見項目集。CFI-Stream 演算法會在交易資料新進及 過時的時候,先對資料項目集檢查是否有可能為封閉項目集,利用 DIU tree 的樹 狀結構來儲存封閉常見項目集,並隨著時間進行維護及更新。當有新進的交易資 料進入滑動視窗中,只需要掃描一次新進交易,並檢查哪些資料項目集可能會改 變其封閉的型態;對於過時交易資料也只需檢查有哪些資料項目集會因此改變其 封閉型態,更新在 DIU tree 中相關的封閉資料項目集以及其支持度計數值,最後 再根據使用者所訂定的門檻值輸出結果即可。. 1-2-4 資料流中變動探勘 資料流的資料所隱藏的分類概念(concept)可能會隨著時間改變,因此有一些 研究探討如何在資料流環境中探勘出新進的資料是否發生概念漂移(concept drift)。 論文[9]中便考慮如何從資料流中找出是否有新的概念(novelty)產生,或是原本存 在的概念發生改變(concept drift)。該提出方法將原本已知 k 個類別的資料,故先 利用 k-means 分群演算法分成 k 個聚落(cluster),並記錄各聚落的中心(centroids), 8.

(17) 各聚落則計算聚落內各點對於聚落中心的最大距離,做為每個聚落的決策邊界, 然後再計算出聚落間的最大距離 dmax,以及一個包含所有聚落中心點的全體中心。 所有聚落的決策邊界的聯集稱為全體決策邊界,因此只要是落在全體決策邊界內 的資料就被視為是正常的資料,若在全體決策邊界之外的資料則被視為未知 (unknown)而必頇進一步進行辨識的處理。這些未知的資料一樣會先利用 k-means 演算法分成 k 群聚落,如果未知資料所形成的聚落之中心與全體中心的距離小於 等於 dmax,則判斷該聚落是原本的聚落發生觀念改變,否則便判定是創新的聚落。 論文[10]的目的是對資料的變動進行分類,然後根據不同類型的資料變動提 出合適的方法來進行探勘。論文[10]首先定義了兩類概念改變的類型:一種為鬆 散概念改變 LCD(Loose Concept Drifting),表示資料流中的資料分布會維持一個穩 定的狀態,因此概念的飄移通常是由於雜訊或偏差所造成的;另一種為緊密概念 改變 RCD(Rigorous concept Drifting),表示資料會隨機改變,概念變動較為頻繁, 因此原本建立好的分類器(classifier)可能很快就不適用。對於 LCD 類型的資料流, 論文[10]提出 kernel mean matching(KMM)方法來減少資料集的雜訊及偏差程度, 並且對各資料點產生一個權重值來建立整體的分類器,以便處理 LCD 類型的資 料流。而對 RCD 資料流,作者則提出 Optimal Weights Adjustments(OWA)方法來 決定由目前資料所建立的分類器之最佳權重值,讓目前所建立起來的這些分類器 在整合後可以更準確的預測即將來臨的資料。. 9.

(18) 論文[8]對資料流中不同時間點找出的聚落(cluster)記錄整合資訊,以用來判 斷不同時間點之間聚落的變化。但是要將每個時間點的聚落資訊(稱為聚落快照 (cluster snapshot))都儲存下來是不可行的,因此作者提出金字塔式時間框架 (pyramidal time frame)的概念,採用愈近的時間應提供愈精準的資訊之想法,以分 級的方式來儲存不同時間點的聚落快照,再依據離目前時間點的遠近而有不同時 間間距的儲存區間,越接近目前時間點的快照儲存的是單一時間區間所記錄的狀 況,當快照逐漸離目前時間點愈遠,便會逐漸與鄰近區間的快照資訊合併,所對 應記錄的時間區間也隨之變大。. 1-3 論文方法 本論文主要考慮在採用滑動視窗模型的資料流環境下,當每一時間單位內新 增及過時的資料相較於整個滑動視窗中的資料為少量改變的情況下,如何有效率 的探勘出狀態變動項目集。本論文主要利用相同字首樹的結構建構出 Base-Tree 及 Delta-Tree 來記錄這些新增及過時的資料,除了參考 FP-growth 演算法[1]以 divide-and-conquer 策略探勘 Base-Tree,並交互查照 Delta-Tree 的資訊,避免對狀 態上確定無變化的項目集進行探勘,提出一個能有效率找出狀態變動項目集的演 算法。 為了對這些狀態變動項目集提供整體總結資訊,本論文將每固定 s 個時間點 間產生狀態變動的項目集記錄下來,對這些變動過的項目集依照其變動區間平均 10.

(19) 及變動率,判斷哪些項目集在此期間是屬於相對較常變動或較不常變動的項目集, 也能得知哪些項目集變動區間較穩定或較不穩定。此外,我們運用論文[8]所提出 的金字塔式時間框架的概念,儲存歷史變動資訊以提供使用者能指定歷史資料區 間進行變動總結分析。 為顯示本論文方法的執行效能,在實驗中我們的基本比較方法是以 fp-growth 方法[1]在每一時間點探勘出滑動視窗中所有的常見項目集,再比較與前一時間點 的常見項目集,找出狀態變動的項目集。由執行時間的比較顯示:本論文所提出 的方法相對於比較方法,當新增及過時的資料相較於滑動視窗中的資料為少量時, 以及資料集中包含不同項目的種類愈多時,愈能節省大量執行時間。此外,由對 實際資料集的執行結果顯示,在極短的時間內便可依所儲存之歷史變動快照資訊 對變動項目集提出總結分析結果。. 1-4 論文結構 本論文以下章節內容如下:第二章說明與本論文問題相關的名詞定義,並正 式定義本論文研究探討的問題。第三章針對本論文所提出之狀態變動項目集的探 勘方法進行詳細的說明。第四章則介紹如何儲存變動項目集快照,以及變動項目 集特性總結分析方法。第五章將以實驗果探討本論文方法的執行效率。最後以第 六章總結本論文,並探討未來研究方向。. 11.

(20) 第二章 背景知識及問題定義. 2-1 背景知識 令 I = {i1, i2, …, in}表示資料流中所有可能出現的資料項(item)所形成的集合, 一筆交易 T 為包含一個或一個以上 I 中的資料項所成的集合。在本論文中,特例 資料流是指每一個單位時間點 k ( k  1)都只有一筆交易 Tk 輸入;而在一般化資料 流的情況下,每一個單位時間點 k ( k  1)內則會有一筆或多筆交易 𝑇𝑘1 , … , 𝑇𝑘𝑛 所 形成的一個單位交易區塊 Bk 輸入,且每時間點的交易區塊中包含的交易筆數可不 固定。由於特例資料流為一般化資料流的一種特殊情況,因此我們在本論文以下 內容皆直接討論一般化資料流環境的處理,但一個單位時間點內產生的交易筆數 則假設為固定,也就是每個單位交易區塊中包含的交易筆數為固定。 滑動視窗的模型是指給定一個 w 值,則探勘範圍包含最近固定 w 個時間點內 的交易資料。令目前時間點為 t ( t ≥ w ),則目前交易視窗 CTWt (Current Transaction Window) 是由最近 w 個單位交易區塊{Bt-w+1, Bt-w+2, …, Bt}所構成的交易集合。以 |Bi|表示單位交易區塊 Bi 中包含的交易筆數,而 CTWt 中所包含的交易數量以|CTWt| 表示,則|CTWt| = |Bt-w+1| + |Bt-w+2| + … + |Bt|,也就是 CTWt 中各單位交易區塊所包 含的交易數總和。當目前時間點變為 t+1 時,CTWt+1 中的交易資料相對於 CTWt 來說,新增了一個單位交易區塊 Bt+1,且原視窗中最早的一個單位交易區塊 Bt-w+1 會因為過時而被移除,故 CTWt+1 中仍維持最近 w 個單位時間內的交易。 12.

(21) 圖 2.1 所示為一個一般化資料流之滑動視窗移動範例,當視窗大小 w 設為 3, 且每一單位交易區塊包含 5 筆資料,從時間點 3 到時間點 5 對應的滑動視窗內容 如圖所示,其中 CTW3 = { BD, BC, CD, BCD, C, AB, CD, ABC, CD, B, AB, D, B, AB, CD},|CTW3| = 5,CTW4 = { AB, CD, ABC, CD, B, AB, D, B, AB, CD, BE, ABE, DE, ABDE, BDE },|CTW4| = 5,CTW5 = { AB, D, B, AB, CD, BE, ABE, DE, ABDE, BDE, ADE, BCDE, CD, AC, A },|CTW5| = 5。. CTW5 CTW4 CTW3 單位 時間編號. 1. 2. 單位 交易區塊. BD BC CD BCD C. AB CD ABC CD B 圖 2.1. 3 AB D B AB CD. 4 BE ABE DE ABDE BDE. 5 ADE BCDE CD AC A. 6 CD BD ADE C AB. 一般化資料流滑動視窗移動範例. 一個資料項目集(itemset),或簡稱為項目集,是由 I 中一個或一個以上的資料 項所形成的集合。一個項目集 P 內所包含的資料項個數稱為 P 的長度,以|P|表示; 而長度為 l 的項目集,稱為一個 l-項目集(l-itemset)。當一個項目集 P 為某一筆交 易 T 的一個子集,則稱 T 包含 P。在目前交易視窗 CTWt 中包含資料項目集 P 的 13.

(22) 交易筆數稱為 P 在時間點 t 時的最近支持度計數值,以 SCt(P)表示。當使用者給 定一個介於 0 到 1 之間的最小支持度門檻值(minimal support threshold)Smin,則由 𝐶𝑇𝑊𝑡 × 𝑆𝑚𝑖𝑛 所得到的值稱為時間點 t 時的最小支持度計數門檻值(minimal support count threshold)SCmin(t)。由於本論文假設在每個單位時間點|CTWt|為固定, 因此 SCmin(t)在個時間點為相等,可簡寫為 SCmin。對一個資料項集 P,若 SCt(P) 大於或等於 SCmin(t),則稱 P 在時間點 t 為一個最近常見項目集(recent frequent itemset);若 SCt(P) 小於 SCmin(t),則稱 P 在時間點 t 時為一個最近非常見項目集 (recent infrequent itemset)。. 2-2 狀態變動項目集探勘 隨著時間的改變,最近常見項目集之集合及最近非常見項目集之集合可能發 生變動。令時間點 t 時,CTWt 中最近常見項目集所成之集合以F𝑡 表示,最近非常 見項目集所成之集合以F𝑡 表示;當經過 1 個時間點後,CTW𝑡+1 中最近常見項目集 所成之集合為F𝑡+1 ,最近非常見項目集所成之集合為F𝑡+1 。若項目集𝑃 ∈ F𝑡 且 P ∈ F𝑡+1 ,則稱 P 為時間點𝑡 + 1相對於時間點 t 之常見狀態變動項目集,表示項 目集 P 在 t 為常見,在經過1個時間點後轉變為非常見而產生了狀態變動。此外, 若項目集𝑃 ∈ F𝑡 且P ∈ F𝑡+1,則稱 P 為時間點𝑡 + 1相對於時間點 t 之非常見狀態變 動項目集,表示項目集 P 在 t 為非常見,在經過δ個時間點後轉變為常見而產生了 狀態變動。一個狀態變動項目集是指該項目為一個常見狀態變動項目集或是非常 14.

(23) 見狀態變動項目集。 在一個一般化資料流的環境下,給定滑動視窗大小 w,最小支持度門檻值 Smin, 則狀態變動項目集探勘是要從時間點𝑡 ≥ 𝑤起,每隔1個時間點,輸出時間𝑡 + 1相 對於 t 之所有常見狀態變動及非常見狀態變動項目集。因此下一次再進行探勘的 時間為𝑡 + 2,並輸出相對於𝑡 + 1之所有常見狀態變動及非常見狀態變動項目集, 以此類推。因此每次都會輸出每一時間點相對於上一時間點之所有常見狀態變動 及非常見狀態變動項目集。. 15.

(24) 第三章 資料流常見項目集變動探勘. 本章將說明在固定交易區塊大小之一般化資料流環境下,如何採用滑動視窗 模型進行狀態變動項目集探勘。. 3-1 交易資料儲存結構 為了探勘狀態變動項目集,本論文利用兩棵類似 FP-tree 的相同字首樹結構來 儲存交易資料。令滑動視窗大小為 w。以時間 t 為基準點𝑡 ≥ 𝑤,本論文方法將 CTWt 中所有單位交易區塊內的交易資料儲存在一棵稱為 Base-Tree 的相同字首樹 結構中。與 FP-tree 類似,Base-Tree 中會記錄一個稱為 HeaderTable 的陣列(array) 結構,其中每一元素(element)儲存以下資訊: (1) item:記錄一個項目 i。 (2) frequency:項目 i 的出現次數。 (3) link:連結指向 Base-Tree 中對應到項目 i 的節點所形成的串列。 Base-Tree 中每一節點記錄以下欄位資訊: (1) x:紀錄一個資料項 x。一個節點所對應表示的項目集是從樹的根節點到此節 點中,所經過路徑上節點的項目聯集而成的項目集 P。 (2) f:該節點對應項目集之計數值。. 16.

(25) (3) children:連結指向 Base-Tree 中對應到項目集𝑃⋃ 𝑦 的節點,其中 y 為一個資 料項,𝑃⋃ 𝑦 為滑動視窗中出現過之資料集,且 y 的字母出現順序在所有 P 中 包含之資料項目之後。 當時間經過 1 個時間點,t 到 t+1 這段時間內所新增及過時的交易區塊包含之 交易資料,我們會以一棵稱為 Delta-Tree 的相同字首樹結構儲存。Delta-Tree 中同 樣也會記錄一個 HeaderTable 的陣列,儲存資訊與 Base-Tree 的 HeaderTable 類似, 每一元素有一欄位 item 記錄一項目 i,並對項目 i 記錄其新增及過時次數總和為 frequency,以及 link 表示項目 i 所對應節點形成的串列。在計算項目新增及過時 次數總和時,若為新增則次數加 1,若為過時則次數減 1。 Delta-Tree 中每一節點記錄的資訊與 Base-Tree 中記錄的結構類似,同樣以 P 記錄所對應資料項目集內容,並以 children 連結至以 P 為字首的其他項目集。但 在記錄 f 時,對該資料項目集每新增一次加 1,每過時一次減 1,因此 f 反應 P 的 累計變動次數。. [範例 3-1] 表 3.1 單位時間 t. Bt. 1. 一般化資料流範例. 2. 3. 4. 5. 6. BD BC CD. AB CD ABC. AB D B. ABE DE BE. ADE BCDE CD. CD BD ADE. BCD C. CD B. AB CD. ABDE BDE. AC A. C AB. 17.

(26) (b) 加入 B1 中所有交易資料. (a) 加入 B1 中第一筆交易資料 BD 所建立出來的 Base-Tree. 所建立出來的 Base-Tree. (c) 加入 CTW3 中各單位交易區塊所有包含 之交易資料所建立出來的 Base-Tree 圖 3.1 Base-Tree 建構情形. 以表 3.1 所示之一般化資料流為例,每個時間點輸入一個單位交易區塊。若 視窗大小 w 設為 3,當𝑡 ≤ 3,滑動視窗中尚未被填滿,因此所有單位交易區塊 B1 到 B3 中的交易資料都會被一一新增至 Base-Tree 中。以 B1 為例,B1={BD, BC, CD, BCD, C}共包含 5 筆交易資料。首先將 B1 內第一筆交易 BD 中包含之各資料 項 對 應 節點 加 入 至 Base-Tree 中 , 並 將 各 對 應 節 點的 支 持 度計數 值 加 1 , 18.

(27) HeaderTable 中各對應項目的計數值也加 1,所建立出來的 Base-Tree 如圖 3.1(a) 所示。當單位交易區塊B1 中所有交易資料都加入至 Base-Tree 後,所建立出來的 Base-Tree 如圖 3.1(b)所示。直到 t = 3 之單位交易區塊B3 輸入後,滑動視窗即為被 填滿行程 CTW3,所建立出來的 Base-Tree 如圖 3.1(c)所示。. (a) 移除 B1 中第一筆交易資料 BD 所建立出來的 Delta-Tree. (b) 移除 B1 中所有交易資料 所建立出來的 Delta-Tree. (c) 新增 B4 並移除 B1 中所有交易資料所建立出來的 Delta-Tree 圖 3.2 Delta-Tree 建構情形 19.

(28) 當 t4 時,由於滑動視窗中最早的交易區塊 B1 變為過時而被移除,並且視窗中 新增了一個交易區塊 B4,則我們會對過時及新增的交易資料建立 Delta-Tree。以 移除過時交易區塊 B1 為例,B1={BD, BC, CD, BCD, C}共包含 5 筆交易資料。首 先將 B1 內第一筆交易 BD 中包含之各資料項對應節點加入至 Delta-Tree 中,並將 各對應節點的支持度計數值減 1 表示過時,HeaderTable 中各對應項目的計數值也 減 1,所建立出來的 Delta-Tree 如圖 3.2(a)所示。當單位交易區塊B1 中所有交易資 料都加入至 Delta-Tree 後,所建立出來的 Delta-Tree 如圖 3.2(b)所示。接下來加入 新增交易區塊 B4 至 Delta-Tree 的方式與新增交易區塊資料至 Delta-Tree 的方式相 同,因此不再多做說明,最後所建立出來的 Base-Tree 如圖 3.2(c)所示。. 3-2 狀態變動項目集探勘處理 根據所建構出之 Base-Tree 及 Delta-Tree,便可以進行狀態變動項目集探勘處 理。本論文所提出探勘狀態變動項目集的方法稱為 Cross-Verify Status Change Detection 演算法,簡稱為 CV-SCD 演算法。此方法會由 Delta-Tree 得知項目集變 動次數是否增加或減少,藉由到 Base-Tree 中進行對應探勘,判斷某個資料項集 是否為狀態變動項目集。 另將項目集 P 在時間 t 到 t+1 間的變動次數以sup1t 𝑃 表示,當sup1t 𝑃 的值 大於 0,表示 P 在 CTWt+1 相較於 CTWt 中的支持度為增加,因此若 P 在 CTWt 中 為非常見項目集,則 P 才可能為 t+1 相對於 t 的一個非常見狀態變動項目集。當 20.

(29) sup1t 𝑃 的值小於 0,表示 P 在 CTWt+1 相較於 CTWt 中的支持度為減少,因此若 P 在 CTWt 中為常見項目集,則 P 才可能為 t+1 相對於 t 的一個常見狀態變動項目集。 表 3.2 所示為sup1t 𝑃 和 P 在 CTWt 中狀態所組合出的各種狀況。 在表 3.2 所列出的各種狀況中,狀況一、四、五、六及八皆表示項目集 P 的 常見或非常見狀態一定保持不變的情況,因此不需進行檢查。狀況九為不可能出 現的情況,而狀況二、三及七則表示 P 有可能發生狀態變動,必頇由 Base-Tree 取得 SCt(P),加上 Delta-Tree 取得的sup1t 𝑃 ,SCt+1(P)即可由 SCt(P)+ sup1t 𝑃 得 之。根據 SCt(P)和 sup1t 𝑃 分別與 SCmin 的比較結果,即可判斷出 P 是否為一個狀 態變動項目集。. 表 3.2. 項目集狀態變動狀況. P 在 CTWt 之狀態. 狀況一. sup1t 𝑃 大於 0. 狀況二. 大於 0. 非常見. 有可能變為常見. 狀況三. 大於 0. 未出現. 有可能變為常見. 狀況四. 等於 0. 常見. 狀況五. 等於 0. 非常見. 仍保持為非常見. 狀況六. 等於 0. 未出現. 未出現. 狀況七. 小於 0. 常見. 狀況八. 小於 0. 非常見. 仍保持為非常見. 狀況九. 小於 0. 未出現. 不可能產生此狀況. 狀況編號. 常見. 項目狀態變化 仍保持為常見. 仍保持為常見. 有可能變為非常見. 另外,將項目集 P 加上一個項目 x 產生項目集𝑃⋃ 𝑥 是否可能發生狀態改變 的情形,則分為以下兩種情況進行討論: 21.

(30) <1> 𝑃⋃ 𝑥 可能發生狀態改變:當項目集 P 出現在 Delta-Tree 中,其超集合(superset) 𝑃⋃ 𝑥 之sup1t 𝑃⋃ 𝑥 可能大於 0,等於 0,或是小於 0。當 P 在 CTWt 中為非常見 項目集,則𝑃⋃ 𝑥 必為 CTWt 中的非常見項目集,但是𝑃⋃ 𝑥 在 CTWt+δ中的狀態 有各種可能:常見、非常見,或未出現。因此如表 3.2 中狀況一、二、三、四、 五及七,根據其狀況下sup1t 𝑃⋃ 𝑥 及𝑃⋃ 𝑥 在 CTWt 中的可能狀態組合,顯示 𝑃⋃ 𝑥 有可能發生狀態改變,因此對 P 遞迴探勘檢查其超集合𝑃⋃ 𝑥 。其中狀況 一、四及五,可確定 P 目前的狀態並未發生改變,不需對 SCt+1(P)與 SCmin 進行比 較,但是𝑃⋃ 𝑥 仍有可能發生狀態變動,故仍需遞迴探勘檢查 P 的超集合。 <2> 𝑃⋃ 𝑥 不可能發生狀態改變:如表 3.2 中的狀況八,由於 P 在 t 及 t+1 皆為非 常見項目集,𝑃⋃ 𝑥 為 P 的超集,因此𝑃⋃ 𝑥 在 t 及 t+1 亦必為非常見,不可能發 生狀態變動,因此在此種狀況下便不需再對 P 的超集合進行遞迴探勘檢查。 在必頇對 P 的超集合進行遞迴探勘檢查的情況下,CV-SCD 演算法會對 Delta-Tree 建立 P 的 conditional Delta-tree。建立 P 的 conditional Delta-Tree 時,會 利用 HeaderTable 中所儲存該項目對應節點所形成的串列,以及各節點對其父節 點的連結,向樹之根節點方向取得由樹之根節點到該項目之父節點,途中經過之 各項目所形成的資料集,以類似將資料集加入 Delta-Tree 的方式加入至 conditional Delta-Tree 中,而此資料集的變動次數即為該項目之節點所記錄的次數。如果建 立出來的 conditional Delta-Tree 為空樹,也就是不包含任何資料項集的資料,表 示已經沒有任何項目集產生變動,因此也不必建立 conditional Base-Tree。如果 22.

(31) conditional Delta-Tree 不為空樹,則繼續建立 conditional Base-Tree。 建立 P 的 conditional Base-Tree 時,會先根據在 conditional Delta-Tree 中出現 的項目來決定一項目是否會被新增至 conditional Base-Tree 的節點中。如果沒有出 現在 conditional Delta-Tree 中的項目,表示該項目以及由此項目所組成的項目集 沒有出現變動,因此在建立 conditional Base-Tree 時,便可以藉由移除此一項目來 減少 conditional Base-Tree 所需建立的節點數,加速探勘的進行。建立 conditional Base-Tree 的方法同樣是利用 HeaderTable 中所儲存該項目對應節點所形成的串列, 以及各節點對其父節點的連結,向樹之根節點方向取得由樹之根節點到該項目之 父節點,途中經過的各項目所形成的資料集,去除此資料集中沒有出現在 conditional Delta-Tree 中的項目後,再以類似將資料集加入 Base-Tree 的方式加入 至 conditional Base-Tree 中,而此資料集的出現次數為該項目之節點所記錄的次 數。 為避免重複檢查相同的項目集,我們假設 P 只會與小於 P 中各項目之字母順 序的項目進行組合,因此 P 之 conditional Delta-Tree 及 conditional Base-Tree 中的 各項目之字母順序皆會小於 P 中各項目之字母順序,如項目 B 只會與 A 進行組 合成為 AB,而項目 C 可與 A、B 進行組合而得到其超集合為 AC、BC,而 BC 可再與 A 組成其超集 ABC。P 的 conditional Delta-Tree 的 HeaderTable 中項目 x 的計數值對應到sup1t 𝑃⋃ 𝑥 ,而由在 P 的 conditional Base-Tree 的 HeaderTable 中項目 x 的對應次數可得到sup1t 𝑃⋃ 𝑥 ,並判斷𝑃⋃ 𝑥 在 CTWt 是否為常見項目 23.

(32) 集。此時將𝑃⋃ 𝑥 視為表 3.2 中的 P,即可判斷𝑃⋃ 𝑥 是否可能發生狀態變動,並 決定是否需要繼續遞迴建立 conditional Delta-Tree 及 conditional Base-Tree。當所 有遞迴動作皆停止時,即可得出所有的狀態變動項目集。. [範例 3-2] 以圖 3.1(c)所示之 Base-Tree 及圖 3.2(c)之 Delta-Tree 為例,在 SCmin 設為 5 的 狀況下說明探勘過程。 以出現在 Delta-Tree 之 HeaderTable 中的各項目檢查情況整理如表 3.3 所示, 在取得 SCt(P)並計算 SCt(P)+ sup1t 𝑃 後,可找出項目集{A}、{E}皆為非常見狀態 變動項目集,項目{C}為常見狀態變動項目集。由於這 5 個項目集的狀況皆必頇 繼續檢查其超集合,因此分別對這 5 個項目集建立其 conditional Base-Tree 及 conditional Delta-Tree。以下對各項目集建立 conditional tree 進行說明,並對其超 集是否可能發生狀態變動進行討論。. 表 3.3. 項目檢查情況. 項目. 符合之狀況 編號. sup1t 𝑃. SCt(P). SCt(P)+ sup1t 𝑃. 狀態變動. A. 狀況二. 2. 4. 非常見常見. B. 狀況一. 1. 9. 6 不需計算. C. 狀況七. -4. 8. D. 狀況四. E. 狀況三. 0 5. 7 ×. 24. 仍保持為常見 常見非常見. 4 不需計算. 仍保持為常見. 5. 非常見常見.

(33) (a) B conditional Base-Tree. (b) B conditional Delta-Tree. 圖 3.3 B-conditional Base-Tree 及 B-conditional Delta-Tree. 對 A 建立其 conditional Delta-Tree 時,可以得到一棵不包含任何項目集的空 樹,因此不需再建立 conditional Base-Tree 對 A 之超集合進行檢查。對 B 建立其 conditional Base-Tree 及 conditional Delta-Tree,結果分別為圖 3.3 中(a)及(b),由圖 中可得知 B 之超集 AB 的 SCt(AB) = 4 為非常見項目集,加上sup1t 𝐴𝐵 =2 後成為 常見項目集,故 AB 符合狀況二,為一非常見狀態變動項目集。接下來再對 AB 遞迴建立 conditional Delta-Tree,AB 之 conditional Delta-Tree 一樣為一棵不包含 任何項目集的空樹,因此不需再繼續對 AB 之超集合進行檢查。 接下來對 C 建立其 conditional Delta-Tree,其結果如圖 3.4(c)所示。在建立其 conditional Base-Tree 時,會移除沒有在 conditional Delta-Tree 中出現的項目,因 此原本建立的 conditional Base-Tree 之結果為圖 3.4(a),移除沒有在 conditional Delta-Tree 中出現的項目後的 conditional Base-Tree 之結果為圖 3.4(b)。由圖中可 得sup1t 𝐵𝐶 = −2,且 BC 在 conditional Base-Tree 中為一非常見項目集,因此符 合表 3.2 中之狀況八,不需再進行遞迴探勘檢查其超集合。. 25.

(34) 圖 3.4 C-conditional Base-Tree 及 C-conditional Delta-Tree. (b) D-conditional Delta-Tree. (a) D-conditional Base-Tree. 圖 3.5 D-conditional Base-Tree 及 D-conditional Delta-Tree. 對 D 建立其 conditional Delta-Tree 及 conditional Base-Tree,並移除 conditional Base-Tree 中未包含在 conditional Delta-Tree 中之項目後,其結果如圖 3.5 所示。 26.

(35) 由圖 3.5 可得知,D 之超集 CD 的 SCt(CD) = 5 為常見項目集,加上sup1t 𝐶𝐷 = −1後 成為非常見項目集,故 CD 符合狀況七,為一常見狀態變動項目集。接下來由於 必頇再對 CD 之超集檢查是否有狀態上的變動,因此必頇遞迴建立其 conditional Base-Tree 及 conditional-Delta-Tree 進行檢查。而sup1t 𝐵𝐷 = 0,且 SCt(BD) = 2 為非常見項目集,因此符合狀況五,其超集可能有狀態上的變動。項目集 AD 之 sup1t 𝐴𝐷 = 1,表示變動次數總和新增 1,但是由於 conditional Base-Tree 中並沒 有包含此一項目集,因此此項目集在 CTWt 中的出現次數為 0,符合表 3.2 中的狀 況三,但是 SCt(AD)+ sup1t AD = 1 < 𝑆𝐶𝑚𝑖𝑛 仍為一非常見項目集,狀態上並沒有 產生變動,不需再檢查其超集。. 當狀態變動項目集探勘執行結束後,只需將 Delta-Tree 中記錄之各項目集及 其變動次數的資訊全數加入至 Base-Tree 中,並清空 Delta-Tree 中記錄之資料,此 時的 Base-Tree 即為紀錄時間 t+1 時滑動視窗內所有交易之結構,然後開始記錄下 1 個時間點內變動之交易於 Delta-Tree 中,當時間點到達 t+2 時,即可開始進行下 一次的狀態變動項目集探勘。 圖 3.6 為一個呼叫 CV-SCD 演算法的主程式範例。在 1、2 行首先初始化 Base-Tree 及 Delta-Tree 為兩棵空樹,4 到 7 行表示在滑動視窗未滿時,同時也將 滑動視窗內交易區塊之交易新增到 Base-Tree 中。當滑動視窗已滿,並再度新增 一個單位交易區塊,第 9 行表示將滑動視窗中時間點最早的單位交易區塊加入至 27.

(36) Delta-Tree 中,並且由於是過時的交易資料,因此變動次數減 1。第 10 行表示將 新加入滑動視窗中的單位交易區塊加入至 Delta-Tree 中,並將變動次數加 1。第 12 行建構一個空的陣列,做為探勘狀態變動項目集之用。第 13 行表示目前檢查 的項目集長度,初始化長度為 1。第 14 行開始呼叫 CV-SCD 函式,探勘狀態變動 項目集。第 15 行則將 Delta-Tree 中記錄之各交易資料合併至 Base-Tree 中,並在 第 16 行將 Delta-Tree 中所儲存之資料清空,做為下個時間點的探勘使用。. Input: sliding window size w, SCmin void main() 1. Initial Base-Tree = Φ 2. Initial Delta-Tree =Φ 3. t = 0 4. while( t <= w ) 5. insert(+) transactions in Bt into Base-Tree 6. t ++ 7. End while 8. while( true ) 9. insert(-) transactions in Bt-w+1 into Delta-Tree 10. insert(+) transactions in Bt into Delta-Tree 11. t ++ 12. item_array P = empty item_array 13. depth = 1 14. CV-SCD( Delta- Tree, Base-Tree, SCmin, depth, P ) 15. Base-Tree.merge( Delta-Tree ) 16. Delta-Tree.clear() 17. End while 圖 3.6 呼叫 CV-SCD 之主程式. 28.

(37) 圖 3.7 為 CV-SCD 演算法的虛擬碼,其中 SCmin 為使用者所訂定的最小支持度 計數門檻值,depth 代表目前正在檢查的項目集的長度。本方法會利用遞迴的方 式不斷組合成更長項目集,直到不再滿足遞迴的條件才停止。 Delta-Tree 及 Base-Tree 的 HeaderTable 皆記錄資料中所出現的各單一項目,exist()函式則會檢 查是否存在此單一項目,如果存在則回傳 true,否則回傳 false。在圖 3.7 的演算 法中,第 3 行為利用目前在 Delta-Tree 中檢查之項目 I 來組成更長項目集 P,4 到 8 行主要為檢查目前的項目是否存在 Base-Tree 之 HeaderTable 中,如果有則獲得 項目 I 在 Base-Tree 中的出現次數,否則設為 0。9 至 13 行判斷其變動前後是否為 一狀態變動項目集,如果產生狀態變動則輸出此項目集。14 行表示滿足繼續遞迴 檢查其超集合的條件,因此在 15、16 行建構 P 之 conditional Delta-Tree 及 conditional Base-Tree 進行超集合的檢查,並在第 17 行中遞迴呼叫 CV-SCD 函式。. 29.

(38) Input: Base-Tree & Delta-Tree, SCmin, depth = 1 Output: 狀態變動項目集 P CV-SCD( Delta-Tree, Base-Tree, SCmin, depth, P ) 1. For i = 1 To Delta-Tree.HeaderTable.size 2. Df = Delta-Tree.HeaderTable[i].frequency 3. P[depth] = Delta-Tree.HeaderTable[i].item 4. If ( Base-Tree.HeaderTable.exist( Delta-Tree.HeaderTable[i].item ) ) 5. Bf = Base-Tree.HeaderTable[i].frequency 6. Else 7. 8. 9. 10. 11. 12. 13. 14. 15.. Bf = 0 End If If ( Bf >= SCmin && Bf+Df < SCmin ) output P with status change f i Else If ( Bf < SCmin && Df + Df >= SCmin ) output P with status change i  f End If If ( !( Bf < SCmin && Df < 0 ) ) CDT = construct conditional Delta-Tree of P. 16. CBT = construct conditional Base-Tree of P 17. CV-SCD( CDT, CBT, SCmin, depth+1,P ) 18. End If 19. End For 圖 3.7 CV-SCD 演算法之虛擬程式碼. 30.

(39) 第四章 狀態變動項目集儲存及分析. 本章將說明當探勘出狀態變動項目集後,如何將這些資訊儲存起來;而儲存 狀態變動項目集的相關資訊後,要如何分析這些資訊,進一步讓使用者對狀態變 動的項目集之變動特性有更進一步的概念。. 4-1 狀態變動資料項集快照 狀態變動項目集可能隨著時間呈現出不同的特性,例如有某些項目集的狀態 變動可能具有週期性,每隔一定時間就會由常見變為非常見,或由非常見變為常 見;有些項目集可能很少產生狀態變動,因此一旦產生變動可能就需要特別注意 是否有異常狀況發生。有些項目集的狀態變動間隔原本有固定的模式,後來變動 的頻率卻逐漸趨於平緩或變得較為劇烈等狀況。因此對於這些在不同時間點探勘 出的狀態變動項目集,隨時間進行進一步的總結分析,將提供更多關於該項目集 狀態變動特性資訊。 若將執行探勘狀態變動項目集,則每個時間點都會有和前時間點相較下之狀 態變動項目集被找出來。為了隨時間進行狀態變動項目集的總結分析,本論文方 法提供由使用者訂定一個快照間隔 SI,蒐集每 SI 次進行狀態變動項目集探勘出來 的項目集,以及各項目集發生變動的時間點資訊,稱為一個狀態變動項目集快照。 𝑡. 如果目前時間點 t 為 SI 的倍數,則會建立狀態變動項目集快照S(𝑆𝐼 ),其中所記錄 31.

(40) 的是[t-SI+1, t]這段時間區間內所探勘出來的狀態變動項目集及其發生狀態變動的 時間點。 為方便項目集的搜尋比對,我們以一個相同字首樹的結構來記錄一個快照內 各時間點所產生的變動項目集,每個項目集在此區間內第一次發生狀態變動的情 況,及每次發生狀態變動的時間點,都記錄在對應該項目集之節點路徑下的葉節 點中。本儲存設計的觀點是:如果每次探勘的結果都分別記錄在不同棵相同字首 樹上,則需要對項目集每次發生變動的時間點來進行資料分析時,就要到各個相 同字首樹上進行搜尋,將會相當耗費時間。由於快照儲存的是一段間隔內產生的 狀態變動項目集,對於在間隔內有多次出現狀態變動的項目集可以共用相同字首 樹內同一條路徑,降低所需儲存空間。 圖 4.1(a)所示為假設從時間點 1 到時間點 10 這段期間內,每個時間點相較於 上個時間點所探勘出的狀態變動項目集之範例。將快照間隔 SI 設為 10 時,圖 4.2(b) 所示為時間點 10 時,所記錄之時間點 1 到時間點 10 的狀態變動項目集快照,以 相同字首樹結構儲存的結果。其中初次變動情況以 if 表示由非常見變為常見, fi 表示由常見變為非常見。項目集 AB 在此區間第一次發生狀態變動是在時間 點 5 時由非常見變為常見,另外時間點 6、時間點 7、時間點 9 也都產生了狀態 上的變動,意指 AB 在時間點 6 及 9 是由常見變為非常見,而在時間點 5 和時間 點 7 一樣是由非常見變為常見。而項目集 CE 在此區間只發生一次狀態變動,在 時間點 1 時由常見變為非常見。 32.

(41) [範例 4-1] 變動 項目集. 狀態. 變動 時間點. CE. fi. 1. EF. fi. 1, 6, 9. E. fi. 5, 7. AC. fi. 2, 3, 8. AB. fi. 5, 6, 7, 9. DH. if. 3, 6, 9. D. if. 1, 4, 5, ,6 7, 10 (a). 圖 4.1. (b) 記錄 t1~t10 間發生的狀態變動項目集之快照. 4-2 項目集變動特性分類 當以快照記錄一段間隔內的狀態變動項目集,便可以隨時利用變動時間點來 𝑡. 進行資料項集的變動特性分析。對於一個項目集 P 其在狀態變動項目集快照S(𝑆𝐼 ) 中所記錄的狀態變動時間點集合 𝑡1 , 𝑡2 , … , 𝑡n 以 CTt(P)表示,此外,以ΔCT(P)表 示項目集 P 之各狀態變動時間點與前一狀態變動時間點之差值所形成的集合,因 此∆CT 𝑃 = dt i dt i = t i+1 − t i , i = 1, … , n − 1 。由項目集狀態變動時間點,我們 可 計 算 出 項 目 集 狀 態 變 動 的 時 間 間 隔 平 均 avg ∆CT t P 及 時 間 間 隔 變 動 率 cr ∆CT t P 如下:. 33.

(42) t. avg ∆CT P. cr ∆CT t P. 1 = n−1. =. n−1. dt i , 其中dt i ∈ ∆CT t P … … (1) i=1. dev ∆CT t P avg ∆CT t P. =. 1 n−1. n−1 i=1. dt i − ∆CT t P. avg ∆CT t P. 2. … … (2). 其中對於項目集之狀態變動的間隔變動率,我們計算的值為相較於項目集自 身的變 動幅 度, 因此 計算時 以 ∆CT t P 的標準 差 dev ∆CT t P 除上項目 集之 avg ∆CT t P ,表示項目集狀態變動間隔變動幅度。 當變動時間點愈來愈多,為了不將所有變動時間點都儲存下來,對於一個資 n−1 i=1 dt i 、時. 料項目集 P 在一個變動快照可以只儲存各變動時間間隔總和sum = 間間隔平方和sqr_sum =. 2 n−1 i=1 dt i 及時間間隔個數. ∆CT t P 。而狀態變動項目集. 的時間間隔平均avg ∆CT t P 及時間間隔變動率cr ∆CT t P 的計算式可採用以 下式(3)及式(4)計算出來:. t. avg ∆CT P. cr ∆CT t P n−1 i=1. =. =. 1 = n−1. n−1. dt i = i=1 t. =. dev ∆CT P avg ∆CT t P. =. sum , 其中dt i ∈ ∆CT t P … … (3) ∆CT t P. 1 n−1. dt i 2 − 2 × dt i × avg ∆CT t P ∆CT t P. n−1 i=1. dt i − avg ∆CT t P. 2. avg ∆CT t P + avg2 ∆CT t P. avg ∆CT t P sqr_sum − 2 × sum × avg ∆CT t P + ∆CT t P × avg2 ∆CT t P ∆CT t P avg ∆CT t P 34. … (4).

(43) 由(3)式及(4)式中可以得知,不需儲存狀態變動項目集的每個變動時間點,只 要藉由儲存 sum 、sqr_sum 及 ∆CT t P 的資訊,即可計算出avg ∆CT t P 和 cr ∆CT t P 。 𝑡. 接 下 來針 對 S(𝑆𝐼 ) 所 儲存 之各 狀 態變 動項 目集 及計 算 出之 時間 間隔平均 avg ∆CT t P 、時間間隔變動率cr ∆CT t P ,本論文利用 k-means 分群演算法將 𝑡. S(𝑆𝐼 )中各項目集之avg ∆CT t P 值分成兩群,區別出狀態變動時間間隔相對較短 (Short)及狀態變動時間間隔相對較長(Long)的兩群;對於各項目集之 cr ∆CT t P 同樣也以 k-means 分群演算法分成兩群,區別出狀態變動時間間隔相對較為穩定 (Stable)及狀態變動時間間隔相對較不穩定(Unstable)的兩群。組合一個項目集 P 的avg ∆CT t P 和cr ∆CT t P 在這兩個分群中的結果,可將 P 分成變動時間間隔 短而穩定(SS),變動時間短而不穩定(SU),變動時間間隔長而穩定(LS),變動時 𝑡. 間間隔長而不穩定(LU)四類。對於在S(𝑆𝐼 )中只發生一次狀態變動的項目集,由於 無法計算狀態變動時間間隔,因此狀態變動的時間間隔平均為無限大,狀態變動 的時間間隔標準差不存在,因此變動率也不存在,故自成一類,稱為狀態演進 (Status Evolution),簡稱 SE。另外,當項目集在快照記錄期間內只出現兩次狀態 變動,或是產生狀態變動的時間間隔皆相同,此情況下能夠計算出狀態變動的時 間間隔平均,但其狀態變動的時間間隔標準差的值等於 0,變動率也等於 0,我 們將此類型的狀態變動項目集也另外歸成一類,稱為週期變換(Periodic Shift),簡 t. 稱 PS。因此對於S(SI )中的狀態變動項目集共可分為六個類別,如表 4.1 所列。 35.

(44) 表 4.1 狀態變動項目集類別 類別名稱. 類別分類規則 t. 類別 SE. avg ∆CT P. 類別 PS. cr ∆CT t P. = ∞,cr ∆CT t P 無法計算 =0. t. 類別 SS. avg ∆CT P 相對較小且cr ∆CT t P 相對較小. 類別 SU. avg ∆CT t P 相對較小且cr ∆CT t P 相對較大. 類別 LS. avg ∆CT t P 相對較大且cr ∆CT t P 相對較小. 類別 LU. avg ∆CT t P 相對較大且cr ∆CT t P 相對較大. [範例 4-1]. 表 4.2. 計算 t1~t10 狀態變動項目集快照之avg ∆CT t P 及cr ∆CT t P. 狀態變動項目集. avg ∆CT t P. cr ∆CT t P. AB. 1.3. 0.3. AC CE. 3 ∞. 0.7 ×. D. 3. 0. DG. 1.8. 0.5. E. 2. 0. EF. 4. 0.2. 根據圖 4.1 所示之狀態變動資料項集快照,計算快照中記錄的各項目集之 avg ∆CT t P 及cr ∆CT t P 所得的結果如表 4.2 所示。而圖 4.2 為根據各項目集 之avg ∆CT t P 及cr ∆CT t P 分佈,分別以 k-means 演算法,分群後對應到表 4.1 所示之類別。例如狀態變動項目集 CE 由於其avg ∆CT t P. 36. = ∞且cr ∆CT t P 無.

(45) 法計算,故為類別 SE。而狀態變動項目集 D 及 E 經由計算後得出cr ∆CT t P. = 0,. 故此兩個項目集為類別 PS。狀態變動項目集 AB、AC、DG、EF 在經由 k-means 分別對其avg ∆CT t P 及cr ∆CT t P 分類後,可得 AB 為類別 SS,EF 為類別 LS, DG 為類別 SU,AC 為類別 LU。. SU. LU. LS SS PS. 圖 4.2. 狀態變動項目集之分佈與分類. 4-3 快照儲存結構 對於每個儲存下來的狀態變動項目集快照,使用者可以藉由指定一個時間區 間 i, j ,i ≤ j,表示希望得知在這段時間內之狀態變動項目集的總結分類結果, 因此我們必頇整合這段期間內所記錄的快照資訊,才能採用 4.2 節所述方式進行 總結特性分析。如果 i,j 不為 SI 的倍數,則選擇離 i 或 j 最接近的狀態變動項目 集快照進行資訊的統整。令在時間區間 i, j (i ≤ j)之間的快照為 Sm , Sn ,m = 37.

(46) i SI. ,n =. j SI. + 1。為整合不同快照間各狀態變動項目集之狀態變動時間間隔平. 均及變動率,計算方式如下: avg ∆CT t P cr ∆CT t P. S m ,S n. avg. 其 中 sum S m ,S n = ∆CT t P. sum S m ,S n … … (5) N S m ,S n. =. sqr _sum S ,S −2× sum S ,S × avg ∆CT t P m n m n. Sn x=S m. S m ,S n. =. Sn x=S m. S m ,S n. +N S ,S × avg 2 ∆CT t P m n. N S ,S m n ∆CT t P S ,S m n. S m ,S n. ……(6). sumx , sqr_sum S m ,S n =. Sn x=S m. sqr_sumx , N S m ,S n =. x。. 隨著時間會累積愈來愈多的狀態變動項目集快照,當產生的歷史快照數量太 多時,便會面臨到儲存空間有限的問題。因此將離目前時間點愈遠的快照資料與 鄰近快照合併,使該快照對應到較長區間內資料的概況,以便有效節省儲存空間。 本論文引用論文[8]中所提出之金字塔式時間框架(pyramidal time frame)做為儲存 快照的架構,此架構以分層的方式儲存記錄不同區間的快照。其概念是愈接近目 前時間點,使用者對資料解析度的要求愈高,對愈久遠的資料則能接受較為概括 的結果,方法如下: 將每個快照依時間前後從 1 依序編號,則此儲存架構會運用以下兩個參數決 定相鄰兩件隔儲存層級中對應時間間隔的倍數值,以及每一層級可儲存的快照 數:. 38.

(47) (1) α α ≥ 1 :第 0 層中的每個快照對應到快照間隔 SI。第𝑖層(𝑖 ≥ 0)中的每個快 照對應到的快照間隔為𝑆𝐼 × α𝑖 ,也就是合併α𝑖 個原基本快照的結果。 (2) ℓ ℓ > 1 :表示每一層級中可儲存αℓ + 1個快照。 以下說明金字塔式時間框架儲存快照之方法:首先每一時間間隔 SI 所產生的 基本快照會儲存在第 0 層中,但是由於每一層級中可儲存的快照數量是有限制的 (αℓ + 1個),因此當層級𝑖(𝑖 ≥ 0)已經到達可儲存的快照最大數量,又有新的快照 必頇儲存在該層級中,則必頇對該層級中最前面的α個快照(對應編號為 Sm, Sm+1, …, Sm+d-1)進行資料合併,並儲存到層級𝑖 + 1中,編碼為 Sm+d-1。快照合併的 方法同樣是利用公式(5)及公式(6)對儲存在不同快照中的狀態變動項目集資訊進 行avg ∆CT t P. S m ,S m +d −1. 與cr ∆CT t P. S m ,S m +d −1. 的合併,而快照 Sm, Sm+1, …,. Sm+d-1 則會從層級𝑖中移除。. [範例 4-2] 當α = 2,ℓ = 2,每一層級可容納的快照個數αℓ + 1 = 22 + 1 = 5,隨著快 照資料不斷輸入,其快照儲存架構內容如圖 4.3 所示。 圖 4.3(a)顯示當時共儲存 5 個快照時的記錄情形,當只有儲存這 5 個快照時, 這些快照都會依序記錄在層級 0 中。當必頇儲存快照 S6 時,由於層級 0 已到達 可儲存快照數量之最大值,因此將層級 0 的前 2 個快照進行合併,也就是將 S1 合併至 S2 中,並將合併後的 S2 儲存至層級 1 中,層級 0 中所儲存之 S1、S2 即 39.

(48) 被移除,如圖 4.3(b)中所示。接下來當必頇儲存快照 S7 時,由於層級 0 仍有空間 儲存快照,因此只要直接將 S7 儲存至層級 0 中即可。之後當必頇儲存其他快照 時,皆以類似的方法進行合併及儲存的動作,圖 4.3(d)顯示在記錄 15 個快照後層 級 0 及層級 1 中的儲存情形,兩層級皆已到達可儲存快照數量之最大量。因此當 快照 S16 輸入時,則先從層級 0 中將 S11 合併至 S12,並移往層級 1。此時層級 1 的 S2 也必頇合併至 S4,並移往層級 2 儲存,儲存結果如圖 4.3(e)所示。. 層級. 快照編號. 層級. 0. S1, S2, S3, S4, S5. 0. 1. 1. 2. 2 (a)記錄 5 個快照後. 快照編號. 層級. 快照編號. S3, S4, S5, S6. 0. S3, S4, S5, S6, S7. S2. 1. S2. 2 (b)記錄 6 個快照後. (c)記錄 7 個快照後. 層級. 快照編號. 層級. 0. S11, S12, S13, S14, S15. 0. S13, S14, S16. 1. S2, S4, S6, S8, S10. 1. S6, S8, S10, S12. 2. S4 (e)記錄 16 個快照後. 2 (d)記錄 15 個快照後 圖 4.3. 快照編號. 快照記錄情形. 當使用者指定要得知時間區間 i, j = 85,113 之間的快照資訊,且 SI 為 10, 則計算得知m =. i SI. = 9,n =. j SI. + 1 = 12,表示為 S9 , S12 之間的快照資訊,因. 此我們必頇整合這段期間內的快照資訊給使用者。對每一快照所儲存之項目集時 間間隔平均及變動率的整合,同樣利用公式(5)及公式(6)對快照中各項目集進行計 算即可。 40.

(49) 第五章 實驗效能評估. 本章以實驗的方式來評估本論文所提出 CV-SCD 演算法的執行效能,並以論 文[1]提出的 FP-growth 演算法在每個時間點進行常見項目集探勘後,與上一個時 間點所探勘出之常見項目集進行比對,找出狀態變動項目集來比較執行效率(以 fpg 表示)。程式開發是採用 Microsoft Visual Studio 2005,以 C++程式語言實作, 實驗環境的作業系統為 Microsoft Windows XP,系統配備為 Pentium(R) IV 3.00GHz 的中央處理器,及 2.99GHz, 1.99GB 的 RAM。. 5-1 實驗測詴資料. 表 5.1. 模擬資料集參數說明. 參數. 說明. T. 每筆交易平均包含項目個數. I. 最大常見項目集的平均長度. D. 交易資料筆數. N. 資料集中所包含項目種類個數. 實驗評估所使用的交易資料分為兩種:模擬資料及實際資料。模擬資料的部 分是利用 IBM 資料產生器[21]產生,產生之資料集中各參數所代表意義如表 5.1 所示。而實際資料 BMS-POS 資料集則為 KDD CUP 2000 所提供的資料[22],其 包含一電子銷售商針對一位顧客數年的販賣資料,資料集中每一筆交易都是一次 41.

(50) 交易行為中的購買紀錄。 以下皆以 Tx.Iy.Dmk(Nn)的方式來表示實驗所採用的模擬資料集之參數設 定。. 5-2 實驗評估 在此部分的實驗,分別針對改變滑動視窗大小、改變新增及過時資料筆數、 及改變支持度對執行時間的影響進行探討,所使用的實驗資料集為 T5I4D30k(N200)。每 100 筆交易視為一個單位交易區塊來模擬資料流資料。. 圖 5.1. 改變模擬資料集之滑動視窗中交易資料筆數執行時間結果. [實驗一] 本實驗探討改變滑動視窗中包含交易資料筆數不同時,對 fpg 及 CV-SCD 演算法執行時間所造成的影響。 42.

(51) 此實驗中 Smin 設為 0.01,圖 5.1 中顯示在不同的滑動視窗大小下,分別以 fpg 及 CV-SCD 進行狀態變動項目集探勘一次的平均執行時間。圖中的結果顯示,當 視窗愈大時,可能出現的不同常見項目集愈多,因此利用 fpg 進行探勘花費的時 間會愈多;而 CV-SCD 由於 Base-Tree 愈來愈大,所花費的時間雖然也有成長的 趨勢,但是相較之下成長幅度較 fpg 為低,約節省約一半的執行時間。. 圖 5.2. 改變模擬資料集之交易區塊中交易資料筆數的執行時間結果. [實驗二] 本實驗探討改變交易區塊中包含之資料筆數對 fpg 及 CV-SCD 執行時間 的影響。 此實驗中在固定滑動視窗有 2 萬筆交易資料,且 Smin 設為 0.01。由圖 5.2 顯 示之實驗結果得知,fpg 幾乎不受此項變因影響,這是因為當滑動視窗大小不變, 每個時間點要進行探勘的交易資料筆數都一樣多,因此探勘所花費的時間也相差 43.

(52) 不多。但是此項變因會影響 CV-SCD 中 Delta-Tree 的大小,隨著交易區塊中所包 含之資料筆數的增加,變動的資料也愈多,探勘狀態變動項目集的時間也因而隨 之增加。因此實驗結果顯示 CV-SCD 在變動資料集相較於滑動視窗中所包含的資 料筆數愈少的情況下,能愈有效率的探勘出狀態變動項目集。如單位交易區塊中 包含的交易筆數(block size)為 100 時,CV-SCD 的執行時間只約為 fpg 的三分之 一。. 圖 5.3. 改變模擬資料集之支持度的執行時間結果. [實驗三] 本實驗探討不同支持度對 fpg 及 CV-SCD 探勘狀態變動項目集執行時間 的影響。 此實驗中固定滑動視窗中有 2 萬筆交易資料,且交易區塊中固定包含 100 筆 資料。由圖 5.3 所顯示結果看出 fpg 隨著支持度愈小時,花費時間上升的幅度較 44.

(53) CV-SCD 快,這是由於當支持度愈小的時候,每個時間點所探勘出來的常見項目 集會愈多,因此探勘及比對時間也會隨之增加。此因素雖然也對 CV-SCD 的執行 時間有影響,但當 Smin 減少,CV-SCD 執行時間的增加幅度較小,在支持度設為 0.01 時,探勘所需時間約是 fpg 的一半,因此在 Smin 較小的情況下,愈能顯示出 CV-SCD 增進的執行效率。. 圖 5.4. 改變模擬資料集中平均交易長度的執行時間. 第二部分實驗則探討改變產生資料集之設定參數對探勘執行時間造成的影 響。 [實驗四] 本實驗探討資料集之參數固定為 I4D30k(N200),Smin 設定為 0.01 的情況 下,改變平均交易長度 T 觀察 fpg 與 CV-SCD 的探勘時間變化。. 45.

參考文獻

相關文件

For the data sets used in this thesis we find that F-score performs well when the number of features is large, and for small data the two methods using the gradient of the

This bioinformatic machine is a PC cluster structure using special hardware to accelerate dynamic programming, genetic algorithm and data mining algorithm.. In this machine,

To solve this problem, this study proposed a novel neural network model, Ecological Succession Neural Network (ESNN), which is inspired by the concept of ecological succession

Since Dolby AC-3(abbreviated as AC-3) is the main technology of the surrounding sound format, in this thesis, we proposes a data model for mining the relationship between

The purpose of this thesis is to propose a model of routes design for the intra-network of fixed-route trucking carriers, named as the Mixed Hub-and-Spoke

Thus, the proposed approach is a feasible and effective method for process parameter optimization in MIMO plastic injection molding and can result in significant quality and

Therefore, a new method, which is based on data mining technique, is proposed to classify driving behavior in multiclass user traffic flow.. In this study, driving behaviors

This study is aimed to investigate the current status and correlative between job characteristics and job satisfaction for employees in the Irrigation Associations, by