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

熱線電話:13121318867

登錄
首頁精彩閱讀如何對應(yīng)用程序的用戶數(shù)據(jù)進行定量分析
如何對應(yīng)用程序的用戶數(shù)據(jù)進行定量分析
2016-02-26
收藏

如何對應(yīng)用程序的用戶數(shù)據(jù)進行定量分析

數(shù)據(jù)科學關(guān)注查找噪聲中隱藏的信號。這一點說起來容易做起來難,但無需依靠眾多數(shù)據(jù)專家即可實現(xiàn)。本文介紹的定量分析技術(shù)是非常實用的入門方法(鏈接中提供額外信息),適用于想親自使用基礎(chǔ)統(tǒng)計技術(shù)的人員。從本質(zhì)上來講,其流程可以總結(jié)為以下四步:

1.觀察:移動用戶數(shù)據(jù)趨勢可能會帶來一些不可預(yù)料的見解,幫助更好地理解用戶使用應(yīng)用程序的方式、時間、地點和原因。這些見解具有潛在價值,可以據(jù)此制定后續(xù)決策,優(yōu)化用戶體驗。

2.形成假設(shè)框架:無法獲取全部信息時,需要進行歸納推理。對于移動應(yīng)用程序來說,這一點顯然正確,因為目標用戶不可能聚在一起等著你去采訪。

3.數(shù)據(jù)采集:對假設(shè)進行判斷需要面對的挑戰(zhàn)是確定對相關(guān)任務(wù)有幫助的可用證據(jù)。在我看來,這得先做好才考慮機器學習算法的細節(jié)。

4.評估假設(shè):生成模型的出發(fā)點是希望進一步解釋數(shù)據(jù)。接下來,根據(jù)模型對目前所觀察到數(shù)據(jù)的解釋情況,對模型可信度進行評估。

制定高質(zhì)量并且切實可行的決策

數(shù)據(jù)科學可以描述為業(yè)務(wù)假設(shè)實際運行情況之間的競爭。與 Countly 合作將獲取完整的移動用戶行為數(shù)據(jù)集以及數(shù)據(jù)可視化所需的整套工具。定量分析需要使用完整的移動用戶行為數(shù)據(jù)集,而非抽樣技術(shù)分析所采集的數(shù)據(jù),后者可能會在分析中引入不確定性的偏差。只需單擊幾次,就能夠以可視化方式查看關(guān)于用戶的各種詳細信息。例如,可以使用 Countly 在多種語言環(huán)境下快速可視化應(yīng)用程序用戶的原始數(shù)據(jù)和百分比數(shù)據(jù)(請參見下方屏幕截圖)。此方法比 Excel 更加形象生動,無需額外導(dǎo)出原始數(shù)據(jù)進行日常數(shù)據(jù)分析,為團隊節(jié)省時間。

此外,Countly 可以靈活整合其他來源的移動數(shù)據(jù)和人口統(tǒng)計數(shù)據(jù),例如銀行可能需要從后端整合數(shù)據(jù)(年齡、估計收入、婚姻狀況、最近大宗交易記錄和近期地址變更),以便 Countly 更好地了解用戶在應(yīng)用程序內(nèi)的行為并通過特定推送通知促進微目標定位。這樣數(shù)據(jù)分析就能夠更具有針對性,更加適應(yīng)業(yè)務(wù)需要。

為了幫助您在令人興奮的數(shù)據(jù)驅(qū)動領(lǐng)域中不斷發(fā)展,您需要擴展成功的定義:對您來說,“成功”意味著什么?這個問題其實并不像看起來那樣簡單。您優(yōu)先考慮什么問題?如果您重點關(guān)注應(yīng)用程序內(nèi)購買,那么您的目標是收入和用戶生命周期價值 (LTV)。對于其他大部分不以貨幣化為中心的應(yīng)用程序來說,主要關(guān)注點可能在于留存用戶。

那么,現(xiàn)在我們開始觀察數(shù)據(jù)。利用 Countly 您能夠訪問 100% 應(yīng)用程序用戶數(shù)據(jù),還可以詳細查看高參與度用戶(假設(shè)您運營一款健身應(yīng)用程序,并選擇留存率作為成功標準)以及這些用戶注冊時執(zhí)行的操作。觀察高參與度用戶行為模式,然后進行定量訪問確定應(yīng)用程序最令人興奮的特點。隨后,您的團隊可以獲取下載應(yīng)用的初 10 天內(nèi)完成對提高留存率有幫助操作的主要假設(shè):

1.完成 3 項推薦鍛煉

2.在社區(qū)發(fā)布 5 件信息

