PrefixSpan演算法詳解

2021-07-25 08:25:19 字數 2363 閱讀 7806

一、序列模式挖掘簡介

序列模式的概念最早是由agrawal和srikant 提出的。

動機:大型連鎖超市的交易資料有一系列的使用者事務資料庫,每一條記錄包括使用者的id,事務發生的時間和事務涉及的專案。

如果能在其中挖掘涉及事務間關聯關係的模式,即使用者幾次購買行為間的聯絡,可以採取更有針對性的營銷措施。

二、事務資料庫例項

例:乙個事務資料庫,乙個事務代表一筆交易,乙個單項代表交易的商品,單項屬性中的數字記錄的是商品id

有時每個事務的發生時間可以忽略,僅保持事務間的偏序關係。

三、prefixspan

字首

假設所有的項在乙個元素中按照字母表的順序排列出來。給定乙個序列α=

(在這裡每乙個e都和在s中給定的連續的元素相一致)和乙個序列β=(m≤n).只有如果:

1、ei』=ei(i≤m-1),2、em』∈em  ,3、所有在(em—em』)的連續項在em』中都是按照字母表順序排列的,

那麼我們就說β是α的乙個字首。

例如:,,和都是序列s=的字首,但是如果每個項都在s中的序列s是連續的,

那麼和都認為是的乙個字首。

字尾

序列α關於子串行β = 的投影為α』 = (n >= m),則序列α關於子串行β的字尾為, 

其中em」 = (em - em』)。

例如:對於序列s=,就被認識為是關於字首的字尾,

就被認為是關於字首的字尾,就被被認為是關於字首的字尾。

投影

投影即投影

資料庫,是序列資料庫s中所有相對於α字首的字尾序列的集合。

演算法步驟:

1)對投影資料庫s|α進行一次掃瞄,找到一組連續的項b,其中b可以集合成為α的最後乙個元素或者可以被追加到α上,形成乙個序列模式。

2)對於每乙個連續的項b,把他新增到α上形成乙個序列α』,並且輸出α』。

3)對於每乙個α』,建立乙個α』-投影資料庫s|α』,並呼叫prefixspan(α』,l+1,s|α』).

例子:

1、使用之前的序列資料庫進行簡單的說明(給定的最小支援度是2):

掃瞄序列資料庫s,產生長度為1的序列模式有:: 4,:4, : 4, : 3, : 3, : 3

序列模式的全集必然可以分為分別以,,,,和為字首的序列模式的集合,

構造不同字首所對應的投影資料庫,結果如下頁圖所示:

2、分別以和為字首的序列進行分析說明 :

pre

sequence

12:pre

sequence

12:pre

sequence12

可以得出字首是f的序列模式為 :

pre

sequence12

34對於a的對映資料庫進行查詢區域性頻繁項(長度為一),可以得出: 2,: 4, : 4,: 2, : 2, < _b> : 2 (

要注意,第一項中的ab和_b是表示同樣的元素)

(對於組合項的字尾提取,可以分為2個情況,1個是從_x中尋找,乙個從後面找出連續的項集) :

pre

sequence12

3對於的對映資料庫進行查詢區域性頻繁項,可以得出 : 2,  : 2, : 2 :

pre

sequence12

:pre

sequence1:

pre

sequence12

:pre

sequence12

對於的對映資料庫進行查詢區域性頻繁項,可以得出: 2,  : 2, : 2

:pre

sequence12

到此以和為字首的序列模式全部找出

以下是支援度為2的所有結果

PrefixSpan演算法原理總結

前面我們講到頻繁項集挖掘的關聯演算法apriori和fp tree。這兩個演算法都是挖掘頻繁項集的。而今天我們要介紹的prefixspan演算法也是關聯演算法,但是它是挖掘頻繁序列模式的,因此要解決的問題目標稍有不同。首先我們看看項集資料和序列資料有什麼不同,如下圖所示。左邊的資料集就是項集資料,在...

PrefixSpan演算法原理總結

原文 前面我們講到頻繁項集挖掘的關聯演算法apriori和fp tree。這兩個演算法都是挖掘頻繁項集的。而今天我們要介紹的prefixspan演算法也是關聯演算法,但是它是挖掘頻繁序列模式的,因此要解決的問題目標稍有不同。首先我們看看項集資料和序列資料有什麼不同,如下圖所示。左邊的資料集就是項集資...

序列模式PrefixSpan演算法

與gsp一樣,prefixspan演算法也是序列模式分析演算法的一種,不過與gsp演算法不同的是prefixspan演算法不產生任何的侯選集,在這點上可以說已經比gsp好很多了。prefixspan演算法可以挖掘出滿足閾值的所有序列模式,可以說是非常經典的演算法。prefixspan演算法的全稱是p...