像數(shù)據(jù)科學(xué)家一樣思考:12步指南(上)
介紹
目前,數(shù)據(jù)科學(xué)家正在受到很多關(guān)注,因此,有關(guān)數(shù)據(jù)科學(xué)的書籍正在激增。我看過很多關(guān)于數(shù)據(jù)科學(xué)的書籍,在我看來他們中的大多數(shù)更關(guān)注工具和技術(shù),而不是數(shù)據(jù)科學(xué)中細(xì)微問題的解決。直到我遇到Brian Godsey的“像數(shù)據(jù)科學(xué)家一樣思考”,它討論了哪些工具最有用以及為什么,但主要目標(biāo)是在智能,高效和成功的情況下完成數(shù)據(jù)科學(xué)工程,以解決實(shí)際數(shù)據(jù)中心問題的解決方案。
數(shù)據(jù)科學(xué)項(xiàng)目的生命周期
在書中,Brian提出數(shù)據(jù)科學(xué)項(xiàng)目包括3個(gè)階段:
- ***階段是準(zhǔn)備階段:在項(xiàng)目開始時(shí)收集信息所花費(fèi)的時(shí)間和精力可以避免以后的麻煩。
- 第二階段是構(gòu)建產(chǎn)品:從規(guī)劃到執(zhí)行,使用你在準(zhǔn)備階段學(xué)到的知識(shí)以及可以用的所有工具。
- 第三階段即將完成:交付產(chǎn)品,獲得反饋,進(jìn)行修訂,產(chǎn)品運(yùn)維以及完成項(xiàng)目。

從圖像中可以看出,這3個(gè)階段包含12個(gè)不同的任務(wù)。我想用這篇文章總結(jié)這12個(gè)步驟,因?yàn)槲蚁嘈湃魏斡斜ж?fù)的數(shù)據(jù)科學(xué)家都可以從熟悉它們中受益。
***階段:準(zhǔn)備
數(shù)據(jù)科學(xué)項(xiàng)目始于準(zhǔn)備。你需要建立你所知道的、擁有的、能得到什么、你在哪里以及你想成為什么樣。***一個(gè)是最重要的,數(shù)據(jù)科學(xué)項(xiàng)目需要有目的和相應(yīng)的目標(biāo)。只有當(dāng)你有了明確的目標(biāo)時(shí),才能開始調(diào)查可用資源以及實(shí)現(xiàn)這些目標(biāo)的所有可能性。
1-設(shè)定目標(biāo)

數(shù)據(jù)科學(xué)項(xiàng)目與許多其他項(xiàng)目一樣,主要目標(biāo)應(yīng)在項(xiàng)目開始時(shí)設(shè)定。在設(shè)定目標(biāo)后,你所做的所有工作都是利用數(shù)據(jù)、統(tǒng)計(jì)數(shù)據(jù)和編程來實(shí)現(xiàn)這些目標(biāo)。
首先,數(shù)據(jù)科學(xué)的每個(gè)項(xiàng)目都是有一個(gè)“客戶”的。有時(shí),“客戶”是向你或你的企業(yè)支付費(fèi)用的人,例如,客戶或承包代理商。在學(xué)術(shù)界,“客戶”可能是一位要求你分析數(shù)據(jù)的實(shí)驗(yàn)室科學(xué)家。有時(shí),“客戶”是你的老板或其他同事。無論“客戶”是誰,他們都會(huì)對(duì)可能從你那里得到的東西抱有一些期望。
為了理解這些期望,你需要對(duì)“客戶”提供的數(shù)據(jù)提出好的問題。提出好的問題是一項(xiàng)重要且微妙的挑戰(zhàn),因?yàn)楦淖兪澜绲氖菃栴}。在他們的假設(shè)中好的問題是具體的,但好的答案是可衡量的而且不必要太多的成本。
雖然有時(shí)候好問題、相關(guān)數(shù)據(jù)或富有洞察力的分析比其他要素更容易獲得,但這三者對(duì)于獲得有用的答案至關(guān)重要。任何舊問題,數(shù)據(jù)和分析的產(chǎn)品并不總是一個(gè)答案。值得注意的是,你需要在項(xiàng)目的每個(gè)步驟中都要深思熟慮,而且關(guān)鍵性的要素必須存在。例如,如果你個(gè)好問題但不相關(guān)的數(shù)據(jù),則很難找到答案。
開始的時(shí)候是在數(shù)據(jù)和答案的背景下評(píng)估項(xiàng)目目標(biāo)的好時(shí)機(jī)。通常,初始目標(biāo)的設(shè)定需要考慮一些商業(yè)目的。如果你不從事商業(yè)活動(dòng),例如,你正在進(jìn)行研究,那么目的通常是對(duì)結(jié)果進(jìn)行一些外部使用,例如在特定領(lǐng)域中推進(jìn)科學(xué)知識(shí)或?yàn)槠渌颂峁┓治龉ぞ摺?nbsp;

雖然目標(biāo)源于項(xiàng)目本身的背景,但每個(gè)目標(biāo)都應(yīng)該通過基于數(shù)據(jù)科學(xué)的實(shí)用過濾器來實(shí)現(xiàn)。此過濾器包括以下幾個(gè)問題:(1)有什么可能?(2)什么是有價(jià)值的?(3)什么是有效的?將此過濾器應(yīng)用于好問題、可能的答案、可用數(shù)據(jù)和可預(yù)見的障礙,可以幫助你實(shí)現(xiàn)一系列可靠、有價(jià)值且高效的項(xiàng)目目標(biāo)。
2-探索數(shù)據(jù)
數(shù)據(jù)科學(xué)項(xiàng)目準(zhǔn)備階段的第二步是探索現(xiàn)有數(shù)據(jù)。下圖顯示了數(shù)據(jù)科學(xué)家可能訪問數(shù)據(jù)的3種基本方式。數(shù)據(jù)可以是文件系統(tǒng)上的文件,數(shù)據(jù)科學(xué)家可以將文件讀入他們最喜歡的分析工具中。數(shù)據(jù)也可以在數(shù)據(jù)庫中,數(shù)據(jù)庫也在文件系統(tǒng)上,但是為了訪問數(shù)據(jù),數(shù)據(jù)科學(xué)家必須使用數(shù)據(jù)庫的接口,這是一個(gè)幫助存儲(chǔ)和提取數(shù)據(jù)的軟件層。***,數(shù)據(jù)可能位于應(yīng)用程序編程接口(API)之后,API是數(shù)據(jù)科學(xué)家與某些系統(tǒng)之間的軟件層。
熟悉數(shù)據(jù)可能需要接觸到表單以及如何查看和操作這些表單,以下是其中一些:平面文件(csv,tsv)、HTML、XML、JSON、關(guān)系數(shù)據(jù)庫、非關(guān)系數(shù)據(jù)庫、API。有時(shí)你無法決定選擇哪種格式,數(shù)據(jù)會(huì)以你想象不到的格式出現(xiàn),但你必須處理它。如果你發(fā)現(xiàn)某個(gè)格式效率低下、笨拙或不受歡迎,你可以嘗試設(shè)置可能使事情變得更容易的輔助數(shù)據(jù)存儲(chǔ)格式,但需要花費(fèi)大量時(shí)間和精力來設(shè)置輔助數(shù)據(jù)商店。但對(duì)于訪問效率至關(guān)重要的應(yīng)用程序而言,這個(gè)成本是值得的。對(duì)于較小的項(xiàng)目,也許不是。當(dāng)你到達(dá)那里時(shí),你必須越過那座橋。

