數(shù)據(jù)科學(xué)目標(biāo)、挑戰(zhàn)以及門派

一、目標(biāo)

數(shù)據(jù)科學(xué)是一門最近大火的新興學(xué)科。這門學(xué)科的目標(biāo)十分簡單,就是如何從實際的生活中提取出數(shù)據(jù),然后利用計算機的運算能力和模型算法從這些數(shù)據(jù)中找出一些有價值的內(nèi)容,為商業(yè)決策提供支持。

傳統(tǒng)的數(shù)據(jù)分析手段是所謂的商業(yè)智能(business intelligence)。這種方法通常將數(shù)據(jù)按不同的維度交叉分組,并在此基礎(chǔ)上,利用統(tǒng)計方法分析每個組別里的信息。比如商業(yè)智能中最常見的問題是:“過去3個月,通過搜索引擎進(jìn)入網(wǎng)站并成功完成注冊的新用戶里,年齡分布情況如何?若將上面的用戶群按年齡段分組,各組中有多大比例的用戶在完成注冊后,完成了至少一次消費?”

這樣的分析是非常有用的,能揭示一些數(shù)據(jù)的直觀信息。但這樣的方法如同盲人摸象,只能告訴我們數(shù)據(jù)在某個局部的情況,而不能給出數(shù)據(jù)的全貌。而且對于某些問題,這樣的結(jié)果顯得有些不夠用。比如用戶注冊之后完成消費的比例與哪些因素相關(guān)?又比如對于某個客戶,他對某一產(chǎn)品的估計是多少?在這些場景下,我們就需要更加精細(xì)的數(shù)據(jù)分析工具—機器學(xué)習(xí)和統(tǒng)計模型。這些內(nèi)容正是數(shù)據(jù)科學(xué)的核心內(nèi)容。

圖1

二、挑戰(zhàn)

在數(shù)據(jù)科學(xué)實踐中,我們將使用較為復(fù)雜的機器學(xué)習(xí)或統(tǒng)計模型對數(shù)據(jù)做精細(xì)化的分析和預(yù)測。這在工程實現(xiàn)和模型搭建兩方面都提出了挑戰(zhàn),如圖2所示。

工程實現(xiàn)的挑戰(zhàn)

數(shù)據(jù)科學(xué)在工程上的挑戰(zhàn)可以大致分為3類:特征提取、矩陣運算和分布式機器學(xué)習(xí)。

  1. 一個建模項目的成功在很大程度上依賴于建模前期的特征提取。它包含數(shù)據(jù)清洗、數(shù)據(jù)整合、變量歸一化等。經(jīng)過處理后,原本攪作一團(tuán)的原始數(shù)據(jù)將被轉(zhuǎn)換為能被模型使用的特征。這些工作需要大量的自動化程序來處理,特別是面對大數(shù)據(jù)時,因為這些大數(shù)據(jù)無法靠“人眼”來檢查。在一個典型的建模項目中,這部分花費的時間遠(yuǎn)遠(yuǎn)大于選擇和編寫模型算法的時間。

  2. 對于一個復(fù)雜的數(shù)學(xué)模型,計算機通常需要使用類似隨機梯度下降法的最優(yōu)化算法來估算它的模型參數(shù)。這個過程需要大量的循環(huán),才能使參數(shù)到達(dá)收斂值附近。因此即使面對的是很小的數(shù)據(jù)集,復(fù)雜的模型也需要很長時間才能得到正確的參數(shù)估計。而且模型在結(jié)構(gòu)上越復(fù)雜,需要估計的參數(shù)也就越多。對這些大量的模型參數(shù)同時做更新,在數(shù)學(xué)上對應(yīng)著矩陣運算。但傳統(tǒng)的CPU架構(gòu)并不擅長做這樣的運算,這導(dǎo)致模型訓(xùn)練需要耗費大量的時間。為了提高模型的訓(xùn)練速度,需要將相應(yīng)的矩陣運算(模型參數(shù)的估算過程)移植到GPU或者特制的計算芯片上,比如TPU。

  3. 近年來,隨著分布式系統(tǒng)的流行和普及,存儲海量數(shù)據(jù)成為了業(yè)界的標(biāo)配。為了能在這海量的數(shù)據(jù)上使用復(fù)雜模型,需要將原本在一臺機器上運行的模型算法改寫成能在多臺機器上并行運行,這也是分布式機器學(xué)習(xí)的核心內(nèi)容。

圖2

模型搭建的挑戰(zhàn)

數(shù)據(jù)科學(xué)對模型搭建的要求也可以總結(jié)為3點:模型預(yù)測效果好、模型參數(shù)是穩(wěn)定且“正確”的、模型結(jié)果容易解釋。

  1. 模型的預(yù)測效果好,這是數(shù)據(jù)科學(xué)成功的關(guān)鍵。而一個模型的預(yù)測效果取決于它的假設(shè)是否被滿足。從數(shù)學(xué)上來看,任何一個模型除去假設(shè)部分,它的其他推導(dǎo)都是嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)演算,是無懈可擊的。因此模型假設(shè)就像模型的阿喀琉斯之踵,是它唯一的薄弱環(huán)節(jié)。當(dāng)問題場景或數(shù)據(jù)滿足模型假設(shè)時,模型的效果一定不會差,反之,則預(yù)測效果就無法保證了。但在實際生產(chǎn)中,針對一個具體的問題,幾乎不可能找到一個模型,它的假設(shè)被百分之百地滿足。這時就需要避重就輕,通過特征提取等手段,盡量避免違反那些對結(jié)果影響很大的假設(shè)。這就是為什么說“所有模型都是錯的,但是,其中有一些是有用的”。

  2. 除了被用來對未知數(shù)據(jù)做預(yù)測外,模型另一個重要的功能就是對已有數(shù)據(jù)做分析,比如哪個變量對結(jié)果的影響最大或者某個變量對結(jié)果到底是正向影響還是負(fù)向影響等。這些分析結(jié)果在很大程度上依賴于模型參數(shù)的估計值,后者的準(zhǔn)確與否直接決定分析結(jié)果的質(zhì)量。但問題是,模型參數(shù)的估計值是不太“可靠”的。例如從訓(xùn)練數(shù)據(jù)中隨機抽取兩個不完全一樣的數(shù)據(jù)子集A和B,然后用這兩個數(shù)據(jù)集分別訓(xùn)練同一個模型。得到的參數(shù)估計值幾乎不可能完全一樣。從數(shù)學(xué)的角度來看,這說明模型參數(shù)的估計值其實是一個隨機變量,具體的值取決于訓(xùn)練模型時使用的數(shù)據(jù)。于是我們要求這些估計值是“正確”的:圍繞參數(shù)真實值上下波動(也就是說它們的期望等于參數(shù)真實值)。我們還要求這些估計值是穩(wěn)定的:波動的幅度不能太大(也就是說它們的方法比較?。?。這樣就可以把參數(shù)估計值的“不可靠性”控制在可接受的范圍內(nèi)。

  3. 數(shù)據(jù)科學(xué)家將模型搭建好,并不是一個數(shù)據(jù)科學(xué)項目的終點。為了充分發(fā)揮數(shù)據(jù)的價值,需要將模型結(jié)果應(yīng)用到實際的生產(chǎn)中,比如為手機銀行APP架設(shè)實時反欺詐系統(tǒng),或者將利用新搭建的車禍風(fēng)險模型為汽車保險定價等。參與這個過程的不僅有懂模型的數(shù)據(jù)科學(xué)家,還有更多非技術(shù)的業(yè)務(wù)人員。而后者往往是使用模型的主力,比如根據(jù)反欺詐系統(tǒng)的結(jié)果,對可疑用戶進(jìn)行人工審核,又或者向客戶解釋為什么他的車險比別人貴。為了幫助他們更好地理解模型結(jié)果,需要將復(fù)雜深奧的模型翻譯成直觀的普通語言。這要求模型是能被解釋的,而且是容易被解釋的。

三、兩大門派

和武俠世界里有少林和武當(dāng)兩大門派一樣,數(shù)據(jù)科學(xué)領(lǐng)域也有兩個不同的學(xué)派:以統(tǒng)計分析為基礎(chǔ)的統(tǒng)計學(xué)派,以及以機器學(xué)習(xí)為基礎(chǔ)的人工智能派。雖然這兩個學(xué)派的目的都是從數(shù)據(jù)中挖掘價值,但彼此“都不服氣”。注重模型預(yù)測效果的人工智能派認(rèn)為統(tǒng)計學(xué)派“固步自封”,研究和使用的模型都只是一些線性模型,太過簡單,根本無法處理復(fù)雜的現(xiàn)實數(shù)據(jù)。而注重假設(shè)和模型解釋的統(tǒng)計學(xué)派則認(rèn)為人工智能派搭建的模型缺乏理論依據(jù)、無法解釋,很難幫助我們通過模型去理解數(shù)據(jù)。

在學(xué)術(shù)上,通常將統(tǒng)計學(xué)派的模型稱為數(shù)據(jù)模型(data model),將人工智能派的模型稱為算法模型(algorithm model),如圖3所示。

  • 數(shù)據(jù)模型的建模思路是假設(shè)數(shù)據(jù)的產(chǎn)生過程是已知的(或者是可以假設(shè)的),可以通過模型去理解整個過程。因此,這類模型通常具有很好的可解釋性,分析其穩(wěn)定性的數(shù)學(xué)工具也很多,能很好地滿足上面提到的后兩點。但是在實際生產(chǎn)中,這些模型的預(yù)測效果并不好,或者更準(zhǔn)確地說,單獨使用時,預(yù)測效果并不理想。
圖3
  • 算法模型,也就是人工智能的核心內(nèi)容,它們假設(shè)數(shù)據(jù)的產(chǎn)生過程是復(fù)雜且未知的。建模的目的是盡可能地從結(jié)構(gòu)上“模仿”數(shù)據(jù)的產(chǎn)生過程,從而達(dá)到較好的預(yù)測效果。但代價是模型的可解釋性很差,而且模型穩(wěn)定性的分析方法也不多。

事實上,統(tǒng)計學(xué)和機器學(xué)習(xí)在某些方面具有極好的互補性。因此在實際的生產(chǎn)中,為了將一個數(shù)據(jù)科學(xué)項目做得盡可能完美,我們需要將這兩種思路結(jié)合起來使用。比如使用機器學(xué)習(xí)的模型對數(shù)據(jù)建模,然后借鑒數(shù)據(jù)模型的分析工具,分析模型的穩(wěn)定性和給出模型結(jié)果的直觀解釋。

四、模型幻覺

雖然數(shù)據(jù)科學(xué)領(lǐng)域兩大門派的模型很多,但它們都特別依賴所使用的數(shù)據(jù)。但是數(shù)據(jù)就百分之百可靠嗎?下面就來看兩個數(shù)據(jù)“說謊”的例子。

如圖4所示,我們將某APP每月的用戶注冊數(shù)表示在圖中。圖4a給人的直觀印象是每月的安裝數(shù)是大致差不多的,沒有明顯的增長。而圖4b給人不同的印象,從3月份開始,用戶注冊數(shù)大幅度增長。但其實兩幅圖的數(shù)據(jù)是一模一樣的,給人不同的感覺是因為圖4a中縱軸的起點是0,而且使用了對數(shù)尺度;而圖4b的縱軸是從17 000開始的,而且使用的是線性尺度。

圖4

讀者可能會覺得上面這個例子太過簡單了,只需要使用一些簡單的統(tǒng)計指標(biāo),比如平均值或每個月的增長率,就可以避免錯誤的結(jié)論。那么下面來看一個復(fù)雜一點的例子。

當(dāng)?shù)玫饺鐖D5所示的兩組數(shù)據(jù)時,我們應(yīng)該如何用模型去描述數(shù)據(jù)的變化規(guī)律呢?

  • 對于圖5a,數(shù)據(jù)的圖形有點像拋物線,因此選擇二次多項式擬合是一個比較合理的選擇。于是假設(shè)模型的形式為。然后使用數(shù)據(jù)去估計模型中的未知參數(shù)。得到的結(jié)果還不錯,模型的預(yù)測值與真實值的差異并不大。
