• 沒有找到結果。

相關規則探勘之延伸問題

在文檔中 圖書館借閱記錄探勘系統 (頁 28-37)

第二章 資料探勘相關研究工作

第三節 相關規則探勘之延伸問題

相關規則探勘延伸出各式各樣的問題,包括將項目分類加入探勘項目的廣義 相關規則探勘[18][19]、依照項目特性設定不同支持度的多重最小支持度相關規 則探勘[12][20]、相關規則更新[6][15] 及考慮交易項目序列順序的循序探勘[17]

等等問題,其解決方法和基本問題息息相關,且可以應用在更多不同的領域。

以下簡介本論文會應用到的二種延伸問題:廣義相關規則探勘及多重最小支 持度相關規則探勘。

2.3.1 廣義相關規則探勘(Generalized Association Rule Mining)

廣義相關規則是將項目分類 (Taxonomy) 的資訊加入相關規則探勘,一方面 可將與分類有關的資訊反映在相關規則探勘上,不會只侷限在項目相關規則,使 相關規則更有意義,另一方面還可得知不同階層間項目的關聯性。

廣義相關規則的正規敘述[18][19]如下:

令 I={i1,i2,… ,im} 為一個文字符號組成的集合 ,每個文字符號稱為一個項 目,由一個或一個以上的項目所組成的集合稱為項目集。令 J={j1,j2,… ,jp}為由 I 延伸之廣義項目(Generalized Items)的集合。令Γ為由文字符號 I 及其廣義項目 J 所組成的非環狀有向圖,Γ上的邊線(Edge)代表著 is-a 的關係,而Γ代表分類 (Taxonomy) 的集合。如果在Γ上有一邊線從 p 指向 c,我們則稱 p 為 c 的母體 (Parent),稱 c 為 p 的子體(Child) ,也表示 p 為 c 的廣義延伸(Generalization)。如 果在有遞移封閉性(Transitive Closure) 的Γ上,有一邊線從 xˆ指向 x,我們則稱 xˆ 為 x 的祖先(Ancestor),稱 x 為 xˆ的後裔(Descendant)。令資料庫 D 是由一群交易 T 所組成的集合,每個 T 為一項目集,代表交易記錄,T ⊆ I,每個交易記錄有其

唯一的識別碼,稱為 TID。

一個廣義相關規則(Generalized Association Rule)表示成 X ⇒ Y,其中 X ,Y ⊆ I∪J, X ∩ Y = ∅ ,而且 Y 中項目並無包含 X 中任何項目的祖先。若 D 中包含 X 的交易裡有 c%也同時包含了 Y,我們就說規則 X⇒Y 的確信值(Confidence)為 c%;如果 D 裡包含 X∪Y 的交易記錄有 s%,我們就說規則 X⇒Y 的支持度(Support) 為 s%。條件限制 Y 中並無包含 X 中任何項目祖先的原因是規則 ”x=>ancestor(x)”

是保證 100%正確的,但是這樣的規則卻是已知且累贅的。廣義相關規則探勘定 義為:給定交易記錄資料庫 D 及分類Γ,在當中找出所有支持度和確信值大於 最小支持度跟最小確信值的廣義相關規則,其中最小支持度與最小確信值的門檻 值由使用者給定。

廣義相關規則探勘,直覺地來說,將交易中的項目加上分類項目,再利用探 勘相關規則演算法探勘即可。如圖 2 - 3 - 8,Srikant 等學者所提出的基本演算法 [18],將交易中每個項目的廣義項目加入交易,並移除同筆交易中重複出現的廣 義項目,而加入廣義項目的交易稱為延伸交易(Extended Transactions) 。最直覺 的探勘方法即是直接將延伸交易利用相關法則演算法找出廣義相關法則。

圖 2 - 3 - 8:廣義相關規則基本演算法 [18]

廣義相關規則基本演算法的第一步驟,先找出長度為 1 的頻繁項目集。其中 包括分類中的葉節點(Leaf Node,即一般項目)及內部節點(Internal Node,即廣義 項目)。只要一般項目及廣義項目的支持度大於使用者定義的最小支持度都是屬 於頻繁項目集。之後,就如同 Apriori [3]的步驟,每次疊代利用前次頻繁項目集 找出候選項目集,並且掃瞄每筆交易及其對應的廣義項目(即延伸交易),找出各 個項目的支持度。

然而,廣義相關規則基本演算法並不夠有效率,可再利用廣義關聯法則及分 類的特性進一步地改善廣義關聯演算法,因此 Srikant 等學者還提出三個可以使 基本演算法最佳化的規則,發展出累積演算法(Cumulate)[18]。

