99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀利用R語言對游戲用戶進行深度挖掘
利用R語言對游戲用戶進行深度挖掘
2017-02-17
收藏

利用R語言對游戲用戶進行深度挖掘

隨著游戲市場競爭的日趨激烈,在如何獲得更大收益延長游戲周期的問題上,越來越多的手機游戲開發(fā)公司開始選擇借助大數(shù)據(jù),以便挖掘更多更細的用戶群、了解用戶習(xí)慣來進行精細化、個性化的運營。游戲行業(yè)對用戶的深度挖掘一般從兩方面著手:

一方面是用戶游戲行為的深度分析,如玩家在游戲中的點擊事件行為挖掘,譬如說新手教程中的點擊事件,我們一般選擇最關(guān)心的點擊事件(即關(guān)鍵路徑)進行轉(zhuǎn)化率的分析(統(tǒng)計每個關(guān)鍵路徑的點擊人數(shù)或次數(shù)),通過漏斗圖的展現(xiàn)形式就可以直接看出每個關(guān)鍵路徑的流失和轉(zhuǎn)化情況。漏斗圖適合于單路徑轉(zhuǎn)化問題,如果涉及到多路徑(點擊完一個按鈕后有多個按鈕同時提供選擇)情況時,可以使用路徑分析的方法,路徑分析更加基礎(chǔ)、更加全面、更加豐富、更能真實再現(xiàn)玩家在游戲中的行為軌跡。

另一方面是對用戶付費行為的深度挖掘。付費用戶是直接給公司創(chuàng)造價值的核心用戶群,通過研究這批用戶的付費數(shù)據(jù),把脈其付費特征,可以實現(xiàn)精準推送,有效付費轉(zhuǎn)化率。

Part 1:路徑分析

總體來說,路徑分析有以下一些典型的應(yīng)用場景:

可以根據(jù)不同的應(yīng)用場景選擇不同的算法實現(xiàn),比如利用sunburst事件路徑圖對玩家典型的、頻繁的模式識別,利用基于時序的關(guān)聯(lián)規(guī)則發(fā)現(xiàn)前后路徑的關(guān)系。

最樸素遍歷法是直接對主要路徑的流向分析,因此最直觀和最容易讓人理解。

1)當用戶行為路徑比較復(fù)雜的時候,我們可以借助當前最流行的數(shù)據(jù)可視化D3.js庫中的Sunburst Partition來刻畫用戶群體的事件路徑點擊狀況。從該圖的圓心出發(fā),層層向外推進,代表了用戶從開始使用產(chǎn)品到離開的整個行為統(tǒng)計;sunburst事件路徑圖可以快速定位用戶的主流使用路徑。靈活使用sunburst路徑統(tǒng)計圖,是我們在路徑分析中的一大法寶。

在R中,我們可以利用sunburstR包中的sunburst函數(shù)實現(xiàn)sunburst事件路徑圖,通過 install.packages("sunburstR")命令完成安裝。我們以sunburstR包中自帶的visit-sequences.csv數(shù)據(jù)集為例進行演示,用sunburst函數(shù)繪制sunburst事件路徑圖。

利用<a href='/map/r/' style='color:#000;font-size:inherit;'>R語言</a>對游戲用戶進行深度挖掘5

可見,當我們選中某條路徑時,其他路徑顏色變暗,圓圈中的數(shù)字表示選中路徑的人數(shù)(或次數(shù))在總?cè)藬?shù)(或次數(shù))的占比。右上角是圖例,不同顏色代表不同的點擊事件。左上角是我們選中的事件路徑流向。

2)我們可以利用基于時序的關(guān)聯(lián)規(guī)則來研究玩家的點擊情況。目的是想找出玩家點擊玩牌前一部分的點擊情況。在R中,可以使用arulesSequences包中的核心函數(shù)cspade實現(xiàn)。此分析的關(guān)鍵是如何將普通數(shù)據(jù)集轉(zhuǎn)換成模型能識別的事務(wù)型數(shù)據(jù)集。

棋牌游戲玩家從進入游戲到玩牌的點擊路徑是:歡迎界面操作,大廳界面點擊操作,進入房間玩牌

現(xiàn)在統(tǒng)計某個周期內(nèi)該款棋牌游戲的玩家點擊事件數(shù)據(jù),先查看前六行情況:

