自學(xué)成為數(shù)據(jù)科學(xué)家的 10 個(gè)步驟
成為數(shù)據(jù)科學(xué)家不需要學(xué)位,這是一個(gè)跨學(xué)科的領(lǐng)域。只要你樂于學(xué)習(xí)新事物并愿意投入精力和時(shí)間,你就可以成為一名數(shù)據(jù)科學(xué)家。現(xiàn)在的問題是,從哪里開始?對于初學(xué)者來說,龐大的信息量可能會(huì)讓人不知所措,甚至在開始之前就放棄。在本文中,我將制定包含 10 個(gè)步驟的結(jié)構(gòu)化學(xué)習(xí)路線圖,列出需要學(xué)習(xí)的內(nèi)容以及成為數(shù)據(jù)科學(xué)家應(yīng)該學(xué)習(xí)的順序。
步驟一:編程
如果你是技術(shù)領(lǐng)域的新手,那么編程將是最好的起點(diǎn)。目前,數(shù)據(jù)科學(xué)中使用最多的兩種編程語言是 Python 和 R。
R:一種用于統(tǒng)計(jì)計(jì)算的編程語言。R 廣泛用于開發(fā)統(tǒng)計(jì)軟件和數(shù)據(jù)分析。 Python:一種高級(jí)、通用的編程語言。Python 廣泛應(yīng)用于許多應(yīng)用程序和領(lǐng)域,從簡單的編程到量子計(jì)算。
因?yàn)?Python 是一種對初學(xué)者友好的編程語言,所以我發(fā)現(xiàn)它是開始數(shù)據(jù)科學(xué)和未來可能更多領(lǐng)域的好地方。由于 Python 的流行,有許多資源可以獨(dú)立于你的目標(biāo)應(yīng)用領(lǐng)域來學(xué)習(xí)它。我最喜歡的一些 Python 學(xué)習(xí)資源是 CodeAcademy、Google Classes 和 Learn Python the Hard Way。如果決定使用 R,Coursera 和 edX 都有很棒的課程,可以免費(fèi)旁聽。如果已經(jīng)知道如何編程,并且可能從另一個(gè)技術(shù)領(lǐng)域轉(zhuǎn)移到數(shù)據(jù)科學(xué)領(lǐng)域。在這種情況下,可以跳過此步驟并前進(jìn)到旅程的下一步。
CodeAcademy: https://www.codecademy.com/catalog/language/python
Google Classes: https://developers.google.com/edu/python
Learn Python the Hard Way: https://learnpythonthehardway.org/book
coursera: https://www.coursera.org/learn/r-programming
edX: https://www.edx.org/professional-certificate/harvardx-data-analysis-for-life-sciences
步驟 2:數(shù)據(jù)庫
數(shù)據(jù)科學(xué)的核心是數(shù)據(jù)。每當(dāng)開始數(shù)據(jù)科學(xué)項(xiàng)目時(shí),都需要有數(shù)據(jù)來分析、可視化和構(gòu)建項(xiàng)目。這些數(shù)據(jù)通常存儲(chǔ)在某個(gè)數(shù)據(jù)庫中。作為數(shù)據(jù)科學(xué)家脫穎而出的一個(gè)重要步驟是有效地與數(shù)據(jù)庫進(jìn)行交互。如果你可以設(shè)計(jì)一個(gè)簡單的數(shù)據(jù)庫,那么這將帶你進(jìn)入下一個(gè)層次。要與數(shù)據(jù)庫通信,你需要使用它的語言。那就是SQL。SQL 代表結(jié)構(gòu)化查詢語言,用于與數(shù)據(jù)庫進(jìn)行通信。我最喜歡的學(xué)習(xí) SQL 的資源是 CodeAcademy、Khan Academy 和交互式學(xué)習(xí) SQLCourse。
codecademy: https://www.codecademy.com/learn/learn-sql
Khan Academy: https://www.khanacademy.org/computing/computer-programming/sql
SQLCourse: https://www.sqlcourse.com/
第 3 步:數(shù)學(xué)
數(shù)據(jù)科學(xué)的核心是數(shù)學(xué)。要了解數(shù)據(jù)科學(xué)的不同概念如何起作用,需要對它們背后的數(shù)學(xué)有基本的了解。了解概率論、統(tǒng)計(jì)學(xué)和線性代數(shù)的基礎(chǔ)知識(shí)才能理解數(shù)據(jù)科學(xué)。但是,你在職業(yè)生涯中使用的大多數(shù)工具都會(huì)消除在您的項(xiàng)目中實(shí)施數(shù)學(xué)本身。不要讓數(shù)學(xué)嚇倒你探索數(shù)據(jù)科學(xué)世界。我會(huì)說這是非常值得的。Coursera 上有一些有用的材料可以幫助解決所需的數(shù)學(xué)問題。
coursera: https://www.coursera.org/learn/datasciencemathskills
coursera: https://www.coursera.org/specializations/mathematics-for-data-science
第 4 步:版本控制
在一般的軟件開發(fā)和數(shù)據(jù)科學(xué)中,需要掌握或嘗試掌握的最重要的概念之一是版本控制。每當(dāng)你從事數(shù)據(jù)科學(xué)項(xiàng)目時(shí),都需要編寫不同的代碼文件、探索數(shù)據(jù)集并與其他數(shù)據(jù)科學(xué)家合作。管理,代碼中的所有更改,都是通過版本控制完成的,即使用 Git。Git 是一個(gè)版本控制系統(tǒng),用于在軟件開發(fā)過程中跟蹤源代碼的變化。Git 旨在協(xié)調(diào)一組程序員之間的工作,或者用于跟蹤單個(gè)程序員對任何一組文件的更改。盡管 Git 是一個(gè)系統(tǒng),但有些網(wǎng)站允許你輕松使用 Git,而無需與命令行進(jìn)行太多交互——例如GitHub或GitLab。有很多資源可以幫助了解 Git 的內(nèi)部功能;我的首選是 BitBucket Learn Git Tutorials和來自哈佛 CS50 課程的這個(gè)講座。
BitBucket: https://www.atlassian.com/git/tutorials/what-is-version-control
CS50: https://www.youtube.com/watch?v=2A7nVdAoqqk&list=PLhQjrBD2T382hIW-IsOVuXP1uMzEvmcE5&t=0s
第 5 步:數(shù)據(jù)科學(xué)基礎(chǔ)
數(shù)據(jù)科學(xué)是一個(gè)廣義術(shù)語。它包含不同的概念和技術(shù)。但在深入研究數(shù)據(jù)科學(xué)的海洋之前,需要先熟悉一些基礎(chǔ)知識(shí)。要成為一名成功的數(shù)據(jù)科學(xué)家,你需要開發(fā)和努力掌握一些重要技能,例如:
查找數(shù)據(jù)集:有兩種方法可以啟動(dòng)任何數(shù)據(jù)科學(xué)項(xiàng)目;你要么有一個(gè)要用于構(gòu)建項(xiàng)目的數(shù)據(jù)集。或者你有一個(gè)想法,需要找到一個(gè)數(shù)據(jù)集。探索數(shù)據(jù)集并為你的項(xiàng)目選擇合適的數(shù)據(jù)集是一項(xiàng)重要的技能。 科學(xué)交流:作為一名數(shù)據(jù)科學(xué)家,你需要與普通觀眾交流以交付你的過程和發(fā)現(xiàn)。因此,你將需要發(fā)展科學(xué)交流技能并使用簡單的術(shù)語解釋復(fù)雜的概念。 有效的可視化:驗(yàn)證你的發(fā)現(xiàn)的唯一方法是將它們可視化。可視化在數(shù)據(jù)科學(xué)中發(fā)揮著重要作用,從探索數(shù)據(jù)到交付結(jié)果。熟悉有效的數(shù)據(jù)可視化可以在項(xiàng)目期間節(jié)省大量時(shí)間和精力。
第 6 步:機(jī)器學(xué)習(xí)基礎(chǔ)
所以,你提高了你的編程技能,復(fù)習(xí)了你的數(shù)學(xué),并潛入了數(shù)據(jù)庫。現(xiàn)在就可以開始有趣的部分了,運(yùn)用到目前為止所學(xué)的知識(shí)來構(gòu)建自己的第一個(gè)項(xiàng)目。機(jī)器學(xué)習(xí)基礎(chǔ)知識(shí)是起點(diǎn)。這是開始學(xué)習(xí)和探索基本機(jī)器學(xué)習(xí)算法和技術(shù)的時(shí)間,例如線性和邏輯回歸、決策樹、樸素貝葉斯和支持向量機(jī) (SVM)。在這里,還可以開始發(fā)現(xiàn)不同的 Python 或 R 包來處理和實(shí)現(xiàn)您的數(shù)據(jù)。您將開始使用 Sciket-learn、Scipy 和 Numpy。你將學(xué)習(xí)如何清理數(shù)據(jù)以獲得更準(zhǔn)確的結(jié)果。在此部分,你將體驗(yàn)數(shù)據(jù)科學(xué)可以做什么,并能夠看到該領(lǐng)域?qū)ξ覀內(nèi)粘I畹挠绊憽?/p>
第 7 步:時(shí)間序列和模型驗(yàn)證
是時(shí)候深入研究機(jī)器學(xué)習(xí)了。數(shù)據(jù)不會(huì)是靜止的;它通常以某種方式與時(shí)間有關(guān)。時(shí)間序列是基于時(shí)間排序的數(shù)據(jù)點(diǎn)。最常見的是,時(shí)間序列是在連續(xù)等間隔時(shí)間點(diǎn)采集的數(shù)據(jù)序列。使它們成為離散時(shí)間數(shù)據(jù)。時(shí)間序列展示時(shí)間如何改變。這可以深入了解數(shù)據(jù)中的趨勢、周期性,并預(yù)測數(shù)據(jù)的未來行為。在處理時(shí)間序列時(shí),你需要處理兩個(gè)主要部分:
分析時(shí)間序列數(shù)據(jù) 預(yù)測時(shí)間序列數(shù)據(jù)
建立模型來預(yù)測未來的行為是不夠的;你需要驗(yàn)證此模型的正確性。在這里,你將學(xué)習(xí)如何有效地構(gòu)建和測試模型。此外,你將學(xué)習(xí)如何估計(jì)每個(gè)項(xiàng)目的錯(cuò)誤閾值以及如何將模型保持在可接受的范圍內(nèi)。
第 8 步:神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)(人工神經(jīng)網(wǎng)絡(luò)或ANN)是一種受生物啟發(fā)的編程范例,使計(jì)算機(jī)能夠從觀測數(shù)據(jù)中學(xué)習(xí)。人工神經(jīng)網(wǎng)絡(luò)最初是一種模仿人腦架構(gòu)以執(zhí)行不同學(xué)習(xí)任務(wù)的方法。為了使 ANN 類似于人腦,它被設(shè)計(jì)為包含與人類細(xì)胞相同的組件。因此,ANN 包含一組神經(jīng)元;每個(gè)神經(jīng)元代表一個(gè)節(jié)點(diǎn),通過鏈接連接到另一個(gè)節(jié)點(diǎn)。這些鏈接對應(yīng)于生物軸突-突觸-樹突連接。此外,這些鏈接中的每一個(gè)都有一個(gè)權(quán)重,它決定了一個(gè)節(jié)點(diǎn)對另一個(gè)節(jié)點(diǎn)的強(qiáng)度。學(xué)習(xí)人工神經(jīng)網(wǎng)絡(luò)能夠處理更廣泛的任務(wù),包括識(shí)別手寫,模式識(shí)別和面部識(shí)別。ANN 代表了需要了解的基本邏輯,以繼續(xù)數(shù)據(jù)科學(xué)之旅的下一步,即深度學(xué)習(xí)。
第 9 步:深度學(xué)習(xí)
神經(jīng)網(wǎng)絡(luò)是支持深度學(xué)習(xí)的范例。深度學(xué)習(xí)代表了一套強(qiáng)大的技術(shù),可以利用神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力。你可以使用神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)來解決各個(gè)領(lǐng)域的許多問題的最佳解決方案,包括圖像識(shí)別、語音識(shí)別和自然語言處理。到現(xiàn)在為止,你將熟悉許多處理數(shù)據(jù)科學(xué)不同方面的 Python 包。在這一步中,你將有機(jī)會(huì)嘗試流行的軟件包,例如 Keras 和 TensorFlow。此外,通過這一步,你將能夠閱讀數(shù)據(jù)科學(xué)的最新研究進(jìn)展,并可能開發(fā)自己的研究進(jìn)展。
第 10 步:自然語言處理
到目前為止,你已經(jīng)了解了許多理論和實(shí)踐概念,從簡單的數(shù)學(xué)到復(fù)雜的深度學(xué)習(xí)概念。那么,接下來是什么?我個(gè)人最喜歡的數(shù)據(jù)科學(xué)子領(lǐng)域,即自然語言處理 (NLP)。自然語言處理是一個(gè)令人興奮的分支,它使你能夠利用機(jī)器學(xué)習(xí)的力量“教”計(jì)算機(jī)理解和處理人類語言。這將包括語音識(shí)別、文本到語音應(yīng)用程序——反之亦然——虛擬協(xié)助(如 Siri 和 BERT),以及各種不同的對話機(jī)器人。
結(jié)論
成為數(shù)據(jù)科學(xué)家意味著你將處于持續(xù)學(xué)習(xí)階段。你將在學(xué)習(xí)過程中發(fā)展自己的知識(shí)和風(fēng)格。你可能更受某個(gè)特定子領(lǐng)域的吸引,并且會(huì)深入挖掘,并且可能專注于該子領(lǐng)域。你需要開放思路,并投入足夠的時(shí)間和精力來實(shí)現(xiàn)你的最終目標(biāo)。


相關(guān)閱讀:
