1
雷鋒網(wǎng)按:本文原載于KDnuggets,譯者為白雪(某大型國企10年+IT從業(yè)者,初稿譯者)和龍星鏢局(互聯(lián)網(wǎng)從業(yè)者,終稿譯者)。
在KDnuggets上,《檢測偽數(shù)據(jù)科學家的20個問題》是1月份閱讀量最高的文章,由于作者只是提問而沒有給出答案,這篇文章也讓廚子和火車司機們混入數(shù)據(jù)科學家隊伍的難度大增。
現(xiàn)在好了!KDnuggets的編輯們湊在一塊解答了這些問題。另外,我還增加了一個經(jīng)常被忽略的問題。問題正好是21個,您一天掌握一個,正好三周時間,又可以找到混入數(shù)據(jù)科學家隊伍的捷徑了!
請大家特別注意文中用藍色字體標出的關(guān)鍵詞,即便你對于內(nèi)容完全無法理解,只要在日常交流中經(jīng)常使用這些術(shù)語,做到耗子啃尿盆兒——一肚子騷詞兒,也能算半個數(shù)據(jù)科學家了。
第二部分內(nèi)容包括防止過擬合(overfitting),實驗設(shè)計(experimental design),高/寬數(shù)據(jù)(tall and wide data),理解媒體給出統(tǒng)計數(shù)據(jù)的有效性等等。由KDnuggets的Gregory Piatetsky編輯。這是第二部分問題及答案,先從附加日的問題開始。
附加日:什么是過擬合?怎么防止過擬合?【Gregory Piatetsky解答】
答:過擬合是發(fā)現(xiàn)偶然欺騙性的、不能被后續(xù)研究實驗復現(xiàn)的結(jié)果。
我們在新聞報道上經(jīng)??吹?,有些工作推翻了以前的研究結(jié)論,像雞蛋不再對健康不利,或者飽和脂肪(saturated fat)與心臟疾病無關(guān)。我們認為這些問題是由于許多研究人員(尤其是社會科學或醫(yī)學領(lǐng)域的)經(jīng)常犯數(shù)據(jù)挖掘(data mining)的大忌—過擬合導致的。研究者在沒有合適的統(tǒng)計控制下進行了太多的假設(shè)檢驗,直到他們偶然發(fā)現(xiàn)了一些有趣的東西并報告出來。不足為奇的是,這次偶然的效應下次被發(fā)現(xiàn)的可能性會很小,或根本觀測不到。
這些研究實驗的缺陷被John P. A. Loannidis認識到,并寫在了他具有里程碑意義的論文“為什么大多數(shù)發(fā)表的研究結(jié)果都是錯的”(PLoS Medicine, 2005)中。Loannidis經(jīng)常發(fā)現(xiàn),要么是實驗結(jié)果很夸張,要么是研究發(fā)現(xiàn)沒法復現(xiàn)。在他的論文中,他給出的統(tǒng)計證據(jù)確實證實大多數(shù)聲稱的研究發(fā)現(xiàn)是錯的。
Loannidis發(fā)現(xiàn)要使一項研究發(fā)現(xiàn)是可靠的,它必須具備以下條件:
大樣本量(sample size)和顯著的效果(effects)
更大數(shù)量的、更少選擇的檢驗關(guān)系
更靈活的設(shè)計,定義,輸出和分析方式
限于資金和其他因素(包括該科學領(lǐng)域的普及性)的最小偏差
遺憾的是,這些規(guī)則往往沒有被遵守,這就產(chǎn)生了很多無法復現(xiàn)的結(jié)果。例如:從1981年至1993年,指標S&P500被發(fā)現(xiàn)與孟加拉國的黃油產(chǎn)量密切相關(guān)。
使用諸如Google correlate或Spurious correlations這樣的工具,我們自己也可以發(fā)現(xiàn)更多有趣甚至是完全虛假的的結(jié)果。
有幾個方法可以用來防止“過擬合”:
盡力找出最簡單的可能假設(shè)(hypothesis)。
正則化(為復雜性增加懲罰項)
隨機測試(Randomization Testing, 隨機化類標記,并測試你的方法-如果出現(xiàn)了一樣強有力的結(jié)果,那么一定是什么地方出錯了)
嵌套交叉驗證(Nested cross-validation, 在里層做特征選擇,然后在外層運行整個交叉驗證方法)
調(diào)節(jié)偽發(fā)現(xiàn)率(False Discovery Rate)
使用可重用保持法(reusable holdout method)—2015年提出的突破性方法
好的數(shù)據(jù)科學是站在科學認知世界的前沿,避免過擬合數(shù)據(jù)、讓公眾和媒體認識到壞的數(shù)據(jù)分析的危害性是數(shù)據(jù)科學家們的責任。
第十二天:舉例說明怎樣設(shè)計實驗來回答有關(guān)用戶行為(user behavior)的問題【Bhavya Geethika解答】
答:步驟1,制定要研究的問題:頁面加載時間對用戶滿意度評級的影響是什么?
步驟2,識別變量:我們要識別出原因和結(jié)果,自變量是頁面加載時間,因變量是用戶滿意度評級。
步驟3,構(gòu)造假設(shè):對一個網(wǎng)頁來說,較低的頁面加載時間會對用戶滿意度有更多影響。這里我們要分析的因素就是頁面加載時間。
圖12 你的實驗設(shè)計有一個缺陷
步驟4,確定實驗的設(shè)計:考慮實驗的復雜性,即一次改變一個因素或者在同一時間改變多個因素,這樣我們用的是因子設(shè)計(factorial design, 又稱2?設(shè)計)。設(shè)計的選擇要基于目標的類型(比較、篩選、響應面)[原文:Comparative, Screening, Response surface]和因素(factors)的個數(shù)。
我們還要確定采用何種實驗形式,可以是參與者組內(nèi)、參與者組間或者混合方式。例如:有兩個版本的網(wǎng)頁,一個在左邊有購買按鈕(點擊購買)另一個網(wǎng)頁這個按鈕在右邊。
參與者組內(nèi)設(shè)計(Within-participants design) – 用戶組的用戶都可以看到兩個版本的網(wǎng)頁。
參與者組間設(shè)計(Between-participants design) – 一個用戶組看到A版本,另一組的用戶看到B版本的。
步驟5,制定實驗任務和程序:
實驗中涉及的步驟的詳細描述,用來衡量用戶行為的工具, 目標和成功度量這些都要定義。收集有關(guān)用戶參與的定性數(shù)據(jù),以便進行統(tǒng)計分析。
步驟6,確定操作和測量:操作(manipulation): 控制一個層級的因素,處理另一個。我們還要定義行為的衡量標準。
延遲(Latency)-從提示到行為發(fā)生的時間(從展示出商品到用戶點擊購買按鈕用了多長時間)。
頻次(Frequency)-一個行為發(fā)生的次數(shù)(在某個時間內(nèi)點擊特定頁面的次數(shù))。
持續(xù)時長(Duration)-特定行為持續(xù)時間(添加所有商品所用的時間)。
強度(Intensity)-行為發(fā)生的強烈程度(用戶多快購買一個商品)。
步驟7,分析結(jié)果:
識別用戶行為數(shù)據(jù),根據(jù)觀測到的結(jié)果,支持或反對該假設(shè)。例如:不同頁面加載時間下用戶滿意度評級的分布是怎樣的。
第十三天:“高/寬”數(shù)據(jù)(tall/wide data)的差別是什么?【 Gregory Piatetsky解答】
答:在大多數(shù)數(shù)據(jù)挖掘、數(shù)據(jù)科學的應用中,記錄(行)比特征(列)多很多-這種數(shù)據(jù)有時被稱做“高”數(shù)據(jù)。
在像基因組學或者生物信息學的一些應用中,你可能只有很少的記錄(病人),例如100,但又可能會對每個病人做20,000個觀察。這時,通常用在“高”數(shù)據(jù)上的標準方法會導致過度擬合數(shù)據(jù),所以需要引入特殊的方法。
圖13. 針對高數(shù)據(jù)和寬數(shù)據(jù)的不同方法
問題不僅僅是變形(reshape)數(shù)據(jù)(這里有R包 useful R packages),而是通過減少特征數(shù)來尋找最相關(guān)的特征,以避免假陽性(false positives)。特征約減(feature reduction)的方法像Lasso在"Statistical Learning with Sparsity: The Lasso and Generalizations"一書中有介紹, 請在公眾號后臺發(fā)送信息“data2”獲取。
第十四天:怎樣確定一篇文章里(報紙或其他媒體上)的統(tǒng)計數(shù)據(jù)是錯的或者只是為了支持作者的觀點,而不是關(guān)于某主題正確全面的真實信息?
答:Zack Lipton提出了一個簡單的原則:如果這些統(tǒng)計數(shù)據(jù)發(fā)表在報紙上,那么它就是錯的。這里有一個來自Anmol Rajpurohit的更嚴謹?shù)慕獯稹?/span>
每個媒體都有目標受眾,對受眾的選擇在很大程度上決定了發(fā)布哪些文章、文章怎樣措辭、重點突出文章的哪部分、怎樣去講這個事件等。
要判定發(fā)表在一篇文章上統(tǒng)計數(shù)據(jù)的有效性,第一步先要看發(fā)表它的機構(gòu)和它的目標受眾。你會發(fā)現(xiàn)即使是同樣一個包含統(tǒng)計數(shù)據(jù)的新聞事件,??怂剐侣?Fox news)、華爾街新聞(wsj)和ACM/IEEE發(fā)布的會不那么一樣。因此,數(shù)據(jù)科學家能聰明地知道從哪里獲取資訊(以及要相信它幾分)。
圖14a:出現(xiàn)在“??怂剐侣劇鄙弦粋€十分具有誤導性的柱狀圖
圖14b:如何客觀地呈現(xiàn)相同的數(shù)據(jù)
作者通常通過下面的方法試圖隱藏他們研究的不足:巧妙的敘事技巧和忽略重要的細節(jié)直接跳到誘人的錯誤結(jié)論。因此,可以使用“拇指規(guī)則”(thumb’s rule)識別文章是否包含誤導人的統(tǒng)計數(shù)據(jù),檢查文章是否包含了研究方法上的細節(jié)以及研究方法是否存在有感知限制的選擇。注意查找像“樣本容量(sample size)”,“誤差范圍(margin of error)”等詞。盡管對“樣本容量”,“誤差范圍”多少合適沒有完美的答案,這些屬性在閱讀最終結(jié)論時要牢記于心。
另一個常見的錯誤報道案例是這樣的,缺乏數(shù)據(jù)素養(yǎng)(data-education)的記者從已發(fā)表的研究報告的一兩段中得到一個見解,并且為了得到他們的觀點而忽略報告的其他部分。因此,以下一些方法能夠避免你被這樣的文章愚弄:首先,一篇可靠的文章不會含有任何無事實根據(jù)的觀點。所有觀點都必須能夠?qū)芯拷Y(jié)果的支持。否則,則必須明確將其區(qū)分為“意見”,而不是一個觀點。其次,即便一篇文章引用了著名的研究論文,也并不代表它正確地運用了論文中的觀點。這能通過全面閱讀這些研究論文來判斷其與手頭文章的相關(guān)性。最后,雖然結(jié)論看起來是一篇文章最有趣的部分,但直接跳過研究方法(research methodology)的細節(jié)(例如明顯錯誤,偏差等)[原文:spot errors, bias, etc.]往往是災難性的。
理想情況下,我希望所有這些文章發(fā)表研究數(shù)據(jù)的時候也同時公布研究方法。這樣,文章才能做到真正可信,因為每個人都可以分析這些數(shù)據(jù),應用研究方法得出結(jié)論。
第十五天:解釋Edward Tufte's的“圖表垃圾”(chart junk)的概念【Gregory Piatetsky解答】
圖表垃圾指的是圖表或圖片中所有可視元素對表達信息是不必要的,或者干擾觀察者獲取信息。圖表垃圾這個名詞是由Edward Tufte在他1983年的書《定量信息的視覺展示》里提出的。
圖15 Tufte寫到:“一個無意的內(nèi)克爾錯覺,像后面兩個平面翻轉(zhuǎn)到了前面來。有的角錐體遮住了其他的;一個變量(角錐體堆疊的深度)沒有注明標識或比例”。
上圖一個來自exceluser的更現(xiàn)代的例子,由于工人和吊車的干擾,圖中的柱狀圖很難理解
這些修飾的存在迫使讀者花更大力氣而非必要地來發(fā)現(xiàn)數(shù)據(jù)的意義。
第十六天:怎樣篩查異常點(outliers)以及發(fā)現(xiàn)異常點后該如何處理?【Bhavya Geethika解答】
答:一些篩查異常點的方法有Z分數(shù)(z-score)、改進的Z分數(shù)(modified z-score)、箱線圖(box plots)、格拉布斯測試(Grubb’s test)、Tietjen-Moore測試指數(shù)平滑(Tietjen-Moore test exponential smoothing)、Kimber測試指數(shù)分布(Kimber test for exponential distribution)和移動窗口濾波算法(moving window filter algorithm)。下面是兩種穩(wěn)健(robust)方法的細節(jié):
四分位距法(Inter Quartile Range)
異常值是給定數(shù)據(jù)集中一個小于第一四分位數(shù)(Q1)或者大于第三四分位數(shù)(Q3)1.5倍四分位距以上的數(shù)據(jù)點。
High = (Q3) + 1.5 IQR
Low = (Q1) - 1.5 IQR
Tukey法(Tukey Methond)
它使用四分位距來過濾太大或太小的數(shù)。它實際上與上面的方法一樣,除了它使用了“圍欄(fences)”的概念。有兩個一高一低的圍欄:
Low outliers = Q1 - 1.5(Q3 - Q1) = Q1 - 1.5(IQR)
High outliers = Q3 + 1.5(Q3 - Q1) = Q3 + 1.5(IQR)
在圍欄之外的都是異常點。
當發(fā)現(xiàn)了異常值,不能在沒有進行定性評估下就將它們移除,因為這樣做是數(shù)據(jù)不再純凈。重要的是要理解分析問題的上下文或者說重要的是“為什么的問題-為什么異常值不同于其他數(shù)據(jù)點?”
這個原因很關(guān)鍵。如果是異常點導致了錯誤的發(fā)生,就可以把它扔掉。但如果異常點表示了一種新的趨勢、模式或者揭示了數(shù)據(jù)中有價值的結(jié)論,那么它就應該被保留。
第十七天:怎樣運用極值理論(extreme value theory)、蒙特卡洛模擬(Monte Carlo simulations)或其他數(shù)理統(tǒng)計方法來正確的估計一個小概率事件(rare event)的發(fā)生幾率。【Matthew Mayo解答】
答:極值理論關(guān)注的是小概率事件或極值,這點和經(jīng)典統(tǒng)計方法不太一樣,后者更關(guān)注平均。極值理論認為有3種分布可以建模從一些分布中隨機觀察到的極值點:Gumble, Frechet, 和 Weibull分布,也被叫做極值分布(Extreme Value Distributions, EVD)I型、II型和III型。
極值理論認為,如果從一個給定分布中產(chǎn)生N個數(shù)據(jù)集,然后創(chuàng)建一個只包含了這N個數(shù)據(jù)集的最大值的新數(shù)據(jù)集,那么這個新數(shù)據(jù)集只能被一種EVD分布精確描述:Gumble, Frechet, 或者 Weibull分布。廣義極值分布(GEV)則是一個可以組合這3種極值理論分布還有極值分布模型的模型。
首先要理解用來建模數(shù)據(jù)的模型,然后才能使用模型來建模數(shù)據(jù),最后才是評估。一旦找到最合適的模型,就能對模型進行分析,包括計算可能性。
第十八天:什么是推薦引擎(recommendation engine)?它是怎么工作的?【Gregory Piatetsky解答】
我們現(xiàn)在都對推薦很熟悉,比如netflix的“你可能喜歡的其他電影”,亞馬遜的“購買了X的用戶還買了Y”。這些系統(tǒng)就叫做推薦引擎,或者更通俗地叫做推薦系統(tǒng)(recommender systems)。
兩種典型的進行推薦的方法是:協(xié)同過濾(Collaborative filtering)和基于內(nèi)容的推薦(Content-based filtering)。
協(xié)同過濾基于用戶過去的行為(如買過的商品、看過的電影、評過的電影等)和用戶以及其他用戶的決定建模,然后模型被用于預測用戶可能會感興趣的物品(或者給物品的評分)。
基于內(nèi)容的推薦方法基于一個物品特征來推薦更多具有類似特性的物品(items)。這些方法經(jīng)常包含在混合推薦系統(tǒng)(Hybrid Recommender Systems)中。
這里有兩種方法應用到兩個流行音樂推薦系統(tǒng)中的比較:Last.fm和Pandora Radio(例子來自維基百科的推薦系統(tǒng)條目Recommender System)
Last.fm建立了一個歌曲推薦站。他們觀察一個用戶經(jīng)常聽的樂隊或單曲,并與其他用戶的聽歌行為進行比較,然后Last.fm會給一個用戶播放那些不在其曲庫里,但和其興趣相似的其他用戶常聽的歌曲。由于這種方法利用了用戶行為,它是一個協(xié)同過濾技術(shù)的例子。
Pandora是一個可以播放具有相似屬性音樂的站,它主要基于一首歌或藝術(shù)家的屬性(一個由Music Genome Project提供的400個屬性的子集)來推薦。用戶的反饋用來修正曲庫的結(jié)果,當用戶不喜歡一首歌曲時就減弱對應的屬性(attributes),而當用戶喜歡一首歌曲時就增強對應的屬性。這是一個基于內(nèi)容過濾的例子。
第十九天:說明假陽性(false positive)和假陰性(false negative)分別是什么?為什么區(qū)分它們的差異性很重要?【 Gregory Piatetsky解答】
答:在二分類(或者醫(yī)學檢驗)中,假陽性是指當一個算法或測試顯示出現(xiàn)某種狀況,但實際上并未出現(xiàn)。假陰性是指當一個算法或測試顯示未出現(xiàn)某種狀,但實際上卻出現(xiàn)了。
在統(tǒng)計假設(shè)檢驗中,假陽性也叫做一類錯誤,假陰性也叫做二類錯誤。
很明顯區(qū)分和區(qū)別對待假陽性和假陰性非常重要,因為這兩類錯誤的代價可能會有巨大差異。
舉例來講,如果對一項重大疾病的檢測是假陽性(檢測結(jié)果是有病,但其實病人是健康的),那么就需額外的檢測來做出正確的診斷。另一方面,如果一項檢測是假陰性(檢測結(jié)果是健康的,但其實病人有疾病),那么必要的治療將會終止,可能會導致病人病情惡化而死亡。
第二十天:你使用什么工具來做可視化(visualization)?你覺得Tableau怎么樣?R呢?SAS呢?怎樣在一張圖或視頻里有效地展示5維數(shù)據(jù)?【Gregory Piatetsky解答】
答:數(shù)據(jù)可視化有很多很好的工具,如R, Python, Tableau 和 Excel等都是數(shù)據(jù)科學家經(jīng)常使用的。
有很多方法可以在一個圖表里展示多于2維的信息。第三維度可以用能旋轉(zhuǎn)的三維散點來展示。還可以應用顏色、陰影、形狀、尺寸。動畫可以有效地展示時間維度(隨著時間改變)。下面是個好例子。
圖20a:5維Iris數(shù)據(jù)集的散點圖
分別對應 尺寸: 花萼長度; 顏色: 花萼寬度; 形狀: 類別標記; 橫軸: 花瓣長度; 縱軸: 花瓣寬度
對多于5維的,一種方法是平行坐標法 (Parallel Coordinates),由Alfred Inselberg首創(chuàng)。
圖20b: Iris數(shù)據(jù)集的平行坐標展示
當然,當有很多維度的時候,最好還是先減少維度或特征的數(shù)量。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。