第一列是玩家id,第二列是玩家點擊按鈕的順序,第三列是點擊事件ID(其中11034表示點擊開始玩牌按鈕,其他ID表示點擊“個人信息”、“房間列表”、“好友列表”、“halltool”四大板塊的按鈕)。

接下來,我們可以利用as函數(shù)將數(shù)據(jù)類型轉(zhuǎn)換成事務(wù)型數(shù)據(jù),結(jié)果如下所示:

利用arulesSequences包中的cspade函數(shù)實現(xiàn)cSPADE算法。由于要找出所有到達開始打牌的路徑,所以將支持度閾值support設(shè)置為0,且欲返回點擊開始打牌和前一次的點擊事件,即返回序列的數(shù)據(jù)項數(shù)最大為2,所以maxlen被設(shè)置為2。

然后使用sort函數(shù)將myrules按照支持度的數(shù)值進行降序排序,并設(shè)置規(guī)則表達式,篩選出序列中最后一個數(shù)據(jù)項為{click=11034}的序列。


序列2中的<{click=11008},{click=11034}>表示點擊行為順序是從11008(從新手場進入玩牌房間)到11034(開始玩牌),支持度為0.679。

最后,篩選關(guān)鍵點擊按鈕,衡量其對11034的貢獻度。首先計算各點擊事件支持度的百分比,并使用cumsum()函數(shù)計算支持度support的累計百分比,并把累計百分比達到75%以上的點擊事件作為引導(dǎo)用戶點擊玩牌11034的重要事件觸發(fā)點。并利用recharts包的echartr函數(shù)繪制垂直的金字塔圖。

主要結(jié)論:11008是為按鈕11034的點擊貢獻最大的引流按鈕,support占比為19.5%,接近全部引流按鈕的五分之一。

Part 2:付費用戶深度挖掘

針對游戲付費用戶常用的深度挖掘手段如下圖所示:

LTV預(yù)測法是根據(jù)玩家的前期付費能力預(yù)測未來一段時間的用戶生命周期價值,這在市場做廣告投放時候有很大的參考意義。玩家物品購買的關(guān)聯(lián)分析和社群發(fā)現(xiàn),可以發(fā)現(xiàn)不同物品間的關(guān)系,從而可以進行物品捆綁銷售策略的建議?;谕婕椅锲返闹悄芡扑]是利用物品的協(xié)同過濾方法對每一個玩家的購物可能進行推薦,從而實現(xiàn)個性化推薦,這個在現(xiàn)在的電商、互聯(lián)網(wǎng)是非常流行的做法。

從數(shù)據(jù)庫中導(dǎo)出一份關(guān)于玩家物品購買數(shù)據(jù),包括用戶id、商品名稱和購買數(shù)量三個變量。前六行如下:

1)現(xiàn)在,希望利用arules包中的apriori算法對上面的數(shù)據(jù)進行關(guān)聯(lián)規(guī)則發(fā)現(xiàn)。此時,需要把數(shù)據(jù)轉(zhuǎn)化成事務(wù)型數(shù)據(jù)。代碼如下:

現(xiàn)在,可以利用aurles進行關(guān)聯(lián)規(guī)則分析和利用aurlesViz包進行規(guī)則可視化。

由圖可知,{超值大禮包} & {新手禮包}說明這兩條規(guī)則的提升度最大;{解鎖滑板} & {限量版角色}圓圈最大,說明這兩條規(guī)則的支持度最大。

2)最后,讓我們用recommenderlab對玩家購買道具進行智能推薦。在構(gòu)建模型之前,我們需要將數(shù)據(jù)轉(zhuǎn)換為評分矩陣。

選擇IBCF建立推薦模型,對玩家進行top3推薦。

從上面的分享可知,我們在做數(shù)據(jù)分析建模之前,數(shù)據(jù)轉(zhuǎn)化處于非常重要的地位。如何把原始數(shù)據(jù)轉(zhuǎn)化成模型可以識別的數(shù)據(jù),需要大家平時的經(jīng)驗積累。以上內(nèi)容是在第九屆中國R語言會議的分享內(nèi)容。也是明年初將要出版的《R語言游戲數(shù)據(jù)分析》一書關(guān)于用戶分析的部分內(nèi)容。


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }