分享:我的第一次數(shù)據(jù)科學(xué)家實(shí)習(xí)經(jīng)歷
「數(shù)據(jù)科學(xué)家」可謂是近幾年的一大熱門職位,很多學(xué)習(xí)了數(shù)學(xué)、信息、計(jì)算機(jī)相關(guān)專業(yè)的同學(xué)都對(duì)它表示躍躍欲試。Admond Lee 學(xué)習(xí)了物理專業(yè),曾參加瑞典歐洲核子研究中心(CERN)的物理夏令營(yíng),而今他也走上了數(shù)據(jù)科學(xué)家的道路。近期他撰文回憶了自己的數(shù)據(jù)科學(xué)家實(shí)習(xí)經(jīng)歷,編譯如下。
Admond Lee:
在寫本文時(shí),正是我在 Quantum Invention 做數(shù)據(jù)科學(xué)家實(shí)習(xí)生的倒數(shù)第二天。此刻,我坐在筆記本電腦屏幕前,再回想起過(guò)去幾個(gè)月的學(xué)習(xí)歷程,非常艱辛但充滿成就感。
旅程總有終點(diǎn),但問(wèn)題長(zhǎng)存
––––你學(xué)到了什么?這就是你想要的嗎?
作為一個(gè)搞物理的人,請(qǐng)?jiān)徫铱偸菃?wèn)正確的問(wèn)題,以適當(dāng)?shù)幕卮饋?lái)尋求真理。
事實(shí)上,作為一個(gè)數(shù)據(jù)科學(xué)家,提出正確的問(wèn)題毫無(wú)疑問(wèn)是重要的(后面將會(huì)解釋…)
給你們大致介紹下,這篇文章主要分為三個(gè)部分(實(shí)習(xí)前、實(shí)習(xí)期間和實(shí)習(xí)后)來(lái)講述我的實(shí)習(xí)旅程的經(jīng)歷。根據(jù)你的目前的學(xué)習(xí)階段可跳轉(zhuǎn)到任意部分。讓旅程開(kāi)始吧!
謝謝您!當(dāng)我在 Medium 上發(fā)表的***篇文章時(shí),我情緒高漲。因?yàn)槠涫艿搅朔浅6嗳说拇罅χС?,甚至因其特色而發(fā)表在了 towardsdatascience.com 。這真的成為我繼續(xù)與更多的人分享我的學(xué)習(xí)經(jīng)驗(yàn)的動(dòng)力,僅僅是因?yàn)閷W(xué)習(xí)樂(lè)趣,幫助他人變得更好!
實(shí)習(xí)之前
我仍然清楚地記得,在 2017 年 11 月我的期末考試結(jié)束后,我開(kāi)始閱讀課本,《統(tǒng)計(jì)機(jī)器學(xué)習(xí)入門—R語(yǔ)言的應(yīng)用》。這是我在基本和統(tǒng)計(jì)層面上***次接觸到機(jī)器學(xué)習(xí)。
一旦我掌握了這些概念,我就開(kāi)始學(xué)習(xí)一門流行的課程,那就是吳恩達(dá)在慕課上教的《機(jī)器學(xué)習(xí)》課程。一開(kāi)始課程內(nèi)容并沒(méi)有大家預(yù)想的那么容易,但是吳恩達(dá)卻一直能抓住大家的注意力,盡管許多概念都很復(fù)雜,但都能被他簡(jiǎn)化以便于理解消化,似乎沒(méi)有其他人能做到。我想這就是我真正學(xué)會(huì)機(jī)器學(xué)習(xí)的原因。我敢打賭,試一試你就會(huì)知道機(jī)器學(xué)習(xí)這個(gè)熱門詞匯并不像聽(tīng)起來(lái)那么復(fù)雜。
同時(shí),我還學(xué)習(xí)了人工智能的另一個(gè)重點(diǎn)領(lǐng)域––––深度學(xué)習(xí)。回顧一下,這個(gè)看似外來(lái)用語(yǔ)其究竟是什么含義,請(qǐng)看神經(jīng)網(wǎng)絡(luò)的解釋以及神經(jīng)網(wǎng)絡(luò)可用來(lái)計(jì)算任何函數(shù)。好了,如果讀完了推薦的文章之后,還像我一樣,總是需要某種可視化以了解事物是如何工作的,那就請(qǐng)點(diǎn)擊這里,按「播放」按鈕,坐下來(lái),放松,觀察神經(jīng)網(wǎng)絡(luò)是如何用來(lái)做分類和回歸的。很酷,不是嗎?
所有的閱讀、學(xué)習(xí)和作業(yè)都為我 2017 年 12 月的實(shí)習(xí)做好了準(zhǔn)備。
實(shí)習(xí)期間
我申請(qǐng)的 Quantum Invention 公司致力于利用其集成的移動(dòng)性應(yīng)用套件、企業(yè)物流與分析平臺(tái)向消費(fèi)者、企業(yè)和政府提供移動(dòng)性情報(bào)。而我是***個(gè)加入 R&D 和分析團(tuán)隊(duì)的數(shù)據(jù)科學(xué)家實(shí)習(xí)生。
在接下來(lái)的幾天里,我認(rèn)識(shí)了許多同事,了解到各種行業(yè)術(shù)語(yǔ),以及正在進(jìn)行的令人興奮的項(xiàng)目。實(shí)習(xí)過(guò)程中我最喜歡的一點(diǎn)是信任和自由,作為實(shí)習(xí)生我可以自由選擇我感興趣的項(xiàng)目并全力以赴!
令我驚訝的是,我意識(shí)到我是***個(gè)開(kāi)始這個(gè)項(xiàng)目的人,因?yàn)橐郧皼](méi)有人這么做過(guò)。當(dāng)沒(méi)有人做過(guò)某事時(shí),就需要研究,這是我感激的地方,盡管帶有不確定性和困難。為什么?僅僅因?yàn)槲矣袡C(jī)會(huì)體驗(yàn)從零開(kāi)始進(jìn)行數(shù)據(jù)科學(xué)工作的整個(gè)流程(如果不是全部)。
請(qǐng)?jiān)试S我列出我所經(jīng)歷過(guò)的這些工作流程,因?yàn)檫@些建立了我的數(shù)據(jù)科學(xué)基礎(chǔ)。我希望你在某一天發(fā)現(xiàn)它有用。
1. 了解商業(yè)問(wèn)題
所選擇的項(xiàng)目是短期高速公路行駛時(shí)間預(yù)測(cè)??雌饋?lái)似乎非常簡(jiǎn)單,然而就像我說(shuō)的,問(wèn)正確的問(wèn)題對(duì)于數(shù)據(jù)科學(xué)家來(lái)說(shuō)是非常重要的。在項(xiàng)目最終確定之前,提出了很多問(wèn)題來(lái)真正理解真實(shí)的商業(yè)問(wèn)題,包括數(shù)據(jù)來(lái)源、項(xiàng)目的最終目標(biāo)(甚至在我離開(kāi)之后)等。從本質(zhì)上講,我們的目標(biāo)是預(yù)測(cè)未來(lái)幾分鐘在新加坡高速公路的行駛時(shí)間且要比當(dāng)前的基線估計(jì)更準(zhǔn)確。
2. 采集數(shù)據(jù)
在新項(xiàng)目的激勵(lì)下,我開(kāi)始從數(shù)據(jù)庫(kù)和同事那里收集數(shù)據(jù)(基本上是在辦公室四處走動(dòng),詢問(wèn)數(shù)據(jù)源的問(wèn)題)。收集正確的數(shù)據(jù)類似于從各種不同的數(shù)據(jù)網(wǎng)站中提取數(shù)據(jù)然后進(jìn)行數(shù)據(jù)預(yù)處理的情況。這是非常重要的,它能影響你在后期構(gòu)建的模型的準(zhǔn)確性。
3. 數(shù)據(jù)預(yù)處理
真實(shí)世界的數(shù)據(jù)是臟的。我們不能指望數(shù)據(jù)像 Kaggle 提供的那樣格式整潔且沒(méi)有噪聲。因此,數(shù)據(jù)預(yù)處理(其他人可能稱之為數(shù)據(jù)整理或數(shù)據(jù)清理)是非常重要的,以至于我不得不多次強(qiáng)調(diào)它有的重要性。它是最重要的一個(gè)階段,因?yàn)樗梢哉紦?jù)整個(gè)工作流的 40% 到 70% 的時(shí)間,只是為了清理數(shù)據(jù)以供你的模型使用。
我喜歡數(shù)據(jù)科學(xué)的一件事是你必須對(duì)你自己誠(chéng)實(shí)。當(dāng)你不知道你還不知道什么的時(shí)候,你就會(huì)開(kāi)始覺(jué)得數(shù)據(jù)預(yù)處理已經(jīng)足夠干凈,并準(zhǔn)備把它用在你的模型上,此時(shí)就存在著用錯(cuò)誤數(shù)據(jù)試圖建立正確模型的風(fēng)險(xiǎn)。
換句話說(shuō),總是不斷質(zhì)疑自己,用你擁有的領(lǐng)域知識(shí)判斷數(shù)據(jù)在技術(shù)上是否是正確的,請(qǐng)嚴(yán)格而仔細(xì)地檢驗(yàn)數(shù)據(jù),以檢查在整個(gè)數(shù)據(jù)集中任何其他的離群值,缺失或不一致的數(shù)據(jù)。
有一次,我喂給模型的數(shù)據(jù)是錯(cuò)誤的,只是因?yàn)樵陬A(yù)處理步驟中的一個(gè)簡(jiǎn)單錯(cuò)誤,在犯了這個(gè)錯(cuò)誤后我特別小心。
4. 建立模型
經(jīng)過(guò)研究,我提出了支持向量回歸(SVR)、多層感知器(MLP)、長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)和狀態(tài)空間神經(jīng)網(wǎng)絡(luò)(SSNN)四種模型并用在我的項(xiàng)目中。此處不詳細(xì)展開(kāi),你可以在許多網(wǎng)站上找到每個(gè)模型的詳細(xì)解釋的資料。
對(duì)于一個(gè)像我這種仍在學(xué)習(xí)慕客課程以及教科書的人看來(lái),從頭開(kāi)始構(gòu)建各種不同的模型是一個(gè)陡峭的學(xué)習(xí)路線。幸運(yùn)的是,Scikit-learn 和 Keras(采用 Tensorflow 作為后端)算是我的一個(gè)救星,因?yàn)樗鼈兒苋菀鬃屇憧焖賹W(xué)習(xí)模型原型且是采用 Python 實(shí)現(xiàn)的。此外,我還學(xué)會(huì)了如何優(yōu)化模型及使用各種各樣的技術(shù)微調(diào)每個(gè)模型的超參數(shù)。
5. 模型的評(píng)價(jià)
為了評(píng)估每個(gè)模型的性能,我主要使用以下的一些度量:
- 平均絕對(duì)誤差(MAE)
- 均方誤差(MSE)
- 決定系數(shù)(R2)
在這個(gè)階段,上述步驟 3 - 5 被重復(fù)(互換)直到確定***模型能夠超過(guò)基線模型的估計(jì)精度。
實(shí)習(xí)之后
嗯,實(shí)習(xí)已經(jīng)印證加強(qiáng)了我對(duì)數(shù)據(jù)科學(xué)的熱情,我很感激我的實(shí)習(xí)工作,其確實(shí)為我將來(lái)工作帶來(lái)了一些動(dòng)力。在研究和開(kāi)發(fā)階段,與不同的利益相關(guān)者交談所需的溝通技巧、用數(shù)據(jù)來(lái)解決商業(yè)問(wèn)題的好奇心和熱情等等方面都提高了我對(duì)此領(lǐng)域的興趣。
數(shù)據(jù)科學(xué)行業(yè)仍然很年輕,它的工作描述對(duì)我們這樣的求職者來(lái)說(shuō)可能顯得模糊不清。不具備所有需要的技能是非常正常的,因?yàn)榇蠖鄶?shù)工作描述是理想化的,以符合他們的***期望。
當(dāng)有疑問(wèn)時(shí),只要從慕課、書籍和文章(我現(xiàn)在還在做的)中學(xué)習(xí)基本原理,然后通過(guò)你自己的個(gè)人項(xiàng)目或?qū)嵙?xí)來(lái)運(yùn)用你所學(xué)到的東西。要有耐心。學(xué)習(xí)之旅需要時(shí)間。津津有味地去開(kāi)始你的學(xué)習(xí)旅程吧。因?yàn)?hellip;
旅程總有終點(diǎn),但問(wèn)題長(zhǎng)存
–––– 你學(xué)到了什么?這就是你想要的嗎?
謝謝大家的閱讀。