首先聲明,該文章是石頭哥的最新文章,力作之一。石頭哥是游戲數據挖掘與分析QQ群的群主之一,該文出自他手,在此予以轉發,望從事游戲數據分析的各位可以從中學到一二。本來我的博客想來很少轉文章的,不過在此,這樣的好文必須轉起來。
原文地址:http://blog.sina.com.cn/s/blog_c308e7dd0101cp4h.html
流失預測模型在很多行業都有引用到切實的市場運營當中,而接下來就開門見山的說一下游戲行業有關用戶流失模型的建立。
目標:關於游戲用戶的流失,普片的衡量指標有周流失與月流失,接下來研究的問題有兩個:
① 有關付費用戶的月登陸流失問題
② 有關付費用戶的月付費流失(付費用戶的月登陸流失定義:本月充值的用戶在下個月不再有登陸行為。付費用戶的月付費流失:本月充值的用戶在下個月不在有付費行為。但有可能還有登陸行為,這部分用戶被稱為沉默付費用戶。)
數據指標理解:影響流失的普片判斷有:在線活躍、充值或消費活躍、還有玩家賬號一些屬性(如果細分還有副本的活躍度,某些活動的活躍度,或者社交的數據等)。本文在做流失預測模型之前做以下數據准備:
玩家ID
玩家角色名
等級
注冊時間
本月充值總額
本月銅幣活躍(銅幣的交易次數)
本月綁定銅幣活躍(綁定銅幣交易次數)
本月元寶活躍(元寶交易次數)
本月活躍天數(登陸天數)
本月登陸次數
本月登陸總時長
下月充值總額
下月登陸天數
以上是從數據庫中取出來的基本指標,而進行分析的指標可以在這個基礎指標的基礎上再進行豐富,例如:每活躍天在線時長=登陸總時長/活躍天數;每活躍天登陸次數=登陸次數/活躍天數;活躍度=活躍天數/本月已注冊時長(大家將發現這里衍生的“活躍度”指標在后面的分析會起到神奇的效果)。數據都准備好了之后,現在就開始建立模型,以下用到的是SPSS Modeler軟件。
首先采用源節點來錄入數據,數據分為兩份,第一份為“11月預測12月”數據,第二份為“12月預測1月”的數據。
接着利用“導出”節點導出我們所需要的衍生字段。
因為這里的“下月充值流失”是根據下月是否有充值來判斷轉換的,下月充值為0即為流失則標志為T,否則為F(“下月登陸流失”同理)。利用導出節點,我們依次衍生了以下字段:
下月充值流失
下月登陸流失
每活躍天銅幣交換次數
每活躍天綁定銅幣交易次數
每活躍天元寶交易次數
每活躍天登陸次數
每活躍天登陸時長
每活躍天充值額度
活躍度(登陸天數/本月已注冊天數)
接下來就是對一些多余字段的過濾還有數據的清理(如包括空值的數據,或者不合理數據,如活躍度>1為不合理數據)。
添加“過濾”&“選擇”節點。
把無用的字段過濾掉(根據自己源數據來過濾,如這里的下月充值(元寶)字節已經轉換成“下月充值流失”字節,所以可以刪除過濾掉),點擊確定。
打開“選擇”節點,模式選擇“拋棄”,條件寫上一些需要清除的數據,點擊確定。
模型之前的數據准備都基本完成了,最后添加一個類型節點。
我們先研究的是下月登陸流失,所以現將下月充值流失角色設為無,下月登陸流失設為目標,接下來就是選擇需要預測的模型。這里選擇了貝葉斯與C5.0的算法。
貝葉斯這里運用了三種方法:TAN、Markov、Markov_FS
分別添加三個貝葉斯節點,名字分別命名:TAN、Markov、Markov_FS(方便辨識)。
TAN設置結構類型為TAN;Markov設置結構類型為Markov Blanket;Markov_FS設置結構類型為Markov Blanket並且勾選“包括特征選擇預處理步驟”。分別運行得到3個模型,最后連接一個“分析”節點,默認狀態下按運行。
分析節點運行結果:
大家可以明顯發現,運用貝葉斯的三種方法的准確率基本都為83%,這說明三種方法差別並不大。其實在一般預測來說,80%以上已經算比較好的結果了。但是這里將進一步采用C5.0的算法與其比較。
添加C5.0算法節點,默認狀態下按運行,得到C5.0的模型,點擊C5.0模型節點
可以看到每一個變量的重要性,而“活躍度”這個變量的重要性是最高的。(這也說明了一些衍生字段對后期分析的重要性)
接下來再添加“分析”節點發現准確率達到85%,比貝葉斯要稍微好點。(有一些情況對決策樹使用boosting方法或者進行截枝修剪嚴重性會得到更好的效果)
我們再用C5.0模型進一步進行流失分析,添加“直方圖”節點:
選擇字段level OR 注冊時間,交疊字段顏色選擇我們通過C5.0預測出來的“$C-下月登陸流失”字段,點擊運行。
用這個方法可以進一步預測分析下月流失的等級分布,或者注冊時間分布,或者更多有關玩家的信息,原理一樣在這里不再做拓展。到這里流失預測模型已經建好可以投入使用了。接上我們需要預測1月份的數據,我們可以進一步看到這個預測模型在下個月的准確性仍可以保持在85%左右,說明預測的效果還是不錯的,之后可以直接進行一系列的分析。(在這里說明一下,一般預測模型會隨着時間的推移慢慢減低准確性,所以建議在做預測之前都用前一個月的數據來訓練一次模型,從而能讓模型保持一定的准確性)
附加一個12月份付費用戶在1月份流失的注冊時間分布圖,大家看有沒有發現什么有意思的東西~