現(xiàn)在你已經(jīng)了解了常見的數(shù)據(jù)形式,你需要對(duì)它們進(jìn)行偵察。以下是你應(yīng)該考慮的方法:Google搜索,組合不同的數(shù)據(jù)源,從網(wǎng)絡(luò)爬蟲或自行收集它們。就個(gè)人而言,我是網(wǎng)絡(luò)爬蟲的忠實(shí)粉絲。Web scraper必須做的兩件重要事情是以編程方式訪問大量URL并從頁面中捕獲正確的信息。如果你想在Facebook上了解你的朋友網(wǎng)絡(luò),理論上可以編寫一個(gè)腳本來訪問所有朋友的Facebook個(gè)人資料,保存?zhèn)€人資料頁面,然后解析這些頁面以獲取他們的朋友列表,訪問他們的朋友配置文件等等。
3-數(shù)據(jù)整理
第三步是數(shù)據(jù)整理,就是將困難、非結(jié)構(gòu)化或其他任意格式獲取數(shù)據(jù)和信息轉(zhuǎn)換為傳統(tǒng)軟件可以使用的內(nèi)容的過程。整理不是一項(xiàng)任務(wù),并不可以事先準(zhǔn)確地規(guī)定步驟,因?yàn)槊總€(gè)案例都不同,需要解決的問題也不一樣。
在整理之前,好的整理歸結(jié)為可靠的計(jì)劃,然后進(jìn)行一些猜測(cè)和檢查,看看哪些有效,花費(fèi)一點(diǎn)時(shí)間進(jìn)行數(shù)據(jù)整理可以為你減少很多痛苦。通常,數(shù)據(jù)整理計(jì)劃的選擇應(yīng)在很大程度上取決于你在***調(diào)查數(shù)據(jù)時(shí)發(fā)現(xiàn)的信息。如果你可以想象解析數(shù)據(jù)或以某種假設(shè)的方式訪問它,你可以嘗試編寫一個(gè)執(zhí)行操作的腳本。數(shù)據(jù)整理是一個(gè)不確定的過程,因此***先探索一下,然后根據(jù)你所看到的內(nèi)容制定整理計(jì)劃。
沒有一種方法或一種工具可以實(shí)現(xiàn)使混亂數(shù)據(jù)清潔的目標(biāo)。市面上有許多工具可以做很多事情,但沒有一個(gè)工具能夠處理任意格式數(shù)據(jù)。數(shù)據(jù)以如此多的形式存在,并且出于不同的目的,甚至目前沒有一個(gè)應(yīng)用程序能夠以任意目的讀取任意數(shù)據(jù)。簡(jiǎn)而言之,數(shù)據(jù)整理是一個(gè)不確定的事情,需要在特定情況下使用特定工具來完成工作。你可以嘗試使用文件格式轉(zhuǎn)換器或?qū)S袛?shù)據(jù)管理器并編寫腳本來處理數(shù)據(jù)。
4-評(píng)估數(shù)據(jù)
在開發(fā)以數(shù)據(jù)為中心的產(chǎn)品之前,了解數(shù)據(jù)內(nèi)容值得花費(fèi)一點(diǎn)時(shí)間和精力。如果你對(duì)數(shù)據(jù)有更多了解,你將在整個(gè)數(shù)據(jù)科學(xué)項(xiàng)目的每一步做出更明智的決策,并在獲益到***。如果沒有初步的評(píng)估,你可能會(huì)遇到異常值、偏差、精、特異性或數(shù)據(jù)其他固有的問題。為了更好地發(fā)掘這些數(shù)據(jù)并更好地了解數(shù)據(jù),整理數(shù)據(jù)后的***步應(yīng)該是計(jì)算一些描述性統(tǒng)計(jì)數(shù)據(jù)。
描述性統(tǒng)計(jì)是定量描述信息集合的主要特征或定量描述本身的學(xué)科??紤]描述、***值、最小值、平均值、數(shù)據(jù)集的摘要。如果不提及推論統(tǒng)計(jì)數(shù)據(jù),通常很難討論描述性統(tǒng)計(jì)數(shù)據(jù)。推論統(tǒng)計(jì)是指你在沒有完全統(tǒng)計(jì)數(shù)據(jù)的情況下得出的結(jié)論。對(duì)于數(shù)據(jù)集,你可以說以下內(nèi)容:
- 描述性統(tǒng)計(jì)數(shù)據(jù):“我有什么?”
- 推論統(tǒng)計(jì)數(shù)據(jù):“我能得出什么結(jié)論?”
大多數(shù)統(tǒng)計(jì)學(xué)家都認(rèn)為推論統(tǒng)計(jì)數(shù)據(jù)可以得到大部分很酷的結(jié)論:當(dāng)世界人口達(dá)到峰值然后開始下降時(shí),病毒流行病的傳播速度有多快;當(dāng)股市上漲時(shí),人們是否會(huì)在Twitter上對(duì)一個(gè)主題有一般積極或消極的情緒等等。而描述性統(tǒng)計(jì)在使這些結(jié)論成為定論方面起了非常重要的作用??傊私饽銚碛械臄?shù)據(jù)以及它可以為你做些什么是值得的。
使用描述性統(tǒng)計(jì)信息,你可以在數(shù)據(jù)集中找到與特定概念描述匹配的實(shí)體。如果你從事在線零售業(yè)務(wù),你可能會(huì)將客戶視為你的實(shí)體,并且你希望識(shí)別那些可能購買特定作者新書的。如果你在金融領(lǐng)域工作,你可能會(huì)在股票市場(chǎng)上尋找即將上漲的股票。如果可以對(duì)這些特征進(jìn)行簡(jiǎn)單搜索,那么工作就很容易,你不需要數(shù)據(jù)科學(xué)或統(tǒng)計(jì)數(shù)據(jù)。但是,如果這些特征并不是所有數(shù)據(jù)固有的。
第二階段-建設(shè)
在詢問了一些問題并設(shè)定一些目標(biāo)后,你調(diào)查了數(shù)據(jù)世界,整理了一些具體數(shù)據(jù),并了解了這些數(shù)據(jù)。在每一步中,你都學(xué)到了一些東西,現(xiàn)在你應(yīng)該能夠回答在項(xiàng)目開始時(shí)提出的一些問題?,F(xiàn)在讓我們進(jìn)入建設(shè)階段。
5-制定計(jì)劃
第五步是制定計(jì)劃。與早期的規(guī)劃階段一樣,不確定性和靈活路徑應(yīng)該是你的首要考慮因素。你現(xiàn)在對(duì)你的項(xiàng)目了解了更多,所以之前存在的一些不確定因素已不復(fù)存在,但某些新的不確定因素已經(jīng)出現(xiàn)。把你的計(jì)劃想象成一條通往城市的試驗(yàn)性路線,這條城市的街道正在不斷建設(shè)中。你知道你想去哪里以及去往那里的幾種方法,但是在每個(gè)十字路口都可能有道路封閉、交通不暢或人行道坍塌和破碎。當(dāng)你遇到這些障礙時(shí),你必須做出決定,但是現(xiàn)在只需要一兩個(gè)備用計(jì)劃就足夠了。
如果給了新信息或新約束或其他原因,計(jì)劃和目標(biāo)可隨時(shí)改變。你必須向與項(xiàng)目有關(guān)的每個(gè)人(包括客戶)傳達(dá)重大更改信息。該項(xiàng)目的客戶對(duì)項(xiàng)目的最終產(chǎn)品具有既得利益,因此應(yīng)該讓客戶了解目標(biāo)的任何變化??蛻艨赡芤矊?duì)進(jìn)度報(bào)告感興趣,包括你到目前為止的初步結(jié)果以及如何獲得它們,但這些是***優(yōu)先級(jí)。
關(guān)注客戶關(guān)心的事情:客戶是整個(gè)項(xiàng)目的核心,它們希望我們實(shí)現(xiàn)什么,他們到底關(guān)心什么,知道這些很重要。如果他們的目標(biāo)錯(cuò)誤,及時(shí)的溝通很重要。在此階段與客戶會(huì)面的唯一必須結(jié)論是,你清楚地溝通新目標(biāo)是什么以及他們批準(zhǔn)這些目標(biāo)。
你也可以考慮將你的基本計(jì)劃傳達(dá)給客戶,特別是涉及使用他們的資源時(shí),例如數(shù)據(jù)庫、計(jì)算機(jī)和其他員工,他們會(huì)有興趣了解你將如何以及使用它們的程度。
6-分析數(shù)據(jù)

