第八章 網路資料庫之時間序列分析

79
1 第第第 第第第第第第第第第第第第

Upload: kyrie

Post on 25-Jan-2016

94 views

Category:

Documents


9 download

DESCRIPTION

第八章 網路資料庫之時間序列分析. 內容概要. 簡介 循序樣式探勘 (Sequential Pattern Mining) 一般化的循序樣式探勘* (Generalized Sequential Pattern Mining) 網頁瀏覽樣式探勘 (Web Traversal Pattern Mining) 總結. 簡介. 前一章介紹如何從網路交易資料庫發掘顧客所購買的物品之間的關係時,並沒有考慮 “交易時間” 這一層關係。 事實上,分析顧客購買物品的時間點可以提供許多有用的資訊。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第八章 網路資料庫之時間序列分析

1

第八章 網路資料庫之時間序列分析

Page 2: 第八章 網路資料庫之時間序列分析

2

內容概要 簡介 循序樣式探勘 (Sequential Pattern Mining) 一般化的循序樣式探勘 * (Generalized Sequent

ial Pattern Mining) 網頁瀏覽樣式探勘 (Web Traversal Pattern M

ining) 總結

Page 3: 第八章 網路資料庫之時間序列分析

3

簡介 前一章介紹如何從網路交易資料庫發掘顧客所購

買的物品之間的關係時,並沒有考慮 “交易時間” 這一層關係。

事實上,分析顧客購買物品的時間點可以提供許多有用的資訊。 例如,假設經過分析之後發現,顧客購買 “ PC 主機” 和 “螢幕” 之後,下一次會購買 “印表機”,再接下來會購買 “隨身碟” 和 “碳粉匣”。

根據探勘的結果,可以在每一個合適的階段提供顧客可能購買的物品之相關資訊,再配合適當的行銷手法, 以有效提升整體的銷售業績。

Page 4: 第八章 網路資料庫之時間序列分析

4

內容概要 簡介 循序樣式探勘 (Sequential Pattern Mining) 一般化的循序樣式探勘 * (Generalized Sequent

ial Pattern Mining) 網頁瀏覽樣式探勘 (Web Traversal Pattern M

ining) 總結

Page 5: 第八章 網路資料庫之時間序列分析

5

循序樣式探勘 循序樣式探勘的目的是找出顧客在不同時

間點所購買的物品先後之關係。 例如,根據消費者每次交易所購買的產品資料與交易時間,發掘出類似下列的循序樣式:“80% 的顧客如果購買 PC 主機和螢幕,則下一次會購買印表機”。

本節將介紹循序樣式探勘方法中最基礎、也是最著名的一個演算法 — AprioriAll演算法。

Page 6: 第八章 網路資料庫之時間序列分析

6

相關定義 (1)

一個序列 (sequence) 是項目集 (itemsets) 的有序串列 (ordered list) ,序列 S 被表示成 <s1,s2,…,sn> ,其中 si (1 i n) 是項目集。 例如, <(10, 20) (30) (90)> 是一個序列,其中 (10, 20) 、

(30) 以及 (90) 皆是項目集。 序列 <a1,a2,…,an> 被包含在序列 <b1,b2,…,bm>

中,假如存在整數 i1<i2< …<in 滿足 a1bi1, a2

bi2,…, anbin。 例如,序列 <(10) (90)> 被包含在 <(10, 20) (30) (90)

> 。反之, <(10) (90)> 不被包含在 <(10, 90)> ,這是因為在序列 <(10) (90)> 中,項目集 (10) 和 (90) 是先後在不同交易中被購買的。

Page 7: 第八章 網路資料庫之時間序列分析

7

相關定義 (2)

若序列 S 包含序列 S’ ,則稱序列 S’ 為序列 S 的 “子序列” (subsequence) 。

一個包含 k 個項目集的序列稱之為 k- 序列 (k-sequence) 。

給定一組序列 S ,若序列 S 不被包含在其它序列中,則稱它為 “最大序列” (maximal sequence) 。

每一個最大序列則代表一個循序樣式 (sequential pattern) 。

對於每一個顧客,將他所有的交易根據交易時間排序所得到的結果就是一個“顧客序列”。

Page 8: 第八章 網路資料庫之時間序列分析

8

相關定義 (3)

一個序列 S 的 “支持度” (support) 被定義為 “包含 S 的顧客序列之總數佔全部顧客總數的比例”。

若序列滿足使用者設定的 “最小支持度” (minimum Support) 之限制,則稱之為 “大型序列” (large Sequence) 。

一旦所有的大型序列都被發掘之後,就可以很容易地產生所有的最大序列。

循序樣式探勘的問題就是要找出所有的循序樣式,也就是所有的最大序列。

Page 9: 第八章 網路資料庫之時間序列分析

9

表 8-1 :依會員帳號和交易時間排序後的資料庫

會員帳號 交易時間 購買的商品編號

1 2003/01/12 10, 20

1 2003/01/31 30

1 2003/03/03 40, 60

2 2003/02/05 10, 20

2 2003/05/08 30

2 2003/07/15 90

3 2003/12/03 30

3 2004/01/23 90

4 2004/02/06 10, 20, 30

5 2003/11/30 30

5 2003/12/17 60, 90

Page 10: 第八章 網路資料庫之時間序列分析

10

表 8-2 :顧客序列資料庫

會員帳號 顧客序列

1 <(10, 20) (30) (40, 60)>

2 <(10, 20) (30) (90)>

3 <(30) (90)>

4 <(10, 20, 30)>

5 <(30) (60, 90)>

Page 11: 第八章 網路資料庫之時間序列分析

11

範例 8-1

假設表 8-1 是從某一線上購物網站資料庫中彙整出來的資料。它所對應的顧客序列如表8-2 所示。假設最小支持度為 0.25 ,因為會員帳號總數為 5 ,所以最小支持個數為 2 。 序列 <(30)> 和 <(30) (90)> 的支持個數分別為 5 和 3 ,所以它們都是大型序列。