3.關(guān)注5 份健康飲食

我們?yōu)槊宽棽僮鞫x隊列,然后在采樣數(shù)據(jù)上使用二分類測試比較注冊 2 個月后每組用戶留存表現(xiàn)。之后我們可以觀察每項測試的正負預(yù)測值(定義如下),確定我們正在尋找的關(guān)鍵閾值。

測試 1:用戶在初 10 天內(nèi)是否完成 ≥ 3項推薦鍛煉?

測試 2:用戶在初 10 天內(nèi)在社區(qū)發(fā)布 ≥ 5 件信息?

測試 3:用戶在初 10 天內(nèi)關(guān)注 ≥ 5 份健康飲食?

顯然完成 3 項推薦鍛煉勝出。因此,這項操作有較高的 2 個月留存正預(yù)測值;相反地,完成少于 3 項鍛煉有較高的負預(yù)測值。這項測試可以很好地預(yù)測 2 個月留存情況:達到標準,有 99% 機率留存應(yīng)用程序;未達到標準,有 95% 機率會丟失用戶。

發(fā)布 5 件信息和關(guān)注 5 份健康飲食與留存情況有很大關(guān)聯(lián)(因此有較高的正預(yù)測值),但未達到關(guān)鍵條件標準。未執(zhí)行這些操作的用戶仍有很高機率在 2 個月后仍留存應(yīng)用程序。

到目前為止,完成推薦鍛煉似乎成為關(guān)鍵性閾值。另一項評估要點在于讓用戶完成行動的價值。換言之,讓用戶完成 3 項推薦鍛煉進而提高 2 個月后留存應(yīng)用程序所需付出的代價。分析數(shù)字時,完成 3 項推薦鍛煉可使 2 個月后留存機率提高大約 20 倍,而發(fā)布 5 次更新和關(guān)注 5 份健康飲食甚至無法讓留存率翻倍(分別提高 1.3 倍和 1.1 倍)。你可以通過回歸分析得出這一結(jié)論,但所需時間過長。如要了解更多信息,我建議閱讀該URL數(shù)據(jù)分析結(jié)果表明,值得投入時間和精力鼓勵用戶完成 3 項推薦鍛煉。發(fā)布 5 件信息和關(guān)注 5 份健康飲食與留存情況有很大關(guān)聯(lián)(因此有較高的正預(yù)測值),但未達到關(guān)鍵條件標準。未執(zhí)行這些操作的用戶仍有很高機率在 2 個月后仍留存應(yīng)用程序。

如果對機器學習和更復(fù)雜的模型感興趣,我建議針對非結(jié)構(gòu)化數(shù)據(jù)使用 K 均值聚類(K-Means Clustering),使用 R 語言實現(xiàn)。該技術(shù)提供另一種識別與 3 個月后留存率等業(yè)務(wù)目標相關(guān)特定聚類的方法。觀察結(jié)果按指定標準分為 K 組并重新分組,形成關(guān)聯(lián)最為緊密的聚類(請參見以下示例)。

與分層聚類相比,K 均值聚類可以處理更大規(guī)模的數(shù)據(jù)集。此外,觀察結(jié)果不會永遠固定在一個聚類中。分析時,觀察結(jié)果會移動,從而改善整體結(jié)果。要了解更多關(guān)于 K 均值聚類的信息,我建議閱讀《R 語言實戰(zhàn)》作者 Rob Kabacoff 發(fā)表的文章。

保持簡潔

誤差最小的通用模型最有可能準確預(yù)測未來觀察結(jié)果——奧卡姆剃刀原理。確定關(guān)鍵性閾值時的兩個重要注意事項:保持穩(wěn)定簡潔。如果涉及過多不同行動,將難以衡量并且可能會隨時間發(fā)生變化。同時也會分散團隊的注意力 — 這引出我們的下一步驟。

采取行動

既然已經(jīng)確定關(guān)鍵指標,即必須加以克服以便提高用戶滿意度和參與度的閾值,那么就應(yīng)該采取相應(yīng)行動。Sokrati,印度領(lǐng)先的網(wǎng)絡(luò)廣告績效管理公司,已成功在開節(jié)日期間展開2-3天的Facebook 活動為珠寶品牌贏了超過300%的銷售增長。他們的策略包括三個步驟:

關(guān)鍵在于利用節(jié)日期間有針對性地鼓勵更多用戶盡快行動。深入挖掘不同的受眾群以擴大受眾群體,你會看到參與和保留度上升。我希望這些概念與結(jié)構(gòu)可以幫你。歡迎你聯(lián)系Countly繼續(xù)討論與分享自己的故事!


數(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); }