• 沒有找到結果。

第五章 可用性前 k 名擴展查詢字集探勘方法

5.2 UT- GROWTH 探勘演算法

5.2.2 UT-growth 演算法處理過程

探勘可用性前k名擴展查詢字集的重要依據是一個擴展查詢字集的可用性分 數值,以下定理表示常見擴展查詢字集的可用性分數值具有向下封閉的特性

(downward closure property)。

【定理5-2】

q的擴展查詢字集中,若給定一個大小為(ℓ − 1)的擴展查詢字集QE ,以1 及 大 小 為 ℓ 的 擴 展 查 詢 字 集QE , 若2 count QEq( 1)rcount QEq( 2)r

1 2

QEQE ,則u QEq( 2)u QEq( 1)。

(a) (b)

【證明】

根據 Apriori 特性,一個資料物件 o 若包含大小為 ℓ 的擴展查詢字集QE ,則2

必定會包含QE 的子集(subset)。因此2 o 必包含QE ,但是包含1 QE 之資料物件,1 則未必包含QE ,可得2 O QEq( 2)必為O QEq( 1)之子集。因此O QEq( 1)中之可用性 分數值前r高的資料物件之分數總和必大於等於O QEq( 2)之分數總和,由此可知

1 2

( ) ( )

q q

u QEu QE

根據上述定理,本方法先對每個 UT-tree 之 Header Table 中的標籤可用性分數 值前k名的標籤形成k個大小為 1 的擴展查詢字集。根據 3.2 節描述的封閉常見擴 展查詢字集的概念,在下一步驟檢查這些大小為 1 的擴展查詢字集,若具有相同 的可用性分數值及前 r 個相同的物件集合,則其個別形成的擴展查詢字集不為

CFQE,可先組合成較長的常見擴展查詢字集。探勘可用性前 k 名擴展查詢字集 的步驟如下:

步驟<1>: 從 UT-tree 之 Header Table 中,找出可用性分數前k名的標籤形成 大小為 1 的擴展標籤字集(1-QE)記錄在TempQEs中。

步驟<2>: 對TempQEs中每一個1-QE執行下列子步驟:

<步驟2-1>: 檢 查是 否 有 其他 1-QE之可 用性 分 數值uq(1-QE)及 包含 1-QE的前 r 個物件編號皆相同。若有 n 個 1-QE符合上述兩 個 條 件 , 則 將 這 些 1-QE 結 合 成 一 個 n- QE 加 入 至

TempResultQEs;若沒有相同分數值及物件編號,則將該1-QE 直接加入TempResultQEs

<步驟2-2>: 以num表示TempResultQEs中的QE個數。若num小於k個,

則再從 UT-tree 的 Header Table 中尚未被取用之可用性分數值 高的(knum)個標籤形成1-QE加入TempQEs,重複執行步驟

<2>;若TempResultQEs中已有kQE,則進入下一步驟探 勘。

步驟<3>: 將TempQEs中的QE加入優先佇列(priority queue, PQ),PQ中每次 會取出其中可用性分數最高的1-QE,以{ }t 表示。對原始 UT-treei 做投影,建立{ }t -conditional UT-tree,找尋和i t 在i Oq一起出現的次 數大於等於 r 之標籤tj,所需的條件如下所示:

步驟<3-1>: 比對{ }t -conditional UT-tree 之 Header Table 中的標籤i tj之可 用性分數和{ }t 相同者,若其前 r 個物件編號和{ }i t 也相同,i 則將{ , }t ti j 加入TempResultQEs中,並且從TempResultQEs中刪 除{ , }t ti j 的子集合。接著用遞迴方式以tj對 { }t -conditional i UT-tree 做投影形成{ , }t ti j -conditional UT-tree,再找{ , }t ti j -conditional UT-tree 中的標籤t 能與l { , }t ti j 形成更長的擴展查 詢字集,觀察其可用性分數值是否大於目前TempResultQEs之第 k 名的可用性分數值,若uq({ , , })t t ti j l 大於TempResultQEs

