close

 

有鑒於近期得到公司APP的使用者紀錄資料,因此我想洞察出一些有用的資訊透過R語言   Sequential Pattern Mining 分析的方法,找出user使用APP的動線,看是否可以加強與改善APP

這裡稍微紀錄一下序列分析的方法~~

 

Sequential Pattern Mining 是找出「大部分的人都有的行為模式」的方法 ,他是關聯規則的延伸,加入了時間的觀念

測試資料如下(txt檔):

1,1,A
1,2,B
1,3,C
1,4,A
1,5,B
2,1,B
2,2,D
2,3,A
2,4,B
3,1,A
3,2,C
3,3,C
3,4,D
4,1,A
4,2,B
4,3,C

此測試檔有4個user,16筆資料

第一個colunm為使用者ID,第二個colunm為時間順序(時間間隔不需要考慮),第三個colunm為發生的事件(event)

最後想呈現的效果為 當某些人做了甚麼後接下來會做甚麼,可以用在商品推薦等等...

 

以下是R語言的程式:

-----------------------------------------

>library("arulesSequences")  #使用arulesSequences套件

> sq_test=read_baskets("C:\\learnR2015\\sq_test.txt",sep=",",info=c("sequenceID", "eventID"))       #吃txt檔,以sep="," 分隔,前兩ˋ個欄位定義成"sequenceID", "eventID"

> sq_test_0.4=cspade(sq_test,parameter=list(supp=0.4),control=list(verbose=T),tmpdir=tempdir())  #建模型  使用支持度0.4 ( 最小支持度:篩選出至少40%的人共有的樣式 )     當支持度設定越低可以跑出更多規則 但花的時間就越久 反之

> summary(sq_test_0.4)

> sq_test_0.4 <- as(sq_test_0.4,"data.frame")  #將sq_test_0.4轉換成data.frame

 

結果集:

> sq_test_0.4
        sequence support
1          <{A}>       1.00
2          <{B}>       0.75
3          <{C}>       0.75
4          <{D}>       0.50
5      <{A},{C}>      0.75
6      <{B},{C}>      0.50
7  <{A},{B},{C}>    0.50
8      <{A},{B}>     0.75
9      <{B},{B}>     0.50
10 <{B},{A},{B}>   0.50
11     <{B},{A}>    0.50

分析: 

我們從分析跑出來的pattern 可以看出一些關聯,以第5點來說,有7成5的user <{A},{C}>   做了A之後會做C ,以第7點來說有5成的人<{A},{B},{C}>   做了A之後會做B然後做C

如果這是一個客戶交易行為,老闆可以考慮找出買A的人然後強力推銷C, 如此,可以有效提高客戶的再購率

 

參考: 

http://blog.pulipuli.info/2017/01/rarulessequences-sequential-pattern.html

http://www.cc.ntu.edu.tw/chinese/epaper/0036/20160321_3606.html

 

python版本:

http://blog.pulipuli.info/2017/08/pythonprefixspan-implement-sequential.html

 

 

 

 

arrow
arrow
    全站熱搜

    to52016 發表在 痞客邦 留言(1) 人氣()