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

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀數(shù)據(jù)的秘密(下)如何分析數(shù)據(jù)
數(shù)據(jù)的秘密(下)如何分析數(shù)據(jù)
2015-11-23
收藏

數(shù)據(jù)的秘密(下)如何分析數(shù)據(jù)



上一篇文章中,我們介紹了為什么要關(guān)注數(shù)據(jù),在本文中我將分享具體如何做。

數(shù)據(jù)的秘密(上)為什么要關(guān)注數(shù)據(jù)?

關(guān)注宏觀和細(xì)節(jié)

大多數(shù)人都能做到關(guān)注宏觀的數(shù)據(jù),拿互聯(lián)網(wǎng)產(chǎn)品來(lái)說(shuō),日活,月活,流失率,NPS(凈推薦值),這些都是宏觀的數(shù)據(jù)。宏觀數(shù)據(jù)能夠反映出產(chǎn)品的整體狀況,是值得長(zhǎng)期關(guān)注的。

但是在宏觀之外,我們還應(yīng)該關(guān)注一些細(xì)節(jié)的數(shù)據(jù)。拿日活來(lái)說(shuō),我們可以再進(jìn)一步進(jìn)行分析,比如:

  • 日活中新用戶所占的比例
  • 日活中 iOS 和 Android 的各自占比
  • 日活中大家集中活躍的時(shí)間段
  • 日活中用戶的會(huì)話(Session)次數(shù)分布,時(shí)長(zhǎng)分布
  • 日活中用戶平均使用你的產(chǎn)品核心功能的次數(shù)

當(dāng)你把數(shù)據(jù)拿放大鏡看得更細(xì)的時(shí)候,你可能就會(huì)發(fā)現(xiàn)一些問(wèn)題。帶著這些問(wèn)題,你進(jìn)一步分析,就可以找到更多信息。

舉一個(gè)我們創(chuàng)業(yè)產(chǎn)品項(xiàng)目的例子,我們發(fā)現(xiàn)日活中的用戶,有相當(dāng)一部分用戶只是注冊(cè)了,但是并沒(méi)有使用我們產(chǎn)品的核心功能,于是我們擔(dān)心會(huì)不會(huì)有一些付費(fèi)推廣渠道「刷量」。

所以,我們將新增用戶中不活躍的比例按渠道來(lái)劃分。通過(guò)這樣的劃分,我們很容易找到那些效果差的渠道,從而選擇更有效的推廣渠道。

關(guān)注原始數(shù)據(jù)

原始數(shù)據(jù)是什么?就是那些不是通過(guò)別的數(shù)據(jù)計(jì)算出來(lái)的,不能被分割的數(shù)據(jù)。這些數(shù)據(jù)是最最真實(shí)的,而其它通過(guò)計(jì)算出來(lái)的數(shù)據(jù),因?yàn)檫M(jìn)行了二次加工,所以不一定能夠完全反映出產(chǎn)品的問(wèn)題。

再舉一個(gè)項(xiàng)目的例子,我們?yōu)榱搜芯?NPS 給我們打零分的用戶。把這些用戶的搜索數(shù)據(jù)、操作記錄都抽樣出來(lái),一個(gè)用戶一個(gè)用戶看,然后進(jìn)行分類整理。最終我們發(fā)現(xiàn)這里面小學(xué)生用戶占比很高,從而調(diào)整了產(chǎn)品的策略,在內(nèi)容和算法上對(duì)小學(xué)生進(jìn)行了兼顧。

關(guān)注原始數(shù)據(jù)除了能改進(jìn)產(chǎn)品外,還能在技術(shù)上提高代碼的質(zhì)量。我們?cè)?jīng)遇到過(guò)一個(gè)很難復(fù)雜的 Bug,在我們的測(cè)試機(jī)中都無(wú)法復(fù)現(xiàn),但是我們通過(guò)分析相關(guān)用戶的操作記錄,找到了具體崩潰的操作方法。

雖然該操作方法不能在我們自己的機(jī)器上復(fù)現(xiàn) Bug,但是我們卻能找到相關(guān)的關(guān)鍵代碼。通過(guò)一些針對(duì)這些代碼的討論,我們就找到了 Bug 的原因?,F(xiàn)在回想起來(lái),如果沒(méi)有這些原始數(shù)據(jù),要修復(fù)這個(gè) Bug 就要困難很多了。

關(guān)于面試

其實(shí)不光做產(chǎn)品要看「原始數(shù)據(jù)」,面試一個(gè)人也是。我在面試的時(shí)候,會(huì)選一個(gè)候選人簡(jiǎn)歷上的事情,進(jìn)行深入了解。我會(huì)讓他提供詳細(xì)相關(guān)工作的數(shù)據(jù)和事例。通過(guò)這些「原始數(shù)據(jù)」,我能夠更加方便地「還原他真實(shí)的工作場(chǎng)景」,從而對(duì)他的工作質(zhì)量作出盡量客觀的評(píng)價(jià)。

舉個(gè)例子,有一個(gè)產(chǎn)品實(shí)習(xí)生候選人在簡(jiǎn)歷上寫(xiě)他運(yùn)營(yíng)了一個(gè)微信公眾號(hào),「粉絲逾千,單日粉絲增量 200 以上,數(shù)篇文章閱讀量超過(guò) 3000」。但是在面試中,詳細(xì)追問(wèn)這些數(shù)字,我們才發(fā)現(xiàn)他說(shuō)的「逾千」是指 1000,而「單日粉絲增量 200 以上」是指的最高的一天,其它信息也都是有夸大的成分。

還有一次,我面試一個(gè)技術(shù)候選人,這個(gè)候選人說(shuō)他有代碼潔癖,覺(jué)得前公司的代碼「很亂,受不了」。但是我讓他具體舉幾個(gè)例子的時(shí)候,他卻很難說(shuō)出實(shí)際的例子。還有候選人說(shuō)他喜歡看技術(shù)書(shū),但是卻無(wú)法說(shuō)出他印象最深的一本技術(shù)書(shū)以及其中的部分觀點(diǎn)。

通過(guò)了解細(xì)節(jié),我們就可以揭開(kāi)簡(jiǎn)歷中光鮮描述的外衣,了解到事情背后的細(xì)節(jié),這對(duì)我們?cè)u(píng)價(jià)候選人至關(guān)重要。

數(shù)據(jù)可視化

數(shù)據(jù)可視化是指將原本枯燥的數(shù)據(jù),用折線圖、餅圖、柱狀圖等方式呈現(xiàn)出來(lái),它可以使我們更容易發(fā)現(xiàn)數(shù)據(jù)的規(guī)律,也更容易發(fā)現(xiàn)數(shù)據(jù)的異常。

在項(xiàng)目中,數(shù)據(jù)可視化多次給我們帶來(lái)巨大的幫助,包括:

  • 了解數(shù)據(jù)的特點(diǎn):我們將項(xiàng)目的 QPS 按每小時(shí)為頻率畫(huà)出成一條折線圖,所以我們很容易知道我們服務(wù)器高峰期的時(shí)間段以及訪問(wèn)量。
  • 發(fā)現(xiàn)服務(wù)異常:我們將服務(wù)器搜索的失敗率占比畫(huà)出成一個(gè)餅圖,有一天,這個(gè)餅圖中顯示出失敗率突然變高了。同時(shí),每日的 NPS 分?jǐn)?shù)突然也變低了很多。我們借此發(fā)現(xiàn)了新擴(kuò)容的一臺(tái)服務(wù)器故障。因?yàn)槟桥_(tái)服務(wù)器是新加的,所以運(yùn)維忘記了增加監(jiān)控,如果沒(méi)有數(shù)據(jù)可視化的幫助,這個(gè)故障可能會(huì)持續(xù)更長(zhǎng)時(shí)間。
  • 監(jiān)控核心質(zhì)量:我們將項(xiàng)目的一些核心指標(biāo)畫(huà)成折線圖,然后大家都努力讓核心指標(biāo)更優(yōu)。
  • 發(fā)現(xiàn)惡意攻擊:一些重要指標(biāo),我們都會(huì)可視化出來(lái),這樣當(dāng)這些數(shù)據(jù)指標(biāo)變化時(shí),我們就會(huì)進(jìn)一步分析原因,從中我們還發(fā)現(xiàn)了一些競(jìng)爭(zhēng)對(duì)手惡意的攻擊行為。

數(shù)據(jù)可視化工具

我們當(dāng)然不可能所有的數(shù)據(jù)可視化都是自己手工用 Excel、Numbers 之類的工具來(lái)生成。所以,我們開(kāi)發(fā)了一個(gè)數(shù)據(jù)可視化的平臺(tái),我們把它叫做 flyboard。

flyboard 提供了各種數(shù)據(jù)可視化的方式,包括數(shù)字,折線圖,餅圖,環(huán)形圖,柱狀圖等。如下圖所示:

<a href='/map/shujukeshihua/' style='color:#000;font-size:inherit;'>數(shù)據(jù)可視化</a>工具

我們將所有的原始數(shù)據(jù)都?xì)w集到分布式存儲(chǔ) Hbase 中,然后通過(guò)配置一些定時(shí)的計(jì)算任務(wù),就可以以幾乎實(shí)時(shí)地方式,看到產(chǎn)品的各項(xiàng)可視化指標(biāo)。

這些指標(biāo),有宏觀的,也有一些比較細(xì)分的,如果我們對(duì)某項(xiàng)指標(biāo)的數(shù)值有疑問(wèn),我們就會(huì)進(jìn)一步寫(xiě)一些分析腳本,來(lái)從 Hbase 中計(jì)算一些數(shù)據(jù)進(jìn)行檢查。

在我們公司,我們的三個(gè)產(chǎn)品的辦公區(qū)域,都掛著一個(gè)巨大的顯示器,這個(gè)顯示器除了用于 Scrum 的每日站會(huì)同步進(jìn)度外,平時(shí)都用 flyboard 顯示著產(chǎn)品的各項(xiàng)核心數(shù)據(jù)。

悄悄告訴你一個(gè)秘密,我們的 flyboard 可視化平臺(tái)是開(kāi)源的,項(xiàng)目地址是:https://github.com/yuantiku/flyboard ,在 Github 上你可以下載到完整的代碼,我們也附有完整的安裝使用說(shuō)明文檔。如果你還沒(méi)有使用任何數(shù)據(jù)可視化工具,歡迎嘗試一下 flyboard。

學(xué)習(xí)寫(xiě) SQL

由于有 Hadoop、Hbase 、 Hive 的存在,產(chǎn)品經(jīng)理也可以通過(guò)一些簡(jiǎn)單的 SQL 語(yǔ)句,就可以生成MapReduce 任務(wù),進(jìn)行分布式的數(shù)據(jù)分析運(yùn)算。

所以數(shù)據(jù)分析最最常用的辦法就是寫(xiě) SQL。在很多公司,產(chǎn)品經(jīng)理都在這方面能力比較欠缺,這使得產(chǎn)品經(jīng)理在需要數(shù)據(jù)時(shí),需要向技術(shù)提需求。技術(shù)會(huì)根據(jù)自己的工作排期。這樣一來(lái)一回,一般一個(gè)簡(jiǎn)單的數(shù)據(jù)分析都需要一天時(shí)間。

這樣的低效率的方式,會(huì)扼殺產(chǎn)品經(jīng)理的一些數(shù)據(jù)分析需求,特別是那種需要探索式發(fā)現(xiàn)的數(shù)據(jù)分析工作。因?yàn)檫@種工作需要不停地根據(jù)數(shù)據(jù)分析的結(jié)果,調(diào)整各種策略來(lái)寫(xiě)嘗試的 SQL。

所以在我們團(tuán)隊(duì),我們希望產(chǎn)品經(jīng)理都能有基本的數(shù)據(jù)分析能力,一些簡(jiǎn)單的 SQL 都是需要自己能夠?qū)懙?。?dāng)然,一些特別復(fù)雜的 SQL,產(chǎn)品經(jīng)理可能還是需要向技術(shù)同事咨詢。

具體如何寫(xiě) SQL,市面上已經(jīng)有非常多的相關(guān)書(shū)籍了,我在這里就不再展開(kāi)介紹了。

數(shù)據(jù)查看和分析一定要方便

如果你仔細(xì)觀察就會(huì)發(fā)現(xiàn),很多革命性的產(chǎn)品就只是讓某件事情更方便了一點(diǎn)點(diǎn)。智能手機(jī)其實(shí)只是讓你上網(wǎng)更方便了一點(diǎn),但是這種方便使得人們從以前有「離線和在線」的狀態(tài),變成了永久在線。于是,移動(dòng)互聯(lián)網(wǎng)誕生了,本質(zhì)上來(lái)說(shuō),移動(dòng)互聯(lián)網(wǎng)就是一種人們永久在線的網(wǎng)絡(luò),但是就是這么一點(diǎn)點(diǎn)的方便,使得很多行業(yè)被完全顛覆。

而數(shù)據(jù)分析也是一樣,我們應(yīng)該盡量讓數(shù)據(jù)觸手可得,這樣我們才能將數(shù)據(jù)分析的效率最大化,一定程度上的效率提升就會(huì)產(chǎn)生質(zhì)變,使得我們專注于數(shù)據(jù)做更多事情。

我們之前移動(dòng)端統(tǒng)計(jì)用 Flurry,但是 Flurry 在中國(guó)實(shí)在太慢了,即使掛上國(guó)外的 VPN 也很慢!如果產(chǎn)品經(jīng)理每次登錄 Flurry 要 10 秒鐘的話,那么他就可能將注意力臨時(shí)轉(zhuǎn)移到別的事情上,然后就可能忘記本來(lái)要看的數(shù)據(jù)。

為了讓數(shù)據(jù)觸手可得,我們放棄了對(duì) Flurry 的使用,我們自己開(kāi)發(fā)了日志收集平臺(tái),然后自己寫(xiě)日志計(jì)算程序,將一些核心指標(biāo)全部自己計(jì)算在 flyboard 上,我們也另外開(kāi)發(fā)了一套數(shù)據(jù)分析平臺(tái),實(shí)現(xiàn) Flurry 中的類似功能?,F(xiàn)在,我們已經(jīng)能夠非常舒服地分析數(shù)據(jù)了。

所以,如果你的公司不能很方便的查看和分析數(shù)據(jù),那么一定要想辦法改進(jìn),這些數(shù)據(jù)就像人的神經(jīng)系統(tǒng)一樣,傳遞著產(chǎn)品的健康數(shù)據(jù),重視這些數(shù)據(jù),才能夠做好產(chǎn)品。

總結(jié)

總結(jié)一下本文中的觀點(diǎn):

  • 重視宏觀數(shù)據(jù)和細(xì)節(jié)
  • 關(guān)注原始數(shù)據(jù)
  • 數(shù)據(jù)可視化
  • 學(xué)會(huì)用 SQL
  • 數(shù)據(jù)查看和分析一定要方便

數(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ù)說(shuō)明請(qǐng)參見(jiàn):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); }