
作者 | William Koehrsen
翻譯 | Mika
本文為 CDA 數(shù)據(jù)分析師原創(chuàng)作品,轉(zhuǎn)載需授權(quán)
如果現(xiàn)代工作面試教會(huì)了我們什么,那就是關(guān)于“你最大的弱點(diǎn)是什么?”這個(gè)問題,正確答案是“我工作太努力了?!憋@然,說出自己的弱點(diǎn)是很可笑的。雖然在個(gè)人簡(jiǎn)歷中列出弱點(diǎn)不太好,但是如果不承認(rèn)自己的不足,我們就無法采取措施改善它們。
做出改進(jìn)的方法很簡(jiǎn)單:
明確現(xiàn)在的位置:找出弱點(diǎn)
想變成什么樣:制定實(shí)現(xiàn)的計(jì)劃
執(zhí)行計(jì)劃:一步步改進(jìn)
我們很少能跨越第一步,特別是對(duì)于在技術(shù)領(lǐng)域工作的人群。我們埋頭苦干,不斷工作,使用已掌握的技能,而不是獲得哪些能讓我們工作更輕松或能帶來新機(jī)會(huì)的新技能。自我反省,客觀地評(píng)估自己,這似乎是一個(gè)陌生的概念。但若能夠退后一步,弄清我們哪些方面能做得更好,從而在該領(lǐng)域取得進(jìn)步,這是至關(guān)重要的。
考慮到這一點(diǎn),我試著客觀地評(píng)價(jià)自己,并總結(jié)了目前自己的三個(gè)弱點(diǎn),改善以下這幾點(diǎn)能讓我成為更好的數(shù)據(jù)科學(xué)家:
軟件工程
擴(kuò)展數(shù)據(jù)科學(xué)
本文中我列出這些弱點(diǎn)主要的目的在于:首先,我非常想提高自己的能力,通過列出自己的不足以及如何解決它們,希望能夠激勵(lì)自己繼續(xù)學(xué)習(xí),完成目標(biāo)。
其次,我希望鼓勵(lì)其他人思考自己有哪些沒掌握的技能,以及該如何獲取這些技能。
最后,我想告訴你,成為出色的數(shù)據(jù)科學(xué)并不需要做到無所不知。關(guān)于數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)的知識(shí)是無線的,你能夠掌握的是有限的。我常常聽到初學(xué)者抱怨,要掌握的知識(shí)太多了,我給出的建議就是:從基礎(chǔ)開始,你并不需要掌握所有內(nèi)容。
只有極少的數(shù)據(jù)科學(xué)家能夠掌握全部知識(shí)
對(duì)于每個(gè)弱點(diǎn),我都列出了具體的問題,以及我目前在做什么進(jìn)行改進(jìn)。發(fā)現(xiàn)自己的不足很重要,但制定改進(jìn)計(jì)劃也同樣重要。學(xué)習(xí)一項(xiàng)新技能需要時(shí)間,但計(jì)劃好一步步的具體步驟會(huì)大大增加你成功的幾率。
1. 軟件工程
在大學(xué)時(shí)進(jìn)行我的第一個(gè)數(shù)據(jù)科學(xué)項(xiàng)目后,我開始試著避免一些數(shù)據(jù)科學(xué)方法中的壞習(xí)慣。其中包括編寫僅運(yùn)行一次的代碼,缺少文檔,沒有一致性且難閱讀的代碼,硬編碼特定值等。這些都是寫論文所帶來的,為了寫一篇論文,開發(fā)針對(duì)特定數(shù)據(jù)集且只能運(yùn)行一次的解決方案。
其中一個(gè)典型的例子是,我們有個(gè)項(xiàng)目使用建筑能源數(shù)據(jù),最初每隔15分鐘獲取一次數(shù)據(jù)。當(dāng)我們把時(shí)間增加為20分鐘時(shí),數(shù)據(jù)管道完全崩潰了,因?yàn)樵S多地方已明確將時(shí)間編為15分鐘。我們不能進(jìn)行簡(jiǎn)單的查找和替換,因?yàn)樵搮?shù)被設(shè)定為多個(gè)名稱,如`electricity_interval` `timeBetweenMeasurements`還有`dataFreq`。我們當(dāng)中沒有人想過讓代碼更易閱讀或能夠靈活改變輸入。
相比之下,從軟件工程的角度來看,代碼必須使用大量不同的輸入進(jìn)行測(cè)試,在現(xiàn)有框架內(nèi)工作,并遵守編程標(biāo)準(zhǔn),以便其他開發(fā)人員能夠理解。盡管我的初衷是好的,但我偶爾會(huì)像數(shù)據(jù)科學(xué)家那樣寫代碼,而不是像軟件工程師那樣?,F(xiàn)在我正在訓(xùn)練自己像計(jì)算機(jī)科學(xué)家一樣思考。
我在做什么
學(xué)習(xí)技能沒有比練習(xí)更好的方法。幸運(yùn)的是,在我目前的工作中,我能夠?yàn)閮?nèi)部工具和開源庫(Featuretools)做出貢獻(xiàn)。這迫使我學(xué)習(xí)了很多技能,包括:
編寫單元測(cè)試
遵循編碼風(fēng)格
編寫接受更改參數(shù)的函數(shù)
徹底記錄代碼
讓他人檢查代碼
重構(gòu)代碼,使其更簡(jiǎn)單、更易于閱讀
對(duì)于還未工作的數(shù)據(jù)科學(xué)家,你也可以通過參與開源項(xiàng)目獲得這些經(jīng)驗(yàn)。除此之外,你還可以通過查看GitHub上流行庫的源代碼。
像軟件工程師一樣思考需要改變思維模式,但做到這一點(diǎn)并不難。例如,每當(dāng)我發(fā)現(xiàn)自己在Jupyter Notebook中復(fù)制和粘貼代碼并更改一些值時(shí),我就會(huì)停下來,并意識(shí)到從長(zhǎng)遠(yuǎn)的角度看用函數(shù)會(huì)更高效。
總有需要改進(jìn)的地方(在Sublime Text 3中使用pylint)
我還想研究計(jì)算機(jī)科學(xué)的許多其他方面,例如編寫有效的實(shí)現(xiàn),而不是用蠻力方法(例如使用矢量化而不是循環(huán))。同時(shí)要注意想一下子全部改變是不顯示的,這也是我為什么專注于一些實(shí)踐,并將其融入到我的工作流程中。
雖然數(shù)據(jù)科學(xué)自成一體,但從業(yè)者仍可以通過借鑒軟件工程等領(lǐng)域的最佳實(shí)踐從中受益。
2. 擴(kuò)展數(shù)據(jù)科學(xué)
雖然你可以自學(xué)數(shù)據(jù)科學(xué)中的所有內(nèi)容,但要將其應(yīng)用到實(shí)踐中還是存在一些限制。一個(gè)是難以將分析或預(yù)測(cè)模型擴(kuò)展到大型數(shù)據(jù)集。我們中大多數(shù)人無法訪問計(jì)算集群,也不想為一臺(tái)個(gè)人超級(jí)計(jì)算機(jī)掏錢。這意味著當(dāng)我們學(xué)習(xí)新方法時(shí),我們傾向于將它們應(yīng)用于小型且表現(xiàn)良好的數(shù)據(jù)集。
然而在現(xiàn)實(shí)情況中,數(shù)據(jù)集并不符合一定的大小或干凈程度,你需要用不同的方法來解決問題。首先,你可能需要打破個(gè)人計(jì)算機(jī)的安全限制,使用遠(yuǎn)程實(shí)例(例如通過AWS EC2)甚至多臺(tái)計(jì)算機(jī)。
在學(xué)習(xí)數(shù)據(jù)科學(xué)時(shí),我嘗試在EC2機(jī)器上練習(xí),這有助于讓我熟悉命令行,但是,我仍然沒有解決當(dāng)數(shù)據(jù)集大于機(jī)器的內(nèi)存情況。最近,我意識(shí)到這一點(diǎn)限制了我的前進(jìn),是時(shí)候?qū)W習(xí)如何處理更大數(shù)據(jù)集的了。
我在做什么
即使不在計(jì)算資源上花費(fèi)大量金錢,就可以實(shí)踐超出內(nèi)存限制的數(shù)據(jù)集的處理方法。其中包括每次迭代數(shù)據(jù)集的一部分,將大型數(shù)據(jù)集分成較小的數(shù)據(jù)集,或者使用Dask這樣的工具來處理大數(shù)據(jù)。
我目前采用的方法是將數(shù)據(jù)集分為多個(gè)子集,開發(fā)能夠處理每個(gè)部分的管道,然后使用Dask或Spark,與PySpark并行地運(yùn)行管道中的子集。這種方法不需要用到超級(jí)計(jì)算機(jī)或集群,你可以在個(gè)人計(jì)算機(jī)上并行操作。
此外,由于像Kaggle等數(shù)據(jù)存儲(chǔ)庫,我能夠找到一些大型的數(shù)據(jù)集,并查看其他數(shù)據(jù)科學(xué)家的處理它們的方法。我已經(jīng)學(xué)到了很多有用的技巧,例如通過更改數(shù)據(jù)框中的數(shù)據(jù)類型來減少內(nèi)存消耗。這些方法有助于更有效地處理任何大小的數(shù)據(jù)集。
雖然我還沒處理過TB級(jí)的數(shù)據(jù)集,但這些方法幫助我學(xué)習(xí)了處理大數(shù)據(jù)的基本方法。對(duì)于最近的一些項(xiàng)目,我能夠運(yùn)用目前學(xué)到的技能對(duì)在AWS上運(yùn)行的集群進(jìn)行分析。希望在之后的幾個(gè)月,我能逐步提高處理數(shù)據(jù)集的大小。
美國(guó)國(guó)會(huì)圖書館“只有”3PB的材料
雖然人工智能在繁榮和蕭條中更迭,但是它最近在計(jì)算機(jī)視覺、自然語言處理、深度強(qiáng)化學(xué)習(xí)等領(lǐng)域的成功應(yīng)用讓我確信基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)不是曇花一現(xiàn)。
與軟件工程或擴(kuò)展數(shù)據(jù)科學(xué)不同,我目前的職位不需要用到深度學(xué)習(xí),例如隨機(jī)森林等傳統(tǒng)的機(jī)器學(xué)習(xí)技術(shù)已經(jīng)能夠解決所有問題。但是,我認(rèn)識(shí)到并非每個(gè)數(shù)據(jù)集都是結(jié)構(gòu)整齊的,而神經(jīng)網(wǎng)絡(luò)是目前處理文本或圖像項(xiàng)目的最佳選擇。
探索和利用的權(quán)衡在強(qiáng)化學(xué)習(xí)和你的生活中的應(yīng)用
在深度學(xué)習(xí)中有許多不同的子領(lǐng)域,很難弄清楚哪些方法最終會(huì)勝出。盡管如此,我認(rèn)為熟悉該領(lǐng)域能夠讓人們能夠處理更廣泛的問題。
我在做什么
我學(xué)習(xí)深度學(xué)習(xí)的方法與成為數(shù)據(jù)科學(xué)家的方法相同:
閱讀著重部署應(yīng)用的書籍和教程
在實(shí)際項(xiàng)目中練習(xí)技術(shù)和方法
通過寫作分享和解釋我的項(xiàng)目
在學(xué)習(xí)一項(xiàng)技術(shù)時(shí),最有效的方法是邊做邊學(xué)。對(duì)我來說,這意味著不是從基礎(chǔ)的基礎(chǔ)理論開始,而是通過找出如何實(shí)現(xiàn)解決問題的方法。這種自上而下的方法意味著我更重視關(guān)于動(dòng)手的書籍,即當(dāng)中包括許多代碼例子。
對(duì)于深度學(xué)習(xí),我主要看了以下三本書:
Deep Learning Cookbook,作者:Douwe Osinga
Deep Learning with Python,作者: Francois Chollet
Deep Learning,作者:Ian Goodfellow、Yoshua Bengio、Aaron Courville
前兩本重點(diǎn)是用神經(jīng)網(wǎng)絡(luò)構(gòu)建實(shí)際解決方案,而第三本重點(diǎn)是深入理論。當(dāng)閱讀有關(guān)技術(shù)主題的書籍時(shí),你需要更主動(dòng)參與其中,盡可能試著書中的代碼。像前兩本提供代碼例子的書籍很棒,我經(jīng)常會(huì)在Jupyter Notebook中逐行輸入代碼,弄清當(dāng)中的原理。
此外,我不僅試著復(fù)制這些代碼,還會(huì)將它們用于自己的項(xiàng)目。這方面的一個(gè)應(yīng)用是我最近構(gòu)建的圖書推薦系統(tǒng),該系統(tǒng)是根據(jù)Deep Learning Cookbook的類似代碼改編的。從頭開始創(chuàng)建自己的項(xiàng)目可能會(huì)令人生畏,但這也是提升自己最好的方法。
最后,學(xué)習(xí)技術(shù)最有效方法之一是教別人。只有當(dāng)我試著用簡(jiǎn)單的術(shù)語向其他人解釋時(shí),我才能我完全理解這個(gè)概念。隨著學(xué)習(xí)深度學(xué)習(xí)的每個(gè)知識(shí),我將寫下了,分享當(dāng)中的技術(shù)實(shí)現(xiàn)細(xì)節(jié)和概念性解釋。
教學(xué)是最好的學(xué)習(xí)方式之一,我打算將其作為學(xué)習(xí)深度學(xué)習(xí)的一個(gè)重要組成部分。
結(jié)語
羅列自己的弱點(diǎn)可能會(huì)有點(diǎn)奇怪,但這能讓我成為更好的數(shù)據(jù)科學(xué)家。而且,我發(fā)現(xiàn)很多人,包括雇主們,會(huì)對(duì)你坦誠自己的弱點(diǎn)并探討如何解決它們留下深刻印象。
缺乏某些技能并不是缺點(diǎn)——真正的缺點(diǎn)是假裝你什么都懂,而且沒有想改進(jìn)的意思。
通過發(fā)現(xiàn)我在數(shù)據(jù)科學(xué)方面的弱點(diǎn):軟件工程,擴(kuò)展分析/建模,深度學(xué)習(xí),我的目標(biāo)是提高自己,鼓勵(lì)其他人思考自己的弱點(diǎn)。要成為成功的數(shù)據(jù)科學(xué)家,你并不需要什么都懂。雖然反思自己的弱點(diǎn)可能是痛苦的,但學(xué)習(xí)是愉快的:最有成就感的事情莫過于,經(jīng)過一段時(shí)間的持續(xù)學(xué)習(xí)后,你會(huì)發(fā)現(xiàn)自己比剛開始時(shí)已經(jīng)懂了很多。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國(guó)內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03