圖5
  • 對于圖5b,數(shù)據(jù)之間有明顯的線性關(guān)系,所以使用線性回歸對其建模,即。與上面類似,得到的模型結(jié)果也不錯。

根據(jù)上面的分析結(jié)果,可以得出如下的結(jié)論,圖5a中的與之間是二次函數(shù)關(guān)系,而圖5b的與之間是線性關(guān)系。但其實兩幅圖中的變量都是與無關(guān)的隨機變量,只是因為觀察窗口較小,收集的數(shù)據(jù)樣本太少,讓我們誤以為它們之間存在某種關(guān)系。如果增大觀察窗口,收集更多的數(shù)據(jù),則可以得到完全不同的結(jié)論。如圖6所示,如果將收集的樣本數(shù)從20增加到200,會發(fā)現(xiàn)圖6a中的數(shù)據(jù)圖形更像是一個向下開口的拋物線,這與圖5a中的結(jié)論完全相反。而圖6b中也不再是向下的直線,而與開口向上的拋物線更加相似。

圖6

上面的例子就是所謂的模型幻覺:表面上找到了數(shù)據(jù)變動的規(guī)律,但其實只是由隨機擾動引起的數(shù)字巧合。因此在對搭建模型時,必須時刻保持警惕,不然很容易掉進(jìn)數(shù)據(jù)的“陷阱”里,被數(shù)據(jù)給騙了,而這正是數(shù)據(jù)科學(xué)的研究重點。這門學(xué)科會“小心翼翼”地處理它的各種模型,以確保模型能擺脫數(shù)據(jù)中隨機因素的干擾,得到穩(wěn)定且正確的結(jié)論。

五、廣告時間

這篇文章的大部分內(nèi)容參考自我的新書《精通數(shù)據(jù)科學(xué):從線性回歸到深度學(xué)習(xí)》。

李國杰院士和韓家煒教授在讀過此書后,親自為其作序,歡迎大家購買。

另外,與之相關(guān)的免費視頻課程請關(guān)注這個鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 時間過得真快呀!不知不覺又星期四了,在不知不覺中孩子迎來了人生中第一次期末考試了。每天都在緊張的復(fù)習(xí)中,無形中這成...
    宇哲媽媽閱讀 157評論 2 2
  • 【0408讀書感悟】2183-小米 【書名】《吃掉那只青蛙》 【作者】〔美〕博恩·崔西 【金句】 001 決定你感...
    小米大圈閱讀 755評論 8 4
  • 十年前走進(jìn)這個家,與其說是個家,其實就是父女倆,一個在姥姥家,一個在姐姐家,我不知道如何去稱呼沒有房子的爺倆算不算...
    掃云閱讀 1,340評論 36 34
  • 1、掃 陽 光 有兄弟二人,年齡不過四、五歲,由于臥室的窗戶整天都是密閉著,他們認(rèn)為屋內(nèi)太陰暗,看見外面燦爛的陽光...
    8321071f9826閱讀 381評論 0 0
  • 詠鄭 踏馬中原驛,落林雨帶鉤。 漫山胡風(fēng)襲,鎮(zhèn)河大玉樓。 關(guān)關(guān)虎牢擒,道道車閘流。 何思鞅君意,...
    作者尹君閱讀 1,600評論 14 4

友情鏈接更多精彩內(nèi)容