雖然序列 <(30)> 是大型序列,但它不是最大序列。這是因為序列 <(30)> 被包含在大型序列 <(30) (90)> 之中。

Page 12: 第八章 網路資料庫之時間序列分析

12

循序樣式探勘的基本步驟 循序樣式探勘基本上包含下列五個步驟:

步驟一:排序階段。 步驟二:大型項目集產生階段。 步驟三:轉換階段。 步驟四:大型序列產生階段。 步驟五:最大序列產生階段。

Page 13: 第八章 網路資料庫之時間序列分析

13

排序階段 將資料庫根據會員帳號和交易時間作排序。

排序時,會員帳號當作主鍵 (primary key) ,交易時間當作次要鍵 (secondary key) 。

依據排序之後的結果,即可產生顧客序列資料庫,如表 8-2 所示。

Page 14: 第八章 網路資料庫之時間序列分析

14

大型項目集產生階段 每一個大型項目集就是一個大型 1- 序列。應用 A

priori 演算法可以產生所有大型 1- 序列。 在循序樣式探勘的問題中,項目集的支持度被定義

為 “曾在某次交易所購買的項目集中包含此項目集之顧客比例”。 假設 x 是一個項目集,對於每一位顧客來說, x 的支持個數最多只能增加一個。

當大型項目集產生之後,它們會被對應至一組連續的整數。 對應的目的是將項目集視為一個單獨的個體,以減少比對和計算的時間。

Page 15: 第八章 網路資料庫之時間序列分析

15

表 8-3 :大型項目集與對應的整數

大型項目集 支持個數 對應整數

(10) 3 1

(20) 3 2

(30) 5 3

(90) 3 4

(10, 20) 3 5

Page 16: 第八章 網路資料庫之時間序列分析

16

範例 8-2

假設最小支持個數為 3 。根據表 8-2 的顧客序列資料庫,使用 Apriori 演算法找出所有大型項目集,並且將它們對應到連續的整數,如表8-3 所示。 例如,項目集 (10, 20) (亦即 1- 序列 <(10, 20)

> )被包含在會員帳號 “ 1” 、“ 2” 、“ 4” 的顧客序列中,它的支持個數為 3 ,因此它是大型項目集。

項目集 (30, 90) (亦即 1- 序列 <(30, 90)> )不被包含在任何的顧客序列中,因此它不是大型項目集。

Page 17: 第八章 網路資料庫之時間序列分析

17

轉換階段 在循序樣式探勘的過程中,經常需要決定某一個序

列是否被包含在顧客序列中。為了加速計算的速度,可以根據下列幾個原則將顧客序列做轉換: 若交易不包含任何大型項目集,則將它從顧客序列中移除。

若顧客序列不包含任何大型項目集,則將它從轉換後的資料庫移除。但是在進行相關計算時,顧客總數仍維持不變。

顧客序列中的每一個交易以被包含在交易中的大型項目集所成的集合來取代,表示方式為 {I1,I2, …,In} ,其中Ij (1 j n) 是大型項目集。

例如,假設大型項目集有 (10) 、 (20) 和 (10, 20) ,則交易 (10, 20) 將被大型項目集的集合 {(10) (20) (10, 20)} 所取代。

Page 18: 第八章 網路資料庫之時間序列分析

18

範例 8-3

依據轉換原則,將表 8-2 的資料庫做轉換,並且將顧客序列中的項目集以對應的整數來表示,如表 8-4 所示。

Page 19: 第八章 網路資料庫之時間序列分析

19

表 8-4 :轉換後的資料庫

會員帳號 轉換後的顧客序列 以對應整數來表示

1 <{(10),(20),(10, 20)} {(30)}> <{1,2,5} {3}>

2 <{(10),(20),(10, 20)} {(30)} {(90)}> <{1,2,5} {3} {4}>

3 <{(30)}{(90)}> <{3} {4}>

4 <{(10),(20),(30),(10, 20)}> <{1,2,3,5}>

5 <{(30)} {(90)}> <{3} {4}>

Page 20: 第八章 網路資料庫之時間序列分析

20

大型序列產生階段與最大序列產生階段

使用 ApprioriAll 演算法來產生所有大型序列。

假設所有大型序列的集合為 LS ,最長的序列長度為 n ( 亦即包含 n 個項目集 ) ,產生最大序列的方式如下:

for (i = n; i > 1; i--) do

對於每一個 i- 序列 S’ ,從 LS 中刪除所

有 S’ 的子序列

Page 21: 第八章 網路資料庫之時間序列分析

21

AprioriAll 演算法的基本精神 假設符號 LSk表示所有大型 k- 序列 (large k-sequen

ce) 所成的集合, CSk表示所有候選 k- 序列 (candidate k-sequence) 所成的集合。

AprioriAll 的基本精神和 Apriori 演算法類似,它也是使用前一個階段所發掘的大型序列來產生下一個階段的大型序列。 首先找出所有大型 1- 序列 LS1,再利用 LS1 產生候選 2-序列 CS2 ,藉由計算候選序列的支持度之後,即可產生 LS2 。

利用 LS2產生候選 3- 序列 CS3,再找出 LS3,依此類推下去,直到下一個階段無任何大型序列產生為止。

Page 22: 第八章 網路資料庫之時間序列分析

22

AprioriAll 性質 為了減少 CSk的大小和將來計算的執行時

間,可以應用類似 Apriori 性質來減少 CSk

的大小。 AprioriAll 性質:若序列 C 的任何大小為

k-1 的子序列 (subsequence) 不是大型 (k-1)- 序列,則 C 必定不是大型 k- 序列。

Page 23: 第八章 網路資料庫之時間序列分析

23

候選序列的產生程序 AprioriAll 演算法使用 “結合” 大型 (k-1)- 序列的

方式來產生候選 k- 序列。 在“刪除”階段則使用 AprioriAll 性質去除不可能是

大型序列的候選序列。 令 S1和 S2是兩個大型 (k-1)- 序列。 Si[j] 代表序列 Si

中的第 j 個項目集。 若 S1和 S2的前 k-2 個項目集皆相同,則 S1和 S2將被結合成一個候選 k- 序列,亦即 <S1[1], S1[2], …, S1[k-1], S2[k-1]> 。

候選 k- 序列 <S1[1], S1[2], …, S1[k-2], S2[k-1], S1[k-1]> 也會產生,這是因為在序列中的項目集之位置不同即代表不同的序列,所以 S1和 S2結合時要分別考慮這兩個序列。

Page 24: 第八章 網路資料庫之時間序列分析

24

AprioriAll 演算法步驟 1 : LS1 = 大型 1- 序列所成的集合;步驟 2 : for (k = 2; LSk-1≠; k++) do begin

步驟 3 : CSk = Candidate_seq_gen(LSk-1) ;步驟 4 : for each 在資料庫中的顧客序列 C do

步驟 5 : 對於 CSk中的每一個候選序列 S ,若 C 包含S ,

則將 S 的支持個數增加 1 ;步驟 6 : LSk = 在 CSk中滿足最小支持個數的候選序列 所成的集合;步驟 7 : end步驟 8 : return 所有大型序列中的最大序列

Page 25: 第八章 網路資料庫之時間序列分析

25

候選序列產生程序 Candidate_seq_gen Procedure

步驟 1 : for each 序列 S1 LSk-1

/* S1[1],S1[2], …, S1[k-1] 表示在 S1中的 k-1 個項目集 */

步驟 2 : for each 序列 S2 LSk-1

/* S2[1],S2[2], …, S2[k-1] 表示在 S2中的 k-1 個項目集 */

步驟 3 : if (S1[1]=S2[1]) (S1[2]=S2[2]) … (S1[k-2]=S2[k-2])

步驟 4 : then {C = {S1[1], S1[2], …, S1[k-2], S1[k-1], S2[k-1]} ;步驟 5 : if 所有 C 的大小為 k-1 的子序列都是大型 (k-

1)- 序列步驟 6 : then 將 C 加入 CSk;步驟 7 : else 刪除 C ; }

步驟 8 : return CSk = 所有候選 k- 序列所成的集合

Page 26: 第八章 網路資料庫之時間序列分析

26

範例 8-4 (1)

假設最小支持個數為 3 。本範例使用表 8-3的大型項目集和表 8-4 轉換後的資料庫,說明 AprioriAll 演算法產生大型序列的過程。

使用候選序列產生程序從 LS1產生候選 2-序列 CS2。 AprioriAll 讀取資料庫中的所有顧客序列之後,即可計算 CS2中每一個候選序列的支持個數。

Page 27: 第八章 網路資料庫之時間序列分析

27

範例 8-4 (2)

候選 2- 序列以及所對應的支持個數 候選 2- 序列 支持個數 候選 2- 序列 支持個數

<1, 1> 0 <3, 4> 3<1, 2> 0 <3, 5> 0<1, 3> 2 <4, 1> 0<1, 4> 1 <4, 2> 0<1, 5> 0 <4, 3> 0<2, 1> 0 <4, 4> 0<2, 2> 0 <4, 5> 0<2, 3> 2 <5, 1> 0<2, 4> 1 <5, 2> 0<2, 5> 0 <5, 3> 2<3, 1> 0 <5, 4> 1<3, 2> 0 <5, 5> 0<3, 3> 0    

Page 28: 第八章 網路資料庫之時間序列分析

28

範例 8-4 (3)

刪除 CS2中支持個數小於最小支持個數的序列,即可得到大型 2- 序列 LS2 。

使用候選序列產生程序從 LS2產生候選項目集 CS3={<3, 4, 4>} 。序列 <3, 4, 4> 的支持個數為 0 ,所以 LS3= 。

大型 2- 序列

支持個數

<3, 4> 3

Page 29: 第八章 網路資料庫之時間序列分析

29

範例 8-4 (4)

最後得到的大型序列包括 大型 1- 序列: <1>, <2>, <3>, <4>, <5> 大型 2- 序列: <3, 4>

因為大型序列 <3> 和 <4> 被包含在大型序列 <3, 4> 之中,因此大型序列 <3> 和 <4> 將被刪除。

最後所得到的最大序列為: <1> 、 <2> 、 <5> 和 <3, 4> 。根據表 8-3 大型項目集與對應整數之間的關係,可以將最大序列還原為 <(10)> 、 <(20)> 、 <(10, 20)> 和 <(30) (90)> 。

Page 30: 第八章 網路資料庫之時間序列分析

30

內容概要 簡介 循序樣式探勘 (Sequential Pattern Mining) 一般化的循序樣式探勘 * (Generalized Sequent

ial Pattern Mining) 網頁瀏覽樣式探勘 (Web Traversal Pattern M

ining) 總結

Page 31: 第八章 網路資料庫之時間序列分析

31

簡介 假設有一個候選序列為 <( 印表機 ) ( 隨身碟 )>,某一顧客序列為 <( 印表機 ) ( 碳粉匣 ) ( 隨身碟 )>,其中顧客序列的 “印表機” 和 “隨身碟” 購買的時間間隔超過一年,那麼此顧客序列 “支持” 候選序列 <( 印表機 ) ( 隨身碟 )> 的意義將大為降低。

考慮移動時間視窗 (sliding time window) 和時間限制條件 (time constraint) 在循序樣式探勘之中,可以更符合實際應用上的需要。

Page 32: 第八章 網路資料庫之時間序列分析

32

傳統循序樣式探勘的限制 (1)

