許多年來(lái),我一直領(lǐng)導(dǎo)谷歌搜索日志的數(shù)據(jù)科學(xué)團(tuán)隊(duì)。經(jīng)常需要我們對(duì)一些亂七八糟的結(jié)果來(lái)賦予意義,對(duì)日志記錄的操作來(lái)挖掘新現(xiàn)象,驗(yàn)證別人的分析,以及用于解釋用戶行為的度量指標(biāo)。有些人似乎天生就擅長(zhǎng)做這種高質(zhì)量的數(shù)據(jù)分析。這些工程師和分析師常常被描述為“謹(jǐn)慎”、“有技術(shù)”。但實(shí)際上這些形容詞是什么意思?您怎么做才能贏得這些標(biāo)志?
為了回答這些問題,我將Google公司的經(jīng)驗(yàn)整理進(jìn)一篇文檔,并得意地將他簡(jiǎn)單命名為“好的數(shù)據(jù)分析”。令我驚奇的是,這篇文檔比我在谷歌過去十一年做的其他任何文檔的閱讀量都高。在上次大改版之后的四年時(shí)間里,每次檢查的時(shí)候,我甚至發(fā)現(xiàn)有許多Goolge員工翻看它。
為什么經(jīng)過這段時(shí)間,這個(gè)文檔使那么多人產(chǎn)生共鳴?我認(rèn)為最主要的原因是全文都是關(guān)于具體的可以實(shí)施的方案,不只是抽象的理想。我見過許多工程師和分析師養(yǎng)成了這些(文中涉及的)習(xí)慣,并進(jìn)行高質(zhì)量的工作。我將在這個(gè)博客中分享那篇文檔的內(nèi)容。
建議總結(jié)起來(lái),分為三大類:
技術(shù):如何操作和檢測(cè)數(shù)據(jù)的思想和技術(shù)。 過程:一些建議,關(guān)于怎樣處理您的數(shù)據(jù),應(yīng)提出怎樣的問題,還有一些需要檢查的事情。 溝通:如何與他人合作及交流,關(guān)于您的數(shù)據(jù)和見解。
技術(shù)
看看你的數(shù)據(jù)分布
雖然我們一般會(huì)使用總體度量(均值、中值、標(biāo)準(zhǔn)差,等等)和人交流數(shù)據(jù)分布,但是您應(yīng)該常常關(guān)注分布的更豐富的表示形式。直方圖、累積分布函數(shù)(CDFs)、Q-Q圖,諸如此類給予您了解是否存在重要有趣的數(shù)據(jù)特征,如多模態(tài)行為或是一個(gè)明顯的異常類,您需要決定如何總結(jié)它們。
考量異常值
您應(yīng)當(dāng)關(guān)注您數(shù)據(jù)中的異常值。它們會(huì)成為煤堆中的金絲雀,是您的分析所暴露的更基本的問題。從您的數(shù)據(jù)中將他們排除,或把它們放在一起形成一個(gè)“異常”類別,這樣做可以,但您應(yīng)該確保您知道為什么一些數(shù)據(jù)最后被放在這一類。例如,點(diǎn)擊率(CTR)最低的查詢,可能顯示了在用戶界面中有一些點(diǎn)擊元素是您無(wú)法統(tǒng)計(jì)的。點(diǎn)擊率最高的查詢,可能又會(huì)反映了您不應(yīng)統(tǒng)計(jì)的點(diǎn)擊。另一方面,一些異常值是您永遠(yuǎn)無(wú)法解釋的,所以這里投入多少時(shí)間您需要特別留意。
報(bào)告噪音或者置信度
首要的是,我們必須意識(shí)到存在隨機(jī)性,這很坑。如果您不小心,您發(fā)現(xiàn)的模式就混著噪聲。每個(gè)您生成的估計(jì)量,您應(yīng)當(dāng)附上估計(jì)的置信度。有時(shí)這可以相當(dāng)正式和精確(采取一些測(cè)量方法,如估計(jì)量的置信區(qū)間或可信區(qū)間,以及結(jié)論的p值或貝葉斯因子),有時(shí)也沒那么嚴(yán)格。例如,假如一個(gè)同事問您,多少查詢關(guān)于周一我們獲得的青蛙數(shù)量,您可能會(huì)做一個(gè)快速分析,看了兩個(gè)星期一就報(bào)告“通常介于1000萬(wàn)到1200萬(wàn)”(而不是真實(shí)數(shù)字)。
看實(shí)例(這里的實(shí)例指數(shù)據(jù)的實(shí)際情況)
當(dāng)您在編寫新的分析代碼,您需要看下這些底層數(shù)據(jù)的實(shí)例,您寫的代碼是如何解釋這些實(shí)例的。不這樣做,要用的分析代碼復(fù)雜一些您基本上就寫不出來(lái)了。您的分析能從底層數(shù)據(jù)挖出許多特征,并梳理成有用的總結(jié)。通過查看個(gè)體實(shí)例的全部復(fù)雜情況,您會(huì)得到合理的總結(jié),從而信心百倍。
您應(yīng)該做分層抽樣,在整個(gè)分布中都得到采樣,這樣就不會(huì)只集中在最普遍的例子上。
舉例來(lái)說(shuō),如果您要計(jì)算“點(diǎn)擊時(shí)間”(TimetoClick),確保您能看到整個(gè)分布的實(shí)例,特別是極端情況。如果您沒有合適的工具或者可視化方式來(lái)查看您的數(shù)據(jù),您需要先完成這個(gè)。
劃分?jǐn)?shù)據(jù)
這里的劃分意味著將數(shù)據(jù)劃分為不同的子集,分別看下在這些子集中您測(cè)到的值。在網(wǎng)站流量分析中,我們一般按照一些維度來(lái)劃分,如“移動(dòng)端還是桌面端”、“瀏覽器種類”、“所在地”等等。如果底層現(xiàn)象可能在子集之間以不同的方式工作,您必須劃分?jǐn)?shù)據(jù)看看是否是這樣。即使您不期望一段數(shù)據(jù)能有什么用,看下幾個(gè)段之間的內(nèi)部一致性(譯者注:原本是一列數(shù)據(jù),但是被劃分到不同子集中),如果您測(cè)量的是正確的東西,那也帶給您更大的信心。在某些情況下,個(gè)別子集可能存在壞數(shù)據(jù)、損毀的記錄,或者在某種程度上是完全不同的東西。
每次您劃分?jǐn)?shù)據(jù)來(lái)比較兩組(比如實(shí)驗(yàn)組/控制組,但即使是時(shí)間A與時(shí)間B的比較),您都需要注意混淆的遷移(mixshift,譯者注:按照下文辛普森悖論的推論,這里指原本存在某種特征的兩個(gè)組,分別討論時(shí)存在這種特征,但是兩組混在一起時(shí)這種特征卻消失)?;煜倪w移出現(xiàn)在當(dāng)每段的數(shù)據(jù)量在各比較組之間不同的時(shí)候。這可能是辛普森悖論和其他混淆導(dǎo)致的。一般來(lái)說(shuō),如果在您的兩組中,一段的數(shù)據(jù)量是大致相同的,您可以放心進(jìn)行比較。