第六步是數(shù)據(jù)的統(tǒng)計(jì)分析。統(tǒng)計(jì)方法通常被認(rèn)為是進(jìn)行良好數(shù)據(jù)科學(xué)所需技能和知識(shí)的近一半或三分之一,另一大部分是軟件開發(fā),剩下的較小部分是主題或領(lǐng)域?qū)I(yè)知識(shí)。
統(tǒng)計(jì)學(xué)的一方面是數(shù)學(xué),另一方面是數(shù)據(jù)。數(shù)學(xué) ,尤其是應(yīng)用數(shù)學(xué),我們需要通過一組工具提供統(tǒng)計(jì)數(shù)據(jù),以便進(jìn)行分析和解釋。無論如何,數(shù)學(xué)通常不會(huì)觸及現(xiàn)實(shí)世界,它完全是基于邏輯并始終從一組假設(shè)開始,每個(gè)數(shù)學(xué)陳述都可以用if開頭(如果假設(shè)是真的),這可以將語句及其結(jié)論提升為抽象性。這并不是說數(shù)學(xué)在現(xiàn)實(shí)世界中沒用,恰恰相反數(shù)學(xué)而不是科學(xué),更多的是我們可以用來描述事物的詞匯。其中一些可能在現(xiàn)實(shí)世界中與詞匯表包含的單詞一樣,但很少有描述完全正確。
然而,數(shù)學(xué)確實(shí)提供了統(tǒng)計(jì)使用的大量基礎(chǔ)。統(tǒng)計(jì)分布通常由復(fù)雜的方程式描述,其根源在實(shí)際的科學(xué)意義上是有意義的。擬合統(tǒng)計(jì)模型通常是使用數(shù)學(xué)優(yōu)化技術(shù),即使假設(shè)項(xiàng)目數(shù)據(jù)所在的空間也必須用數(shù)學(xué)方法描述,描述可能僅僅是“N維歐幾里德空間”。
除數(shù)學(xué)外,統(tǒng)計(jì)學(xué)還擁有一套專屬的以數(shù)據(jù)為中心的技術(shù)。
- 描述性統(tǒng)計(jì)是一種通常直觀或簡(jiǎn)單的統(tǒng)計(jì)數(shù)據(jù),可以提供對(duì)數(shù)據(jù)的良好概述,不會(huì)過于復(fù)雜或難以理解。在某種意義上,描述性統(tǒng)計(jì)通常與數(shù)據(jù)保持接近。
- 推理統(tǒng)計(jì)本質(zhì)上是從數(shù)據(jù)中刪除的一個(gè)或多個(gè)步驟。推斷是基于可測(cè)量的相關(guān)量來估計(jì)未知量的過程。通常,推論統(tǒng)計(jì)涉及統(tǒng)計(jì)模型,該模型定義數(shù)量,可測(cè)量和不可測(cè)量,以及它們彼此之間的關(guān)系。推論統(tǒng)計(jì)的方法可以從簡(jiǎn)單到復(fù)雜,也可以在抽象性和可解釋性方面有所不同。
- 統(tǒng)計(jì)建模是使用描述性統(tǒng)計(jì)系統(tǒng)后使用模型來幫助分析和解釋與系統(tǒng)相關(guān)數(shù)據(jù)的一般實(shí)踐。描述性和推論性統(tǒng)計(jì)都依賴于統(tǒng)計(jì)模型,但在某些情況下,模型本身的明確構(gòu)造和解釋起次要作用。
通過統(tǒng)計(jì)建模,主要關(guān)注的是理解模型及其描述的底層系統(tǒng)。數(shù)學(xué)建模是一個(gè)相關(guān)概念,它更強(qiáng)調(diào)模型構(gòu)建和解釋,而不是與數(shù)據(jù)的關(guān)系。統(tǒng)計(jì)建模側(cè)重于模型與數(shù)據(jù)的關(guān)系,以下是你應(yīng)該了解的統(tǒng)計(jì)建模中的一些重要概念:
- 線性、指數(shù)、多項(xiàng)式、樣條、微分、非線性方程;
- 潛在變量;
- 量化不確定性:隨機(jī)性,方差和誤差項(xiàng);
- 擬合模型:***似然估計(jì)、***后驗(yàn)估計(jì)、變分貝葉斯、馬爾可夫鏈蒙特卡羅、過擬合。
- 貝葉斯與頻率統(tǒng)計(jì);
- 假設(shè)檢驗(yàn);
- 聚類;
- 成分分析;
離原始數(shù)據(jù)最遠(yuǎn)的是一組統(tǒng)計(jì)技術(shù),通常稱為黑盒方法。機(jī)器學(xué)習(xí)和人工智能的許多方法都是黑盒方法。如果你嘗試將出現(xiàn)在數(shù)據(jù)集中的個(gè)體分類為幾個(gè)類別,并且你應(yīng)用機(jī)器學(xué)習(xí)技術(shù)(如隨機(jī)森林或神經(jīng)網(wǎng)絡(luò)),事后往往很難說為什么是以某種方式分類。數(shù)據(jù)進(jìn)入黑匣子,分類出來,***你通常不能解釋兩者之間究竟發(fā)生了什么。