L1 := {frequent 1-itemsets};

k:=2; //k represents the pass number while(Lkφ) do

begi Ck := New candidate of size k generated from Lk-1. for all transactions tD do begin

Add all ancestors of each item in t to t, removing any duplicates.

Increment the count of all candidates in Ck that are contained in t.

End.

Lk := All candidates in Ck with minimum support.

k := k+1;

End while Result = ∪k Lk;

累積演算法的三個最佳化規則:

1. 過濾掉要加到交易中的廣義項目。沒有必要把分類中所有交易項目的廣 義項目加入交易裡。相反地,我們只需要將在疊代的某一輪(Pass) 有用 到的候選項目的廣義項目加入交易中即可。事實上,如果原本的項目並 不在任何頻繁項目集中出現,該項目亦可直接從交易中刪除。舉個例子 說明,假設”外套” 的母體是”外衣”, 而”外衣”的母體是”衣服”。令{衣 服, 鞋子}為唯一滿足最小支持度的項目集。之後,若任何交易中有包 含”外套”,以”衣服”取代”外套”。我們不需要在交易中保留”外套”這個 項目,也不需要在交易中加入”外衣”這個項目。

2. 預先計算廣義項目。與其在每次追蹤每一個項目時就瀏覽整個分類階 層,可以預先計算每一個項目的廣義項目集合。同時,我們也可以從分 類階層中丟棄那些從未出現在候選項目集的廣義項目。

3. 刪除項目集中同時包含一個項目及由該項目延伸而來的廣義項目。

利用以上的三個最佳化規則,再配合原本的廣義相關規則基本演算法,即是 廣義相關規則累積演算法。演算法如圖 2 - 3 - 9。粗體字是與基本演算法相異的 部分,即是應用最佳化規則改善演算法的部分。

圖 2 - 3 - 9:廣義相關規則累積演算法 (Cumulate) [18]

2.3.2 多 重 最小 支 持度 相關規則 探 勘 (Association Rule Mining with Multiple Minimum Supports)

決定相關法則實用與否的關鍵在於最小支持度設定的適當與否。一般的相關 規則探勘都是在單一支持度下產生規則,然而只用一個最小支持度並無法表示所 有不同特性項目的支持度。因此,Liu [12]等學者提出為不同特性的項目訂定不 同支持度的想法,並設計一個架構在 Apriori 上的多重最小支持度相關規則探勘 演算法,以符合現實情況之需求。

例如在超級市場的交易資料中,有些項目集雖然支持度較低(亦即較不常被 購買) ,但是可以產生相當高的利潤,若要把此類相關規則找尋出來,則必須將 最小支持度設定得比較低,以利產生有用的規則,如:

食物處理器 ⇒ 烹調平底鍋 (支持度 = 0.5%,確信值 = 60%)

Compute Γ*, the set of ancestors of each item, from Γ. //Optimization 2 L1 := {frequent 1-itemsets};

k:=2; //k represents the pass number while(Lkφ) do begin

Ck := New candidate of size k generated from Lk-1. If (k=2) then

Delete any candidate in C2 that consists of an item and its ancestor.

// Optimization 3

Delete any ancestors in Γ* that are not present in any of the candidate in Ck; // Optimization 1

for all transactions tD do begin

Add all ancestors of each item in t to t, removing any duplicates.

Increment the count of all candidates in Ck that are contained in t.

End.

Lk := All candidates in Ck with minimum support.

k := k+1;

End while Result = ∪k Lk;

但是假如所有項目都訂定同一的最小支持度,則下列沒有意義的規則也會產 生:

麵包,起司 ⇒ 牛奶 (支持度 = 5%,確信值 = 68%)

知道 5%顧客一起買此三種食品是沒有用的,因為這些食品在超級市場同時 被買的機率是十分頻繁,這樣的規則太繁瑣,並非是使用者會想要知道的。若要 使這類的規則變得非常有用,則需要將最小支持度定得比較高才有意義,但是相 對地會無法產生“食物處理器 ⇒ 烹調平底鍋”此類相關規則。由此例可以發 現,必須針對項目的特性設定不同的支持度,才能產生有意義且適用的相關規則。

多重最小支持度相關規則的定義和相關規則的差別在於前者修改了最小支 持度的定義。在多重最小支持度相關規則中,一個規則的最小支持度為出現在該 規則內所有項目的最小支持度之最小值。每一項目的最小支持度稱為最小項目支 持度(Minimum Item Supports),簡寫為 MIS。將經常出現的項目設定高的最小支 持度,將罕見但價值高的規則設定低的最小支持度,可以使規則更符合現實需求。

