第三章 以 H-Mine 為基礎之廣義相關規則演算法
第二節 多重最小支持度廣義相關演算法 H-Mine(MMS)
H-Mine(MMS)演算法是根據 H-Mine 演算法結合廣義相關規則演算法與多重 最小支持度演算法的概念,提出的延伸演算法。由於我們想要找出讀者借閱館藏 與類別的關聯性,但是因為在所有分類階層設定相同的支持度,不足以展現出分 類的效果,因此,提出 H-Mine(MMS) 演算法,將分類法的分類階層作進一步設 定,針對不同階層的類別給予不同最小支持度,探勘最適宜的相關規則。
Add generalized items to transactions. //Step1
H := {frequent 1-itemsets}; //Step2: get Header Table H H’ := re-adjust H; //Step3: delete redundant itemsets in H Construct frequent projections according to H’. //Step4 Link frequent projections and H’. //Step5
Mine(H’);
Function Mine(itemset H) {
For each itemset i∈H do begin //Step6
Delete any item in itemset i that consists of a taxonomy item and its ancestor.
Print out final frequent itemset i.
End.
Traverse_projected_db(H); //Step7 }
Function Traverse_projected_db(itemset I) {
For each itemset i∈I do begin Traverse i as i-projected database Generate new Header Table Hi. Re-adjust Header Table, get Hi’.
//Delete any item in Hi that which next item is the descendant of this item Link frequent projections and Hi’.
Mine(Hi’);
End.
}
H-Mine(MMS)演算法是利用 H-Mine 演算法的 H-Struct 資料結構,增加一個 儲存該項目最小支持度的欄位,再設定各標頭表格探勘時的最小支持度,改進成 為適用於多重最小支持度的廣義相關規則演算法。詳述步驟如下:
步驟一:根據項目隸屬分類加上各階層分類廣義項目,得到延伸交易。
步驟二:掃瞄整個交易資料庫,找出長度為 1 的頻繁項目候選集,即項目支 持度必須大於所有項目的最小項目支持度之最小值(minMIS)。此頻繁項目集即為 H-Struct(MMS)的標頭表格 H。H-Struct(MMS)標頭表格的項目包含四個欄位:項 目編號、項目支持度、最小項目支持度(MIS: Minimum Item Support)及連結位置。
步驟三:刪除多餘廣義項目,重新調整頻繁項目集,找出新標頭表格 Hre。 步驟四:將標頭表格 Hre 中的每一個頻繁項目之最小項目支持度值存入欄 位,並將標頭表格依照各項目的最小項目支持度遞增排列,得標頭表格 H’。
步驟五:將資料庫中每筆交易只保留經過調整的頻繁項目,即標頭表格 H’
內的頻繁項目集,並按頻繁項目集順序排列,得到每筆交易的頻繁投影。每一個 存 在 H-Struct(MMS) 中 的 頻 繁 項 目 包 含 二 個 欄 位: 項 目 編 號 及 連 結 位 置 。 H-Struct(MMS)即是包含標頭表格及頻繁投影的資料結構。
步驟六:將標頭表格 H’,找出每個頻繁投影的第一個項目與之對應連結,
則得到完整 H-Mine(MMS)的 H-Struct(MMS)資料結構。
步驟七:由於標頭表格 H’內仍有母體(祖先)與子體(後裔)同時存在,但二者 支持度卻不相同的情形,為確保在同一個結果頻繁項目集內不會有母體(祖先)及 子體(後裔)同時出現的情形,本步驟將要輸出的結果頻繁項目集進行刪減,確定 頻繁項目集是最精簡的。最後則測試是否符合各自的最小項目支持度,輸出標頭 表格中所有符合的頻繁項目集。
步驟八:類似 H-Mine(Generalized)方法,標頭表格 H’ 的每個項目可各自組
成一個投影資料庫。在每個投影資料庫中重複執行二、三、四、六及七的步驟:
找出頻繁項目集,其中各標頭表格探勘時的最小支持度為隸屬於各投影資料庫項 目的最小項目支持度(如:探勘 a 投影資料庫時,最小支持度為 a 的最小項目支 持度;探勘 bc 投影資料庫時,最小支持度為 b 的最小項目支持度),得到各自的 標頭表格 H、經由分類測試調整及重新排序成為 H’標頭表格、根據標頭表格重 新與頻繁投影連結、測試頻繁項目集找出精簡且符合各自最小項目支持度的結果 頻繁項目集、再遞迴一層層深入探勘,直到所有標頭表格的頻繁項目集完全找完。
以下舉例說明 H-Mine(MMS),為求精簡起見,本例中不將分類廣義項目加 入探勘,直接說明如何應用多重最小支持度的概念。下表前二欄是假設的交易 資料庫 TDB,項目 a, b, c, d, e, f, g, h, i, k, m的項目最小支持度分別為 3, 2, 3, 4, 4, 2, 2, 2, 2, 2, 2。
交易編號 項目集 頻繁投影 依最小項目支持度排序之頻繁投影 100 c, d, e, f, g, i c, d, e, g g, c, d, e
200 a, c, d, e, m a, c, d, e a, c, d, e 300 a, b, d, e, g, a, d, e, g g, a, d, e 400 a, c, e, h a, c, e a, c, e
表 3 - 2 - 1:多重最小支持度相關規則探勘之交易資料庫
首先,步驟一,掃瞄資料庫找出符合最小項目支持度之最小值 2 的單一項目 頻繁項目集,得到{a:3, c:3, d:3, e:4, g:2}。步驟二:將標頭表格所有項目依各最 小項目支持度遞增排列,則得到{g:2, a:3, c:3, d:3, e:4},即是 H-Struct(MMS) 的 標頭表格 H。步驟三:經由項目最小支持度測試,由於項目 d 不符合所要求的最 小項目支持度,故單一結果頻繁項目集為{g:2, a:3, c:3, e:4}。步驟四:找出頻繁 投影並將標頭表格與之連結,如圖 3 - 2 - 1,標頭表格 H 的項目 g 即是存放 g 佇 列第一個項目的指標(指向交易投影 100 中第一個項目 g 的指標) ,g 佇列則連結 100 及 300 二筆交易的投影。
4
4
結束以 gd 為首頻繁項目集的搜尋後,回到標頭表格 Hg,因為 e 為 Hg的最
足項目最小支持度,其他以 d 為首的項目集亦不可能符合,至於 e 投影資料庫不 需要探勘是因為 e 為最後一個項目,並不會有以 e 為首的項目集),即可找出所 有的結果頻繁項目集。
H-Mine(MMS)演算法如下,而粗體字則是改變原本演算法的部分。
Add generalized items to transactions. //Step1
H := {frequent 1-itemsets}; //Step2: H 的支持度為所有項目最小支持度的最小值 Hre := re -adjust H; //Step3: delete redundant itemset in H
H’ := sort Hre according to each item of MIS in ascending order; //Step4 Construct frequent projections according to H’. //Step5
Link frequent projections and H’. //Step6 Mine(H’);
Function Mine(itemset H) {
For each itemset i∈H do begin //Step7
Delete any item in itemset i that consists of a taxonomy item and its ancestor.
If the support of Itemset i is larger than the minimum item supports of all items in that itemset,
Print out frequent itemset i.
End.
Traverse_projected_db(H); //Step8 }
Function Traverse_projected_db(itemset I) {
For each itemset i∈I do begin Traverse i as i-projected database
Generate new Header Table Hi. //支持度為該項目的最小支持度, MIS(i) Re-adjust Header Table, get Hi’.
//Delete any item in Hi that which next item is the descendant of this item Link frequent projections and Hi’.
Mine(Hi’);
End }