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

熱線電話:13121318867

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

利用R語言對(duì)游戲用戶進(jìn)行深度挖掘

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

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

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

Part 1:路徑分析

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

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

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

1)當(dāng)用戶行為路徑比較復(fù)雜的時(shí)候,我們可以借助當(dāng)前最流行的數(shù)據(jù)可視化D3.js庫中的Sunburst Partition來刻畫用戶群體的事件路徑點(diǎn)擊狀況。從該圖的圓心出發(fā),層層向外推進(jìn),代表了用戶從開始使用產(chǎn)品到離開的整個(gè)行為統(tǒng)計(jì);sunburst事件路徑圖可以快速定位用戶的主流使用路徑。靈活使用sunburst路徑統(tǒng)計(jì)圖,是我們?cè)诼窂椒治鲋械囊淮蠓▽殹?

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

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

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

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

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

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

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

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

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

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


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

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

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

Part 2:付費(fèi)用戶深度挖掘

針對(duì)游戲付費(fèi)用戶常用的深度挖掘手段如下圖所示:

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

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

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

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

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

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

選擇IBCF建立推薦模型,對(duì)玩家進(jìn)行top3推薦。

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


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

若不方便掃碼,搜微信號(hào):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(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".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 = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+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); }