候選序列中同一項目集的項目只限定在同一個交易。 我們可以將條件放寬為 “候選序列中同一項目集的項目可以來自不同的交易,但是要滿足最大交易時間 (maximum transaction-time) 和最小交易時間 (minimum transaction-time) 的差值小於或等於移動時間視窗”。 最大交易時間” 是指在項目集中最晚被購買的商品之交易時間。

“最小交易時間” 是指在項目集中最早被購買的商品之交易時間。

Page 33: 第八章 網路資料庫之時間序列分析

33

傳統循序樣式探勘的限制 (2) 缺乏時間限制條件的考慮。

我們可以增加條件限制,讓使用者指定序列中相鄰元素 ( 亦即項目集 ) 的最大和最小時間間隔 (maximum and minimum time gaps) 。 最大時間間隔:在序列中,允許一個項目集裡最後被購買的商品時間和前一個項目集裡最先被購買的商品時間之最大差值。

最小時間間隔:在序列中,允許一個項目集裡最先被購買的商品時間和前一個項目集裡最後被購買的商品時間之最小差值。

Page 34: 第八章 網路資料庫之時間序列分析

34

移動時間視窗和時間限制條件之範例

假設移動時間視窗為三天。 若顧客購買 PC 主機一個禮拜後才購買印表機,則此顧客 “不支持” 序列 <(PC 主機 , 印表機 )> 。

若顧客購買印表機兩天後即購買碳粉匣,則此顧客 “支持” 序列 <( 印表機 , 碳粉匣 )> 。

假設最大和最小時間間隔分別為一個月和三天。 若顧客購買 PC 主機一年後才購買印表機,則此顧客 “不支持” 序列 <(PC 主機 ) ( 印表機 )> 。

若顧客購買印表機兩天後即購買碳粉匣,則此顧客 “不支持” 序列 <( 印表機 ) ( 碳粉匣 )> 。

若顧客購買 PC 主機一個禮拜後即購買印表機,則此顧客 “支持” 序列 <(PC 主機 ) ( 印表機 )> 。

Page 35: 第八章 網路資料庫之時間序列分析

35

移動時間視窗 序列中同一項目集之項目可以來自不同的交

易,只要滿足項目集中項目的最大交易時間和最小交易時間的差值小於或等於移動時間視窗的條件。

顧客序列 C=<C1 C2 … Cm> 包含序列 S=<S

1 S2 … Sn> ,假如存在整數 l1u1<l2 u2< … <lnun,滿足下列條件: 條件一: Si被包含在 , 1in 。 條件二:交易時間 (Cui) 交易時間 (Cli) 移動時間視窗, 1in 。

kCi

i

ulk

Page 36: 第八章 網路資料庫之時間序列分析

36

時間限制 (1) 考慮時間限制條件的目的是限定序列中相鄰

的元素 ( 亦即項目集 ) 之間的最大和最小的時間間隔。

令 ws 、 max-gap 和 min-gap 分別表示移動時間視窗、最大時間間隔和最小時間間隔。 序列包含的定義可以擴充如下:顧客序列 C=<C1 C2 … Cm> 包含序列 S=<S1 S2 … Sn> ,假如存在整數 l1u1<l2 u2< … <lnun,滿足下列四個條件:

Page 37: 第八章 網路資料庫之時間序列分析

37

時間限制 (2) 條件一: Si被包含在 , 1in 。 條件二:交易時間 (Cui) 交易時間 (Cli) ws , 1

in 。 條件三:交易時間 (Cli) 交易時間 (Cui-1) min-gap ,

2in 。 條件四:交易時間 (Cui) 交易時間 (Cli-1) max-ga

p , 2in 。 交易時間 (Cui) 代表在 Si中項目交易的最晚時間,以

end-time(Si) 來表示,而交易時間 (Cli) 則代表在 Si中項目交易的最早時間,以 start-time(Si) 來表示。

kCi

i

ulk

Page 38: 第八章 網路資料庫之時間序列分析

38

表 8-7 :網路交易資料庫

會員帳號 交易時間 購買的項目

111

2003/01/102003/01/202003/01/23

2, 3, 51, 61

2222

2003/02/162003/02/172003/02/212003/02/28

4, 5, 621, 2, 7, 81, 6

3 2003/12/14 1, 7, 8

Page 39: 第八章 網路資料庫之時間序列分析

39

範例 8-6

考慮表 8-7 的網路交易資料庫,假設 ws 、max-gap 和 min-gap 分別為一天、十天和三天。依據會員編號 “ 2” 的顧客序列 C = <(4, 5, 6) (2) (1, 2, 7, 8) (1, 6)> ,考慮下列三種情況: C 不包含序列 S = <(4, 8) (6)> 。 (不滿足條件二 )

C 不包含序列 S = <(2, 5) (1, 6)> 。 ( 不滿足條件四 )

C 包含序列 S = <(2, 5) (7, 8)> 。

Page 40: 第八章 網路資料庫之時間序列分析

40

相關定義 一個包含 k 個項目的序列稱之為 k- 序列

(k-sequence) ,亦即 k 代表項目的個數而非項目集的個數。

若序列滿足最大和最小時間間隔、移動時間視窗以及最小支持度等條件,則稱之為大型序列 (large sequence) 或是循序樣式 (sequential pattern) 。

Page 41: 第八章 網路資料庫之時間序列分析

41

GSP (Generalized Sequential Patterns) 演算法

步驟 1 : LS1 = 大型 1- 序列所成的集合;步驟 2 : for (k = 2; LSk-1≠; k++) do begin

步驟 3 : CSk = 候選 k- 序列所成的集合; 步驟 4 : for each 在資料庫中的顧客序列 C do

步驟 5 : 對於 CSk中的每一個候選序列 S ,若 C 包含 S ,則將 S 的支持個數增加 1 ;步驟 6 : LSk = 在 CSk中滿足最小支持個數的候選序 列所成的集合;步驟 7 : end

GSP 演算法的架構和 AprioriAll 演算法的架構幾乎相同,但是在候選序列的產生上有許多差異。

Page 42: 第八章 網路資料庫之時間序列分析

42

連續子序列 給定一個序列 S=<S1 S2 … Sn> 以及子序列

C ,若下列任何一個條件成立,則 C 為 S的一個連續子序列: 條件 (1) : C 是刪除 S1或 Sn中任何一個項目的結果。

條件 (2) : C 是刪除 Si中任何一個項目的結果,但是 Si至少包含兩個項目, 1<i<n 。

條件 (3) : C 是 C’ 的一個連續子序列,而且 C’ 是 S 的一個連續子序列。

Page 43: 第八章 網路資料庫之時間序列分析

43

範例 8-7

假設有一個序列 S = <(2, 3) (4, 5) (7) (8)> ,考慮下列情況: <(3) (4, 5) (7) (8)> 是 S 的一個連續子序列,因為它滿足條件 (1) 。

<(2, 3) (4) (7) (8)> 是 S 的一個連續子序列,因為它滿足條件 (2) 。

<(3) (4) (7) (8)> 是 S 的一個連續子序列,因為它是 <(2, 3) (4) (7) (8)> 的一個連續子序列,且 <(2, 3) (4) (7) (8)> 是 S 的一個連續子序列,所以滿足條件 (3) 。

Page 44: 第八章 網路資料庫之時間序列分析

44

候選序列的產生程序 (1)

“結合” 步驟:“結合” 大型 (k-1)- 序列來產生候選 k- 序列 ( 包含 k 個項目 ) 。 令 X1和 X2是兩個大型 (k-1)- 序列。 X1.first 代表序列 X1中的第一個項目, X2.last 代表序列 X2

中的最後一個項目。 若 X1去除 X1.first 的結果和 X2去除 X2.last 的結果相同,則 X1和 X2將被結合成一個候選 k- 序列。

Page 45: 第八章 網路資料庫之時間序列分析

45

候選序列的產生程序 (2) 考慮下列兩種情況:

若 X2.last 在 X2中自成一個獨立的項目集,則將 X2.last 加入 X1當作候選 k- 序列的最後一個獨立的項目集。– 例如,假設 X1和 X2分別為 <(1, 2) (5) (6)> 和 <(2) (5) (6)

(7)> ,則 X1和 X2可以結合產生一個候選序列 <(1, 2) (5) (6) (7)> 。

若 X2.last 在 X2中不是一個獨立的項目集,則將 X2.last 加入 X1的最後一個項目集來產生候選 k- 序列。

– 例如,假設 X1和 X2分別為 <(1, 2) (5) (6, 7)> 和 <(2) (5) (6, 7, 8)> ,則 X1和 X2可以結合產生一個候選序列 <(1, 2)

(5) (6, 7, 8)> 。 當考慮 CS2的產生時,大型 1- 序列 <(x)> 和 <(y)> 可以分別結合產生候選序列 <(x, y)> 和 <(x) (y)> 。

Page 46: 第八章 網路資料庫之時間序列分析

46

候選序列的產生程序 (3)

“刪除” 步驟 GSP 根據下列性質刪除部分候選序列:若候選

k- 序列 S 的某一個連續 k-1 子序列不是大型 (k-1)- 序列,則 S 必定不是大型 k- 序列,因此就可以將 S 從 CSk中移除。

Page 47: 第八章 網路資料庫之時間序列分析

47

候選序列支持個數的計算 計算候選序列的支持個數時,一次讀取一個

顧客序列,然後將被包含在顧客序列中的候選序列之支持個數增加一個。

候選序列支持個數的計算主要包含下列兩個步驟︰ 步驟一:使用雜湊樹 (hash tree) 資料結構來減少需要檢查的候選序列之個數。

步驟二:將顧客序列做轉換,以提升在檢查某一個候選序列是否為顧客序列的子序列之執行效能。

Page 48: 第八章 網路資料庫之時間序列分析

48

雜湊樹的架構 雜湊樹包含樹葉節點 (leaf node) 與內部節

點 (interior node) 。 一個樹葉節點包含許多序列,而一個內部節

點則包含一個雜湊表 (hash table) 。 所有候選序列都被儲存在雜湊樹的樹葉節點

中。

Page 49: 第八章 網路資料庫之時間序列分析

49

建立雜湊樹的方法 給定雜湊樹的分支個數、雜湊函數 (hash functio

n) 、以及儲存在樹葉節點的序列個數之最大值 。雜湊樹的建立方式如下: 步驟一:考慮候選序列中的第一個項目,從樹根節點開始執行下列步驟。

步驟二:對考慮的項目應用雜湊函數來計算,根據計算的結果決定往下走哪一條分支。

步驟三:若往下進入的節點不是樹葉節點,則繼續考慮序列中的下一個項目,並且回到上一個步驟。

步驟四:當進入的節點是樹葉節點時,若樹葉節點尚有儲存空間,則將序列儲存在樹葉節點中,否則將樹葉節點轉換為內部節點,並且依步驟二的方式,考慮下一個項目,重新儲存相關的序列。

Page 50: 第八章 網路資料庫之時間序列分析

50

範例 8-8 (1)

假設候選序列有 <(2) (1)> 、 <(5) (1)> 、 <(2) (6)> 、 <(2,4)> 、 <(5,6)> 以及 <(3,4)> 。

給定雜湊樹的分支個數為 2 、儲存在樹葉節點的序列個數之最大值為 2 、雜湊函數為: “分支位置 = 項目值 MOD 2” ( 亦即計算項目值除以 2 的餘數 ) 。

Page 51: 第八章 網路資料庫之時間序列分析

51

範例 8-8 (2) 雜湊樹的建立過程

Page 52: 第八章 網路資料庫之時間序列分析

52

減少需要檢查的候選序列的個數之方法

步驟一:考慮顧客序列中的每一個項目,從樹根節點開始執行下列步驟。

步驟二:對考慮的項目應用雜湊函數來計算,根據計算的結果決定往下走哪一條分支。

步驟三:假設對項目 x 做雜湊計算之後到達的節點是內部節點,項目 x 的交易時間為 t ,對顧客序列中的每一個符合下列時間限制條件的項目 y ,應用雜湊函數來計算往下該走哪一條分支。重複步驟三,直到到達樹葉節點為止。

時間限制條件: y 的交易時間落在 [t-ws,t+max(ws,max-gap)] 中。 步驟四:假設對項目做雜湊計算後到達的節點是樹葉節點,

則檢查儲存在樹葉節點中的候選序列是否被包含在顧客序列中。

Page 53: 第八章 網路資料庫之時間序列分析

53

範例 8-9

假設有一顧客序列為 <(2) (6,4)> ,其中項目集 (2) 和 (6,4) 的交易時間分別 2004/02/11 和 2004/02/13 。ws = 3 , max-gap = 10 。使用範例 8-8 所建立的雜湊樹,考慮如何減少需要檢查的候選序列之個數。

顧客序列中的每一個項目都必須被考慮,因為這中間的任何一個項目都可能存在於某一個候選序列中。

分別考慮項目 “ 2” 、“ 6” 和“ 4” 時,最後皆走到路徑為 “ 00” 的樹葉節點,因此,最後所需要考慮的候選序列只剩下 <(2) (4)> 和 <(2) (6)> 。

Page 54: 第八章 網路資料庫之時間序列分析

54

檢查某一個候選序列是否被包含在顧客序列的方法 (1)

假設 C 是一個顧客序列, S= <S1, …, Sn> 是一個候選序列。檢查某一個候選序列是否被包含在顧客序列的方法主要包括兩個階段: “前進” (Forward) 階段 “返回” (Backward) 階段。

Page 55: 第八章 網路資料庫之時間序列分析

55

檢查某一個候選序列是否被包含在顧客序列的方法 (2)

“前進” 階段 從顧客序列中尋找在 S 裡的連續元素 ( 亦即項目集 ) 。假設目前考慮的元素是 Si,則必須滿足 end-time(Si)start-time(Si-1) max-gap 且 start-time(Si)end-time(Si-1) min-gap 。

若 end-time(Si)start-time(Si-1) 的差值大於 max-gap ,則轉換到返回階段。

若在顧客序列中找不到對應的元素,則表示顧客序列不包含候選序列 S 。

Page 56: 第八章 網路資料庫之時間序列分析

56

檢查某一個候選序列是否被包含在顧客序列的方法 (3)

“返回” 階段 假設目前考慮的元素是 Si,且 end-time(Si) = t 。尋找在時間點 tmax-gap 之後第一個包含元素 Si-1的交易。

由於 end-time(Si-1) 的時間已改變,因此 Si-1和 Si-2之間 max-gap 和 min-gap 的條件可能不再滿足,因此 “返回” 的動作必須持續進行,直到

目前考慮的元素和前一個元素滿足 max-gap 和 min-gap 的條件 或者已經返回到目前考慮的元素是候選序列的第一個元素

接下來再回到前進階段,從下一個元素 Si+1開始考慮。 若在進行返回動作時,仍無法滿足 max-gap 和 min-gap的條件,則表示顧客序列不包含候選序列 S 。

Page 57: 第八章 網路資料庫之時間序列分析

57

範例 8-10

考慮表 8-7 中顧客編號為 “ 2” 的顧客序列 <(4, 5, 6) (2) (1, 2, 7, 8) (1, 6)> 。假設 ws = 1 , max-gap = 10 , min-gap =3 ,我們要檢查候選序列 <(2) (6)> 是否被包含在顧客序列中。 在 “前進” 階段,找到在時間點 “ 2003/02/17” 的項目

(2) 與在時間點 “ 2003/02/28” 的項目 (6) 。但是 end-time((6))start-time((2)) > max-gap ,因此進入 “返回” 階段。

目前考慮的序列元素是 (6) ,且 end-time((6)) = “2003/02/28” ,所以尋找在時間點 “ 2003/02/18” 之後第一個包含序列元素 (2) 的交易,結果找到在時間點 “ 2003/02/21” 的項目 (2) 。

此時 end-time((6))start-time((2)) < max-gap 且 start-time((6))end-time((2)) > min-gap ,滿足時間限制的條件,因此顧客序列包含候選序列 <(2) (6)> 。

Page 58: 第八章 網路資料庫之時間序列分析

58

快速尋找顧客序列中某一元素的方法

將顧客序列做轉換,可以提升在檢查顧客序列是否包含某一個元素的執行效能。 考慮表 8-7 中顧客編號為“ 2” 的顧客序列 <(4,

5, 6) (2) (1, 2, 7, 8) (1, 6)> 。 將它轉換成一個陣列,如表 8-8 所示。例如,項目 “ 2” 出現在 “ 2003/02/17” 和 “ 2003/02/21” 這兩個交易時間,則對應項目 “ 2” 的串列為 2003/02/17 2003/02/21 NULL 。

Page 59: 第八章 網路資料庫之時間序列分析

59

表 8-8 :顧客序列的陣列表示方式 項目 時間

1 2003/02/21 2003/02/28 NULL

2 2003/02/17 2003/02/21 NULL

4 2003/02/16 NULL

5 2003/02/16 NULL

6 2003/02/16 2003/02/28 NULL

7 2003/02/21 NULL

8 2003/02/21 NULL

Page 60: 第八章 網路資料庫之時間序列分析

60

範例 8-11

假設 ws = 1 ,根據表 8-8 考慮下列幾個問題: 判斷顧客序列是否包含元素 (1, 4) 。

從陣列中可以發現,項目 1 和項目 4 出現的最小時間差為 5 ,大於 ws ,因此顧客序列不包含元素 (1, 4) 。

判斷顧客序列是否包含元素 (2, 4) 。 從陣列中可以發現,項目 2 和項目 4 出現的最小時間差為 1 ,等於 ws ,因此顧客序列包含元素 (2, 4) 。

尋找在時間點 “ 2003/02/17” 之後第一個出現項目 6 的交易時間。 從項目 6 的串列中,可以很快地找出符合條件的交易時間點為 “ 2003/02/28” 。

Page 61: 第八章 網路資料庫之時間序列分析

61

內容概要 簡介 循序樣式探勘 (Sequential Pattern Mining) 一般化的循序樣式探勘 * (Generalized Sequent

ial Pattern Mining) 網頁瀏覽樣式探勘 (Web Traversal Pattern M

ining) 總結

Page 62: 第八章 網路資料庫之時間序列分析

62

網頁瀏覽樣式探勘的主要工作 步驟一:將使用者原始的存取序列 (access

sequence) 轉換成許多最大前向參考序列 (maximal forward reference sequence) 。

步驟二:找出經常被瀏覽的樣式,若序列滿足使用者設定的 “最小支持度” 的條件,則稱之為 “大型參考序列” (large reference sequence) 。 大小為 k 的參考序列則稱之為 k-參考序列。我們的目的即是找出所有大型參考序列。

Page 63: 第八章 網路資料庫之時間序列分析

63

尋找最大前向參考序列的方法 使用者的存取序列 (c1 c2 … cn) 可以表示為由連結 (null c

1) , (c1 c2) , (c2 c3) ,…, (cn-1 cn) 所組成,這些連結是依存取時間排序而成的。

將這些連結分別以 (s1 d1) , (s2 d2) ,…, (sn dn) 來表示,一開始的起始節點則以 null 來表示。

利用類似 “深度優先搜尋” (depth-first search) 的方式,將使用者原始的存取序列分割成許多最大前向參考序列。

尋找最大前向參考序列的演算法所使用的參數如下: R 代表目前的前向參考序列,初始值為 null 。資料庫 DB儲存目

前所有產生的最大前向參考序列。 i 代表目前所考慮的連結編號,初始值為 1 。 旗標 f = 1 表示這是一個前向瀏覽路徑, f = 0 則表示這是一個後向瀏覽路徑, f 的初始值設定為 1 。

Page 64: 第八章 網路資料庫之時間序列分析

64

最大前向參考序列演算法 (1) 步驟 1: S = si; D = di; If (S = null) then begin R = D ; 跳至步驟 3 ; end步驟 2: If D 和 R 中第 k 個參考項目相同 then begin If (f = 1) then 將 R 寫入資料庫 DB ; 刪除所有在 R 中位於第 k 個參考項目之後的所有

項目; f = 0 ; end else begin 將 D 附加在 R 的最後面; if (f = 0) then f = 1 ; end

Page 65: 第八章 網路資料庫之時間序列分析

65

最大前向參考序列演算法 (2)步驟 3: If 存取序列尚未全部掃描過 then begin

i = i + 1 ; 跳至步驟 1 ; end

else 將 R 寫入資料庫 DB ;

Page 66: 第八章 網路資料庫之時間序列分析

66

最大前向參考序列之範例 (1)

以下圖為例,說明如何將原始的存取序列轉換成許多最大前向參考序列。下圖的序列 (B E C E D) 被表示為 (null B) , (B E) ,(E C) , (C E) , (E D) 。

B

C D

E

Page 67: 第八章 網路資料庫之時間序列分析

67

最大前向參考序列之範例 (2)

i R ( 在步驟 2 執行後的狀態 )

DB ( 在步驟 3執行後的狀態 )

f ( 在步驟 2執行後的狀態 )

1 B Null 1

2 BE Null 1

3 BEC Null 1

4 BE BEC 0

5 BED BEC, BED 1

Page 68: 第八章 網路資料庫之時間序列分析

68

相關定義 將使用者原始的存取序列轉換而成的最大前向參

考序列,稱之為目標序列。 給定一個目標序列 (s1 s2 … sn) 。 (s1 s2 … sn) 包含

序列 (c1 c2 … cm) ,假如存在一個整數 i (1in) ,滿足 si+k = c1+k (0k<m) ,則稱 (c1 c2 … cm) 為 (s1 s2 … sn) 的子序列。

假設 (j1 j2 … jk) 是一個序列。 TS (j1 j2 … jk) 定義為包含序列 (j1 j2 … jk) 的目標序列編號所成的集合。

TC (j1 j2 … jk) 定義為在 TS (j1 j2 … jk) 中的序列編號之個數。

Page 69: 第八章 網路資料庫之時間序列分析

69

LRS(Large Reference Sequence) 演算法的基本精神

LRS 演算法是根據下列兩個推論來設計的: 若 TC (j1 j2 … jk) 大於或等於最小支持個數,則 (j1 j2 … jk)

是一個大型 k-參考序列。 使用類似 AprioriAll 的方法,利用已產生的大型 (k-1)-參

考序列來推導候選 k-參考序列。 假設 Lk-1 是所有大型 (k-1)-參考序列所成的集合。假設 J=(J1 J2

… Jk-1) 和 P = (P1 P2 … Pk-1) 是大型 (k-1)-參考序列。令 Ck 為候選 k-參考序列所成的集合,則

Ck = {(J1 J2 … Jk-1 Pk-1)| JLk-1 and PLk-1 and Ji = Pi-1, 2 i k-1 }

一旦候選參考序列產生之後,藉由 TS 和 TC 所記錄的資訊,就能夠很容易地判斷它是否為大型參考序列。

Page 70: 第八章 網路資料庫之時間序列分析

70

LRS 演算法的主要步驟 LRS 演算法主要包含三個步驟:

步驟一:將所有目標序列掃描一次,記錄每一個網頁出現的次數以及相鄰連結網頁(例如 : (BD) )出現的次數,並且記錄序列編號。

步驟二:根據步驟一及最小支持個數,找出大型 1- 序列 和 大型 2- 序列。

步驟三:產生候選 k-參考序列 (k3) ,再利用結合的參考序列之 TS 值做交集運算。

Page 71: 第八章 網路資料庫之時間序列分析

71

候選參考序列之 TS值計算方式 例如: TS(BE)={1,2,5,6,7,8,9} , TS(ED)={2,7,9} 。

(BE) 和 (ED) 所產生的候選 3-參考序列 (BED) 之TS 最大可能值為 {1,2,5,6,7,8,9}{2,7,9} = {2,7,9} 。

若交集運算之後所得到的個數小於最小支持個數,則此候選參考序列不可能為大型參考序列。

若交集運算之後所得到的個數不小於最小支持個數,則此候選參考序列也可能不是大型參考序列。

以候選 3-參考序列 (BED) 為例,仍必須針對編號 2,7,9 的目標序列進一步檢查 (BED) 是否是它們的子序列。 因為候選 3-參考序列 (BED) 是由 (BE) 和 (ED) 產生的,所以必須排除某目標序列 (BEFGED) 包含子序列 (BE) 和 (ED) ,但卻不包含 (BED) 的情況。

Page 72: 第八章 網路資料庫之時間序列分析

72

LRS 演算法 (1)

步驟 1 :掃描所有目標序列一次。記錄每一個網頁出 現的次數,以及相鄰連結網頁出現的次數和 序列編號;步驟 2 : L1={x | x 是一個目標序列中的網頁,且 TC(x)

最小支持個數 } ;

步驟 3 : L2={Y | Y 代表目標序列中相鄰連結網頁的序 列,且 TC(Y) 最小支持個數 } ;步驟 4 : for (k=3; |Lk-1| > 1; k++) do begin

步驟 5 : 使用類似 AprioriAll 的方法,利用 Lk-1產生 Ck;

Page 73: 第八章 網路資料庫之時間序列分析

73

LRS 演算法 (2)

步驟 6 : for each 候選參考序列 C Ck do begin /* 假設 C 是從大型 (k-1)- 序列 S1 和 S2 產生出來的 */

步驟 7 : 最大可能的 TS(C) = TS(S1)TS(S2); 步驟 8 : 最大可能的 TC(C) = Card(TS(C)); 步驟 9 : If 最大可能的 TC(C) 最小支持個數 then begin步驟 10 : 檢查在最大可能的 TS(C) 中之目標序列 是否包含序列 C ;步驟 11 : 若 TC(C) 的確定值大於或等於最小支持個數, 則 Lk = Lk {C};步驟 12 : end 步驟 13 : end 步驟 14 : end

Page 74: 第八章 網路資料庫之時間序列分析

74

範例 8-13 (1)

使用下表的目標序列來說明 LRS 演算法如何找到所有大型參考序列。假設最小支持個數為 3 。

序列編號 目標序列1 (BEC)2 (BED)3 (BF)4 (AB)5 (ABE)6 (DABE)

7 (BED)8 (BE)9 (BED)

Page 75: 第八章 網路資料庫之時間序列分析

75

範例 8-13 (2)

掃描所有目標序列一次。計算大小為 1 和大小為 2 的序列之 TS 和 TC值。

1- 序列

TS TC

(A) {4,5,6} 3

(B) {1,2,3,4,5,6,7,8,9} 9

(C) {1} 1

(D) {2,6,7,9} 4

(E) {1,2,5,6,7,8,9} 7

(F) {3} 1

2- 序列

TS TC

(B E) {1,2,5,6,7,8,9} 7

(E C) {1} 1

(E D) {2,7,9} 3

(B F) {3} 1

(A B) {4,5,6} 3

(D A) {6} 1

Page 76: 第八章 網路資料庫之時間序列分析

76

範例 8-13 (3)

找出大型 1- 序列 和 大型 2- 序列,亦即TC值大於或等於 3 者,可以得到: 大型 1- 序列: (A), (B), (D), (E) 大型 2- 序列: (AB),(BE),(ED)

Page 77: 第八章 網路資料庫之時間序列分析

77

範例 8-13 (4)

產生候選 3-參考序列並計算最大可能的 TS 與 TC 值。

只有 (BED) 最大可能的 TC 值不小於最小支持個數。進一步檢查之後發現,編號 “ 2” 、“ 7” 和 “ 9” 的目標序列皆支持 (BED) ,因此它是大型 3-參考序列。

候選 3- 序列 最大可能的 TS 最大可能的 TC

(BEC) {1} 1(BED) {2,7,9} 3

(EDA) {} 0(ABE) {5,6} 2(ABF) {} 0(DAB) {6} 1

Page 78: 第八章 網路資料庫之時間序列分析

78

內容概要 簡介 循序樣式探勘 (Sequential Pattern Mining) 一般化的循序樣式探勘 * (Generalized Sequent

ial Pattern Mining) 網頁瀏覽樣式探勘 (Web Traversal Pattern M

ining) 總結

Page 79: 第八章 網路資料庫之時間序列分析

79

總結 本章內容包括:

基本的循序樣式探勘: AprioriAll 演算法 一般化的循序樣式探勘:將移動時間視窗和時間限制條件考慮在循序樣式的探勘中

網頁瀏覽樣式探勘:從網頁記錄檔案中分析使用者經常瀏覽的網頁樣式

相關的研究包括: 使用條件限制與資料集過濾的技術來提升循序樣式探勘的效能

在基因序列資料庫中發掘相似的基因序列 在事件序列 (event sequence) 中發掘經常出現的事件