中 之 第 k 名 的 可 用 性 分 數 值 , 則 將 { , , }t t ti j l 加 入

Q E s

T e m p R e s u l t中且刪除原先的第 k 名,並繼續遞迴投影;若 ({ , , })

q i j l

u t t t 小於TempResultQEs中之第 k 名的可用性分數值,

則停止投影。

步驟<3-2>: 若{ }t -conditional UT-tree 中所能形成的i QE之可用性分數值 與t 之可用性分數不相等,但是比i TempResultQEs中第k名可 用性分數值要高,則將QE加入TempResultQE s。接著判斷

TempResultQE s中是否有QE的子集,若有QE的子集合且子集 合 的 可 用 性 分 數 等 於 (u QE)r , 則 移 除 子 集 合 ; 否 則 將

TempResultQEs中的第k名擴展查詢字集移除。

反覆執行步驟<3>直到PQ結束。

步驟<4>: 最後輸出即為目前所存取的TempResultQEs

【範例5-4】

承表 5.1 為例,假設給定r為 2,k為 3,圖 5.4(a)之 Header Table 中各標籤字 形成 1-QE的可用性分數值分別為{A}:1.7, {B}:1.7, {C}:1.1, {D}:1.6。取前三名分 別為{A}, {B}, {D}加入TempQEs。檢查發現{A}與{B}的可用性分數值相同且前兩 名的物件編號一樣,故可先結合成一個2-QE{A, B},並加入TempResultQEs,而{D}

沒 有 其 他 QE 有 相 同 的 可 用 性 分 數 值 及 前 2 個 物 件 編 號 , 則 直 接 加 入

Q E s

T e m p R e s u l t。此時TempResultQEs為{{ , },{ }}A B D ,其中包含的擴展查詢字集個

數小於 3,因此再找可用性分數值僅次於{A}、{B}及{D}的1-QE {C}加入TempQEs, 而{C}也找不到其他 1-QE有相同的可用性分數值及前 2 個物件編號,則{C}也加 入TempResultQEs,目前TempResultQEs {{ , },{ },{ }}A B D C ,接下來,將TempQEs

{{ },{ },{ },{ }}A B C D 依 其 可 用 性 大 小 加 入 至 優 先 佇 列 PQ , 此 時 PQ { } , { } , {A B D } , { }C

 。接著依序取PQ中的1-QE對圖 5.4(a)之 UT-tree 做投影,以

下將說明每一個投影處理結果:

<1>.以標籤 A 對 UT-tree 的投影結果如圖 5.4(b),可以得知uq({ , })A B 1.7、 ({ , }) 1.1

uq A C  及uq({ , })A D 1.6 , 對 照T e m p R e s u l tQ E s{ { , } , { } ,A B D { } }C 可以發現{D}與{A,D}、{C}與{A,C}的分數及前兩名標籤編號相同,

所 以 可 以 被 取 代 成 較 長 的 擴 展 查 詢 集 合 。 此 時 {{ , },{ , },{ , }}

TempResultQEsA B A D A C

<2>.以標籤 B 對 UT-tree 投影結果如圖 5.4(c),可以得知uq({ , })B D 1.1,並 沒有比目前TempResultQEs中的第三名可用性分數值 1.1 大,故不需更新

TempResultQEs

<3>.以標籤 D 對 UT-tree 的投影結果為空,故不需處理。

<4>.以標籤 C 對 UT-tree 投影結果如圖 5.4(d),可以得知uq({ , })C D 0.5及 ({ , }) 0.9

uq C F  ,皆比TempResultQEs中的第三名分數 1.5 小,故不需更 新TempResultQEs

<5>. 執 行 完PQ, 最 後 輸 出 為 目 前TempResultQEs 所 存 取 的 結 果 , 即 為

{ { ,A B} , { ,A D } , { ,A C 。 } }

圖 5.4 原始 UT-tree 和各標籤投影之 conditional UT-forest 與 Header Table (a)

(b)

(c)

(d)