多重最小支持度相關規則探勘演算法的精神在於 Liu [12]等學者歸納出多重 最小支持度規則的特性:排序封閉的特性(Sorted Closure Property),此一特性是 從 Apriori 向下封閉的特性(Downward Closure Property) 延伸而來。Apriori 向下 封閉的特性是指若一個項目集滿足最小支持度,那麼它所有的子集也都會滿足最 小支持度。但是向下封閉的特性並不能適用於多重最小支持度相關規則探勘。例 如資料庫中有四個項目:1, 2, 3, 4;各自的最小支持度分別為 MIS(1)=10%, MIS(2)=20%, MIS(3)=5%, MIS(4)=6%。如果我們找出{1,2}的支持度為 9%,由於 並不滿足 1 或 2 的最小支持度,因此{1,2}不屬於頻繁項目集,對 Apriori 而言,

項目集{1,2,3}及{1,2,4}也會跟著不可能成為頻繁項目集,但是事實上項目集 {1,2,3}及{1,2,4}的最小支持度分別為 5%及 6%,是符合頻繁項目集的。因此,

Liu 提出了排序封閉的特性應用在刪除候選項目集上。

多重最小支持度相關規則演算法的關鍵在於探勘規則時必須將所有項目依 項目最小支持度遞增排列。如上例,四個項目的最小支持度分別為 MIS(1)=10%, MIS(2)=20%, MIS(3)=5%, MIS(4)=6%,就得排列成 3, 4, 1, 2。這樣的排列有助於 解決不符合 Apriori 向下封閉的特性。

令 Lk 表示頻繁 k 項目集的集合。每一個項目集 c 的表示法為,<c[1], c[2], … ,c[k]> ,且 MIS(c[1])≤MIS(c[2])≤ … ≤MIS(c[k])。Liu[12] 提出多重最 小支持度相關規則演算法 MSappriori 如圖 2 - 3 - 10(a)。

圖 2 - 3 - 10 (a):多重最小支持度相關規則探勘演算法[12]

首先,將所有項目依最小項目支持度遞增排列,存成 MS。掃瞄一次資料庫,

找出長度為 1 的候選項目集 F 及頻繁項目集 L1,其中候選項目集 F 的每個項目 都必須符合最小項目支持度之最小值 minMIS (以 minMIS 表示所有最小項目支 持度之最小值),而頻繁項目集 L1 的每個項目都必須符合各自的最小項目支持 度。類似 Apriori 的步驟,產生候選項目集。當欲產生長度為 2 候選項目集時,

必須利用長度為 1 的候選項目集,即還沒經過各自最小項目支持度測試的項目集 M=sort(I, MS); //according to MIS(i)’s stored in MS

F=init-pass(M, T); //make first pass over database T, only keep frequent 1- itemsets L1 := {<f>|f∈F, f.count≥MIS(f)};

for(k=2;Lkφ;k++) do // k represents the pass number if(k=2) then C2=level2-candidate-gen(F)

else Ck=candidate-gen(Lk-1) end

for each transaction tT do begin Ct=subset(Ct,t);

for each candidate c∈Ct do c.count++;

End.

Lk := {c∈Ck |c.count≥MIS(c[1])};

//itemset must larger than the minimum MIS end for

Result = ∪k Lk;

F,來找出長度為 2 候選項目集,以避免錯失一些項目集。

例如第一次掃瞄 100 筆的資料庫得到 3.count=6, 4.count=3, 1.count=9 及 2.count=25 。 而 MIS(1)=10%, MIS(2)=20%, MIS(3)=5%, MIS(4)=6%, minMIS=5%。因此,依序排列,F={<3>, <1>, <2>},而 L1={<3>,<2>}。因為 4.count 小於 minMIS,所以不在 F 中。而 1 不在 L1中是因為 1.count 小於項目 1 的最小 支持度 10%。而經由候選項目集 F,得到 C2={<3,1>,<3,2>}。(其中<1,2>不屬於 C2是因為<1,2>支持度只有 9,而項目集的最小支持度為 10%。) 若是經由 L1產 生 C2,則會因不適用 Apriori 的向下封閉特性,而失去<3,1>這個亦符合候選資格 的項目集。

產生 C2候選項目集 level2-candicate-gen(F) 步驟如圖 2 - 3 - 11(b)。

圖 2 - 3 - 12 (b):產生 C2候選項目集 level2-candicate-gen(F) 步驟[12]

至於產生其他候選項目集 candicate- gen(Lk-1)的方式,則是類似 Apriori 的

至於產生其他候選項目集 candicate- gen(Lk-1)的方式,則是類似 Apriori 的

在文檔中 圖書館借閱記錄探勘系統 (頁 28-37)