學(xué)會(huì)獲取更多的數(shù)據(jù)
數(shù)據(jù)科學(xué)的數(shù)據(jù)源是數(shù)字和字段的集合。測(cè)量、價(jià)格、日期、時(shí)間、產(chǎn)品、標(biāo)題等,都是簡(jiǎn)單的數(shù)據(jù)集;你也可以用圖像、音頻、視頻等復(fù)雜結(jié)構(gòu)的數(shù)據(jù)集,這時(shí)需要你去降維分解成數(shù)字和字段的集合。
數(shù)據(jù)獲取是一個(gè)復(fù)雜的機(jī)制,數(shù)據(jù)工程師各種被揉捏,但本篇文章重點(diǎn)是講述數(shù)據(jù)科學(xué),數(shù)據(jù)獲取將會(huì)是下一個(gè)topic。
學(xué)會(huì)聰明的提出問(wèn)題
簡(jiǎn)單點(diǎn)講,就是提出的問(wèn)題要問(wèn)到點(diǎn)子上。數(shù)據(jù)科學(xué)是通過(guò)對(duì)數(shù)字和字段組成的數(shù)據(jù)集合進(jìn)行處理,然后回答問(wèn)題。你描述的問(wèn)題越精確,越容易找到令你滿意的精確答案。含糊不清的問(wèn)法:“我的數(shù)據(jù)能為業(yè)務(wù)提供什么?”,”有了數(shù)據(jù)我該做什么?”;相對(duì)應(yīng)地,清晰的問(wèn)法:“第三季度在蒙特利爾賣了多少Q(mào)型小物件?”
你有了一個(gè)問(wèn)題,現(xiàn)在你得看自己的數(shù)據(jù)是否可以回答。如果你的問(wèn)題是“我的股票下周的銷售價(jià)是多少?”,那需要確保你的數(shù)據(jù)包括股票的歷史數(shù)據(jù);如果你的問(wèn)題是“88型發(fā)動(dòng)機(jī)多少小時(shí)會(huì)發(fā)生故障?”,那需要確保你的數(shù)據(jù)包括88型發(fā)動(dòng)機(jī)失敗的次數(shù)。這些問(wèn)答案例被稱之為目標(biāo),你的目標(biāo)是定量或者分類預(yù)測(cè)或任務(wù)。如果你沒(méi)有任何目標(biāo)數(shù)據(jù),需要回到步驟1,獲取更多的數(shù)據(jù)。
裝載數(shù)據(jù)進(jìn)表
大部分機(jī)器學(xué)習(xí)算法都是假設(shè)數(shù)據(jù)以表的形式呈現(xiàn)。每行是一個(gè)事件、item、或者實(shí)體;每列是行數(shù)據(jù)的一個(gè)特征或者屬性。一個(gè)描述美國(guó)足球比賽的數(shù)據(jù)集,每行代表一場(chǎng)比賽,每列分為主場(chǎng)足球隊(duì)、客場(chǎng)足球隊(duì)、主場(chǎng)得分、客場(chǎng)得分、日期、開始時(shí)間和出場(chǎng)等等。
選擇你所需的數(shù)據(jù)行
經(jīng)常有許多種方式將數(shù)據(jù)集分割成行,但只有一種方法能幫助你回答問(wèn)題:每行有且僅有一個(gè)目標(biāo)實(shí)體。拿零售店數(shù)據(jù)舉例,一條交易記錄一行,一天的記錄一行,一個(gè)零售店一行,一個(gè)顧客的數(shù)據(jù)一行,等等。如果你的問(wèn)題是”剛進(jìn)過(guò)店的顧客會(huì)回訪嗎?“,那數(shù)據(jù)以一個(gè)顧客為一行來(lái)組織為好。你的目標(biāo)whether_the_customer_returned將呈現(xiàn)在每行;但如果以一個(gè)零售店或者一天進(jìn)行數(shù)據(jù)組織,將不能回答目標(biāo)問(wèn)題。
有時(shí)你必須向上鉆取數(shù)據(jù)來(lái)獲得相應(yīng)的維度數(shù)據(jù)。如果你的問(wèn)題是“我每天能賣多少拿鐵咖啡?”,那你需要每行一天的數(shù)據(jù)記錄(目標(biāo)列為number_of_lattes_sold),但是你的數(shù)據(jù)是每次的交易記錄(帶有日期和時(shí)間)。為了獲取每行一天的數(shù)據(jù)記錄,你必須向上鉆取數(shù)據(jù)。
數(shù)據(jù)質(zhì)量校驗(yàn)
數(shù)據(jù)檢查
接下來(lái)是仔細(xì)的查看數(shù)據(jù)。檢查數(shù)據(jù)有兩個(gè)目的:第一,發(fā)現(xiàn)錯(cuò)誤數(shù)據(jù),修復(fù)或者去除它;第二,對(duì)每行每列有足夠的了解。
檢查每列數(shù)據(jù),它的符號(hào)是什么?符號(hào)意味著什么?有文檔解釋列的意思嗎?數(shù)據(jù)是如何測(cè)試的?誰(shuí)來(lái)測(cè)試的?如果你足夠的幸運(yùn)知道記錄數(shù)據(jù)的人,可以去問(wèn)問(wèn)他們是怎樣測(cè)試這些數(shù)據(jù)。
把數(shù)據(jù)列作為縱軸畫圖表,看下整體分布是否符合預(yù)期?是否有異常數(shù)據(jù)點(diǎn)?異常點(diǎn)是否有意義?
校正
縱觀所有的數(shù)據(jù)列,你能發(fā)現(xiàn)字段和文檔的錯(cuò)誤,并記錄下來(lái)你學(xué)到了什么,這樣你會(huì)比其他人都要了解這些數(shù)據(jù)(除了紀(jì)錄數(shù)據(jù)的人外)。
你也可能發(fā)現(xiàn)一些值是錯(cuò)誤的。一些值超過(guò)了正常范圍,比如,一個(gè)人72米高,或一個(gè)“7777777777 Mani St”的地址。當(dāng)這些事情發(fā)生后你有三種選擇:如果這個(gè)值很容易更改正確,比如,把高72米改成72英寸;如果錯(cuò)誤的值不明顯,你可以直接刪除或者缺失;如果這個(gè)值是關(guān)鍵信息,你應(yīng)該刪除整行或者整列,這可以讓你訓(xùn)練的模型遠(yuǎn)離錯(cuò)誤數(shù)據(jù),因?yàn)殄e(cuò)誤的數(shù)據(jù)對(duì)你的訓(xùn)練模型的影響比缺失數(shù)據(jù)更大。
替換缺失的值
在大部分情況下,數(shù)據(jù)集都存在缺失的值。但不管什么情況,機(jī)器學(xué)習(xí)算法都要希望數(shù)據(jù)無(wú)缺失或者填充默認(rèn)值。對(duì)于你來(lái)說(shuō),你比機(jī)器學(xué)習(xí)算法更懂你的數(shù)據(jù),所有補(bǔ)全缺失數(shù)據(jù)的工作你更適合。有許多替換缺失值的方法,最保險(xiǎn)的一種是采用其它正常數(shù)據(jù)的平均值來(lái)替代。
抽取特征
在做機(jī)器學(xué)習(xí)之前有一個(gè)非常重要的步驟:特征工程。特征工程簡(jiǎn)單講,就是對(duì)現(xiàn)有特征數(shù)據(jù)進(jìn)行組合,以獲得更好的特征來(lái)預(yù)測(cè)目標(biāo)。舉個(gè)例子,火車到達(dá)和離開的時(shí)間相減獲得運(yùn)輸時(shí)間,這個(gè)特征對(duì)預(yù)測(cè)速度的峰值更有用。
嚴(yán)格來(lái)講,特征工程并不會(huì)增加任何數(shù)據(jù)信息,只是使用各種方法對(duì)原有數(shù)據(jù)進(jìn)行組合。特征工程是數(shù)據(jù)科學(xué)的“黑科技”,并沒(méi)有什么特別的、大一統(tǒng)的處理原則,雖然很多深度學(xué)習(xí)試圖自動(dòng)化這個(gè)過(guò)程,但都是失敗了,特征工程一般是數(shù)據(jù)科學(xué)家的經(jīng)驗(yàn)決定。不過(guò)即使你沒(méi)有特征工程的技能,也有些小技巧可以使用。你可以對(duì)變量畫圖,并標(biāo)記不同的顏色,可以幫你方便的發(fā)現(xiàn)變量之間的關(guān)系。
如果你發(fā)現(xiàn)經(jīng)過(guò)特征工程之后還未找到特征來(lái)預(yù)測(cè)目標(biāo),那你得重寫回到第一步獲取數(shù)據(jù)。
正確的回答問(wèn)題
現(xiàn)在到了數(shù)據(jù)科學(xué)家鐘愛(ài)的部分:機(jī)器學(xué)習(xí),有許多資源講這部分,這里就不再總結(jié)所有的方法。簡(jiǎn)單地講,你可以在參考文章《你的問(wèn)題屬于哪種算法?》和《選擇一到多種算法》來(lái)選擇算法,并用傳統(tǒng)機(jī)器學(xué)習(xí)技術(shù)來(lái)分割數(shù)據(jù)進(jìn)行訓(xùn)練、調(diào)優(yōu)、測(cè)試數(shù)據(jù)、根據(jù)選擇的模型優(yōu)化參數(shù)。
如果你的模型并不能很好的解決問(wèn)題,或者你想避免使用機(jī)器學(xué)習(xí),也有兩種非傳統(tǒng)的方法回答:
第一種,簡(jiǎn)單的看你收集數(shù)據(jù)的圖像,有一半的情況下可視化數(shù)據(jù)就可以找到答案。比如,如果你的問(wèn)題是“在波士頓明年7月4號(hào)的最高溫度是多少?”,對(duì)過(guò)去100年的溫度可視化,查看直方圖就基本可以解決問(wèn)題。
第二種,更多技術(shù)需求。如果由于數(shù)據(jù)集太小而得不到結(jié)果,你可以考慮優(yōu)化。機(jī)器學(xué)習(xí)是基于弱先驗(yàn)假設(shè)的結(jié)構(gòu)化數(shù)據(jù)。這種方法的優(yōu)點(diǎn)在于你使用算法之前你不需要知道太多數(shù)據(jù),它能夠訓(xùn)練出一個(gè)大范圍的模型;副作用就是需要大量數(shù)據(jù)才能獲得一個(gè)可信的答案。
應(yīng)用數(shù)據(jù)
不管你如何優(yōu)雅的回答提出的問(wèn)題,但數(shù)據(jù)科學(xué)家的工作直到用戶去使用才算完成。把結(jié)果以某種形式呈現(xiàn)給用戶作為參考來(lái)做對(duì)應(yīng)的決策,展示的形式有很多種:將結(jié)果在web頁(yè)面上畫出來(lái);把你發(fā)現(xiàn)的有用信息保存成PDF;在GitHub上分享你的代碼;把結(jié)論做成視頻給你的商業(yè)客戶,等等??傊痪湓?,要把你做的工作讓其他人來(lái)使用。