自學成為數據科學家的一條免費學習路徑

如何通過免費方式學習數據科學?數據科學家 Rebecca Vickery 從技術能力、理論和實踐經驗三個方面入手介紹了自己的經驗。

自學成為數據科學家的一條免費學習路徑

在傳統教育機構中讀碩士學位的平均成本差不多在 3 萬到 12 萬美元之間。在線數據科學學位課程也不便宜,最低成本為 9000 美元。如果你想學數據科學,但支付不起這筆費用,應該怎麼辦呢?

我在成為數據科學家之前沒有經歷過任何正式的專業教育。本文將分享我的個人課程表,無需支付數千美元也能學習數據科學。

該課程包含 3 個主要部分:技術能力、理論和實踐經驗。文中包含該學習路徑中每個元素的免費資源鏈接,以及一些「低成本」資源的鏈接。如果你想花一點錢加速學習過程,你可以把這些資源添加到課程中。本文會說明每項資源的預計成本。


技術能力

本課程的第一部分為技術能力。推薦大家先學習這部分內容,這樣你就可以採取實踐優先的學習方式,而不是以數學理論為先。目前,Python 是數據科學領域使用最廣泛的編程語言。根據 Kaggle 2018 機器學習及數據科學調查報告,83% 的受訪者在日常工作中使用 Python。因此,我推薦大家學習 Python 語言,同時也推薦大家花一點時間學習其他語言,比如 R 語言。

Python 基礎

使用 Python 執行數據科學任務之前,你需要先掌握 Python 背後的基礎知識。你需要一門 Python 入門課程。網上有很多免費教程,我最喜歡的是 Codeacademy 的教程,因為它們允許在瀏覽器內進行動手編程實踐。

我推薦大家學習這個 Python 入門課程,該課程涵蓋 Python 基礎語法、函數、控制流、循環、模塊和類。

課程地址:https://www.codecademy.com/learn/learn-python

使用 Python 做數據分析

接下來,你需要充分了解如何使用 Python 做數據分析,這方面有很多不錯的資源。

首先,我推薦大家至少學完 dataquest.io 上數據分析師學習路徑的免費部分。Dataquest 提供完整的數據分析師、數據科學家和數據工程師學習路徑。其中大量內容,尤其是數據分析師學習路徑的內容可以免費獲取。如果你資金充足,我強烈建議你付費訂閱並學習這些內容。我學了這個課程,從中瞭解到數據科學的基礎知識。數據科學家路徑課程花費了我 6 個月時間。每個月的價格從 24.5 美元到 49 美元不等,這取決於你是否購買年費會員。資金充足的話,購買年費會員更划算(https://www.dataquest.io/subscribe/)。

自學成為數據科學家的一條免費學習路徑

Dataquest 平臺(https://app.dataquest.io/dashboard)

使用 Python 做機器學習

如果你已經學完了 Dataquest 上的數據科學課程,那麼你應該對使用 Python 執行機器學習的基礎知識有了充分了解。如果還沒有,這方面也有很多免費資源。我推薦首先從 scikit-learn 開始學起,因為 scikit-learn 是目前最常用的機器學習 Python 庫。

我很幸運,在學習過程中參加了 scikit-learn 核心開發者之一 Andreas Mueller 舉辦的為期兩天的 workshop。他發佈了該課程的所有材料,包含幻燈片、課程筆記和 notebook。推薦大家先學習這份資料。

課程資料地址:https://github.com/amueller

接下來,我推薦大家學習 scikit-learn 官方文檔中的一些教程。之後,大家就可以構建一些實際機器學習應用,學習模型運行背後的理論了。

scikit-learn 文檔地址:https://scikit-learn.org/stable/tutorial/basic/tutorial.html

SQL

想成為數據科學家,SQL 是必不可少的一項技能,因為抽取數據是數據建模的基礎流程之一。這通常需要對數據庫運行 SQL query。如果你沒有學完上述 Dataquest 數據科學課程,那麼這裡有一些免費資源可供選擇。

Codeacamdemy 有一門 SQL 入門課程,這門課實踐性很強,學習過程中你可以在瀏覽器內進行編程。

課程地址:https://www.codecademy.com/learn/learn-sql

如果你還想了解基於雲的數據庫查詢,那麼 Google Cloud BigQuery 是不錯的選擇。它有免費試用方案,你可以免費嘗試 query、大量公共數據集,以及閱讀官方文檔(https://cloud.google.com/bigquery/docs/tutorials)。

自學成為數據科學家的一條免費學習路徑

Codeacademy SQL 課程

R 語言

要想成為全面的數據科學家,只學 Python 還不夠。我推薦大家學習一門 R 語言入門課程。Codeacademy 就有一門免費入門課程。

課程地址:https://www.codecademy.com/learn/learn-r。

值得注意的是,Codeacademy 的 pro 版本也提供完整的數據科學學習計劃(升級 pro 賬戶需要每月支付 31.99 到 15.99 美元不等,具體費用取決於預先支付多少個月)。我個人覺得 Dataquest 的課程更加全面,但 Codeacademy 的這門課程要便宜一些。

軟件工程

掌握軟件工程技能和最佳實踐是明智的做法,這會使代碼更具可讀性和可擴展性。此外,當你開始將模型投入生產過程時,你需要寫出高質量、測試良好的代碼,並熟練使用版本控制等工具。

這裡有兩個不錯的免費資源。「Python Like You Mean It」涵蓋 PEP8 風格指南、文檔,以及面向對象的編程。

地址:https://www.pythonlikeyoumeanit.com/intro.html(有中文版)

scikit-learn 貢獻指南旨在促進開發者對 scikit-learn 庫的貢獻,但它實際上也涉及最佳實踐。它包括 GitHub、單元測試、debug 等話題,而且其寫作背景是數據科學應用。

scikit-learn 貢獻指南地址:https://scikit-learn.org/stable/developers/contributing.html

深度學習

要想對深度學習有一個全面的瞭解,我覺得 fast.ai 是最好的選擇,它完全免費且沒有廣告。該課程包含機器學習導論、深度學習實踐、計算線性代數和自然語言處理導論(代碼優先)。所有課程都以實踐為先,強烈推薦大家學習這些課。

課程地址:https://www.fast.ai/

自學成為數據科學家的一條免費學習路徑

fast.ai 平臺

理論

你在學習技術能力部分時,一定會遇到一些代碼背後的理論知識。我推薦大家在學習實踐能力的同時學習理論知識。我自己採取的方式是:學習能夠實現某項技術的代碼(比如 KMeans),在代碼運行後深入瞭解其概念,如慣性(inertia)。scikit-learn 文檔包含 KMeans 算法背後的所有數學概念,地址:https://scikit-learn.org/stable/modules/clustering.html#k-means。

這部分將介紹重要的基礎理論知識。

可汗學院幾乎涵蓋以下列舉的所有概念,且可免費學習。你可以在註冊可汗學院時選擇想要學習的主題,這樣就可以得到量身定做的理論學習路徑了。查看下圖中的所有複選框,提前瞭解下文將要列舉的大部分理論元素。

自學成為數據科學家的一條免費學習路徑

可汗學院

數學

♦ 微積分

微積分的維基百科定義是「一門研究變化的學問」。換句話說,微積分能夠找出函數之間的模式,比如導數可以幫助你理解函數隨著時間的變化。

很多機器學習算法利用微積分優化模型性能。如果你稍微瞭解機器學習,就一定聽說過梯度下降。梯度下降就是:迭代地調整模型參數值,以找出能夠最小化成本函數的局部極小值。梯度下降是微積分在機器學習中的應用的絕佳案例。

你需要了解以下知識:

♦ 導數

幾何定義

計算函數的導數

非線性函數

♦ 鏈式法則

複合函數

複合函數的導數

多個函數

♦ 梯度

偏導數

方向導數

積分(Integrals)

♦ 線性代數

很多流行的機器學習方法(包括 XGBoost)使用矩陣來存儲輸入和處理數據。矩陣和向量空間、線性方程構成了線性代數。要想了解機器學習方法的工作原理,你需要首先掌握線性代數知識。

你需要學習:

♦ 向量和空間

向量

線性組合

線性相關和線性無關

向量點積和叉積

♦ 矩陣變換

函數和線性變換

矩陣相乘

反函數

轉置矩陣

統計學

以下是你需要了解的重要概念:

♦ 描述性統計

如何總結數據樣本

不同分佈類型

偏斜度、峭度和集中趨勢(如均值、中位數、眾數)

依賴性度量,以及變量之間的關係(如相關性和協方差)

♦ 實驗設計

假設檢驗

採樣

顯著性檢驗

隨機性

概率

置信區間和雙總體推斷(two-sample inference)

♦ 機器學習

坡度推斷

線性和非線性迴歸

分類

自學成為數據科學家的一條免費學習路徑

實踐經驗

第三部分是實踐。要想真正掌握上述概念,你需要在類似現實應用的項目中使用這些技能。實踐過程中,你會遇到一些問題,如數據丟失、數據出錯,並逐漸發展出該領域的深層專業能力。這部分將列舉一些可供免費獲取實踐經驗的地方。

「實踐目的不僅是實現潛能,還在於開發潛能,使之前不可能的事變為可能。這要求你勇於挑戰:走出舒適區,強制大腦或身體不停適應。」Anders Ericsson,《Peak: Secrets from the New Science of Expertise》

Kaggle 等競賽

機器學習競賽是獲取構建機器學習模型實踐經驗的好去處。它們提供大量數據集、待解決問題和排行榜。排行榜是衡量現有知識能否開發出優秀模型的重要方式,還能幫助你發現哪些地方需要改進。

除了 Kaggle,還有很多機器學習競賽平臺,如 Analytics Vidhya 和 DrivenData。

自學成為數據科學家的一條免費學習路徑

DrivenData 競賽頁

UCI 機器學習庫

UCI 機器學習庫包含大量公共數據集。你可以使用這些數據集創建自己的數據項目,包括數據分析和機器學習模型。你甚至可以嘗試使用 web 前端構建一個部署模型。將自己的項目存儲在公共平臺是個好辦法,比如 GitHub,這可以幫你創建作品集,展示個人技能,為未來的求職打下基礎。

自學成為數據科學家的一條免費學習路徑

UCI 機器學習庫

開源貢獻

另一個選擇是為開源項目做貢獻。很多 Python 庫依賴社區進行維護,黑客馬拉松活動常常會在社區聚會和會議時舉辦,新手也可以參加這類聚會。參加這些活動可以幫你積攢實踐經驗,並提供一個向他人學習同時反饋他人的環境。Numfocus 就是一個例子。

本文介紹了數據科學學習路徑和免費學習在線課程與教程。在個人作品集中展示技能是未來求職的重要工具。我相信教育應該惠及每一個人,至少互聯網為數據科學學習者提供了這樣的機會。除了以上列舉的資源,我之前還寫過一份數據科學推薦閱讀清單,包含 10 本在線免費書籍,可以作為本文的補充。

閱讀清單地址:https://medium.com/vickdata/10-free-data-science-books-you-must-read-in-2019-2d4f32793a51

原文:https://www.jiqizhixin.com/articles/2019-10-20


分享到:


相關文章: