有鑒於近期得到公司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
留言列表