流失預測 & 分類模型(一)[轉發自石頭]

weixin_34015860發表於2013-03-13

首先宣告,該文章是石頭哥的最新文章,力作之一。石頭哥是遊戲資料探勘與分析QQ群的群主之一,該文出自他手,在此予以轉發,望從事遊戲資料分析的各位可以從中學到一二。本來我的部落格想來很少轉文章的,不過在此,這樣的好文必須轉起來。

原文地址:http://blog.sina.com.cn/s/blog_c308e7dd0101cp4h.html

流失預測模型在很多行業都有引用到切實的市場運營當中,而接下來就開門見山的說一下游戲行業有關使用者流失模型的建立。

 

 

目標:關於遊戲使用者的流失,普片的衡量指標有周流失與月流失,接下來研究的問題有兩個:

①   有關付費使用者的月登陸流失問題

②   有關付費使用者的月付費流失(付費使用者的月登陸流失定義:本月充值的使用者在下個月不再有登陸行為。付費使用者的月付費流失:本月充值的使用者在下個月不在有付費行為。但有可能還有登陸行為,這部分使用者被稱為沉默付費使用者。)

 

資料指標理解:影響流失的普片判斷有:線上活躍、充值或消費活躍、還有玩家賬號一些屬性(如果細分還有副本的活躍度,某些活動的活躍度,或者社交的資料等)。本文在做流失預測模型之前做以下資料準備:

玩家ID

玩家角色名

等級

註冊時間

本月充值總額

本月銅幣活躍(銅幣的交易次數)

本月繫結銅幣活躍(繫結銅幣交易次數)

本月元寶活躍(元寶交易次數)

本月活躍天數(登陸天數)

本月登陸次數

本月登陸總時長

下月充值總額

下月登陸天數

 

以上是從資料庫中取出來的基本指標,而進行分析的指標可以在這個基礎指標的基礎上再進行豐富,例如:每活躍天線上時長=登陸總時長/活躍天數;每活躍天登陸次數=登陸次數/活躍天數;活躍度=活躍天數/本月已註冊時長(大家將發現這裡衍生的“活躍度”指標在後面的分析會起到神奇的效果)。資料都準備好了之後,現在就開始建立模型,以下用到的是SPSS Modeler軟體。



首先採用源節點來錄入資料,資料分為兩份,第一份為“11月預測12月”資料,第二份為“12月預測1月”的資料。



接著利用“匯出”節點匯出我們所需要的衍生欄位。

 



因為這裡的“下月充值流失”是根據下月是否有充值來判斷轉換的,下月充值為0即為流失則標誌為T,否則為F(“下月登陸流失”同理)。利用匯出節點,我們依次衍生了以下欄位:

下月充值流失

下月登陸流失

每活躍天銅幣交換次數

每活躍天繫結銅幣交易次數

每活躍天元寶交易次數

每活躍天登陸次數

每活躍天登陸時長

每活躍天充值額度

活躍度(登陸天數/本月已註冊天數)

 

 

 

接下來就是對一些多餘欄位的過濾還有資料的清理(如包括空值的資料,或者不合理資料,如活躍度>1為不合理資料)。

 

新增“過濾”&“選擇”節點。

把無用的欄位過濾掉(根據自己源資料來過濾,如這裡的下月充值(元寶)位元組已經轉換成“下月充值流失”位元組,所以可以刪除過濾掉),點選確定。

 

開啟“選擇”節點,模式選擇“拋棄”,條件寫上一些需要清除的資料,點選確定。



模型之前的資料準備都基本完成了,最後新增一個型別節點。


我們先研究的是下月登陸流失,所以現將下月充值流失角色設為無,下月登陸流失設為目標,接下來就是選擇需要預測的模型。這裡選擇了貝葉斯與C5.0的演算法

 

貝葉斯這裡運用了三種方法:TANMarkovMarkov_FS

分別新增三個貝葉斯節點,名字分別命名:TANMarkovMarkov_FS(方便辨識)。

TAN設定結構型別為TANMarkov設定結構型別為Markov BlanketMarkov_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月份流失的註冊時間分佈圖,大家看有沒有發現什麼有意思的東西~

相關文章