
緣起
近日在準備「資料分析師的工具箱」課程,寫到養成的學習地圖時,按照過去的慣例將許多我覺得不錯的書籍列為延伸閱讀,讓學員能夠自行選修閱讀,但是過程中轉念一想:「對於初學者而言羅列出琳瑯滿目的參考書籍清單,是有實質的助益嗎?」於是乎我問問自己:「假如只列一本參考書籍呢?」私心覺得這個難度是太高了,畢竟學習地圖要涵蓋資料科學的基礎與應用;於是折衷一下改問自己:「假如每個里程碑只列一本參考書籍呢?」覺得這樣是可行的!所以我刪減了豐富的參考書籍,在資料分析師學習地圖的每個里程碑都只列一本參考書籍,希望在這個盛行極簡主義、減法勝於加法的世代,能給有心想入門的初學者更簡潔的指引。
資料分析師的學習地圖
第零站:跟電腦變成好朋友
寫程式是理解資料分析、統計知識與機器學習理論不可或缺的工具與手段,因此學習的起點必須從程式設計起步,而在開始寫程式之前我們應該跟電腦變成好朋友!首先學習操作終端機以及純文字編輯器,行有餘力的話,再多認識 Git 和 GitHub。
如果只能在第零站列一本參考書籍,我會推薦 Michael Freeman and Joel Ross. Data Science Foundations Tools and Technique,這本書深入淺出地簡介了純文字編輯器、終端機、Git 和 GitHub;R 語言的部分則是鉅細靡遺,列在第零站讀者只需要專注在純文字編輯器、終端機,行有餘力再多閱讀 Git 和 GitHub 的部分,R 語言的部分可以暫且略過。
第一站:使用 SQL 查詢資料
從歷年的 Kaggle 調查我們可以得知資料分析師使用最多的語言依序是 Python -> SQL -> R,我會推薦從 SQL 開始,原因是 SQL 作為由資料庫中查詢資料的語言,與人類語言的相似度高、語法單純並且是即戰力的工具。
如果只能在第一站列一本參考書籍,我會推薦 Larry Rockoff. Language of SQL, The (Learning),這本書從 SQL 作為視角出發,而不是從關聯式資料庫管理系統切入,是我認為入門 SQL 必須注意的一點,學習標準 SQL 而非專注在特定關聯式資料庫管理系統,讓自己的技能可以適用於 MySQL、Microsoft SQL Server、Oracle Database 或 PostgreSQL 等。除了一本參考書籍,我也推薦自己的 SQL 的五十道練習線上課程,是結合觀念講解與練習實作的課程設計。
第二站:使用商業智能軟體作探索性分析
懂得如何寫作 SQL 之後,可以跟試算表、商業智能軟體搭配開始進行探索性分析,從歷年的 Kaggle 調查我們得知 Tableau 與 Microsoft Power BI 是現在最普遍的商業智能軟體,而這兩個都有免費的版本可供個人電腦使用,如果是使用 Windows 作業系統的學員可以都試用看看,使用 macOS 的學員就試用 Tableau。
由於商業智能軟體的特性,我覺得用書籍學習的效果欠佳,最好能透過教學影片操作示範,因此第二站不列參考書籍,Tableau 我推薦彭老師的從零上手 Tableau 大數據視覺化;Microsoft Power BI 我推薦 Dax 老師的 Power BI數據分析實戰。
第三站:學習 Python 程式設計
想要勝任工程導向的資料科學團隊職缺,必須學會一個在專案的各個應用都能介接、並且能夠自己整併清理資料的程式語言,從歷年的 Kaggle 調查我們得知資料分析師的首選是 Python 程式語言。
如果只能在第三站列一本參考書籍,我會推薦 Allen Downey, Think Python: How to Think Like a Computer Scientist,用這本書的學習脈絡,其實不只可以學會 Python 程式設計,更能夠延伸到泛用的電腦科學相關科目的學習,專注在程式設計的重要觀念,篇幅適中、難度也不高,是對初學者非常友善的設計。除了一本參考書籍,我也推薦自己的 Python 的 50+ 練習線上課程,是結合觀念講解與練習實作的課程設計。
第四站:機器學習應用
先使用機器學習模組、套件實作 Kaggle 專案,至於為何所引用的函數與類別能夠完成機器學習應用,則留待後續在研讀理論後融會貫通。
如果只能在第六站列一本參考書籍,我會先將讀者區分為三種偏好來對應推薦,分別是以機器學習框架 Scikit-Learn 為主、以深度學習框架 Keras 為主或者以深度學習框架 PyTorch 為主。
第一種偏好以機器學習框架 Scikit-Learn 為主我會推薦 Sebastian Raschka, Python Machine Learning,這本書從第一版專注在 Scikit-Learn 框架的機器學習實作,到現在第三版更涵蓋了 TensorFlow 2 的深度學習實作,透過簡單的 iris、California Household 與 MNIST 等資料集帶著讀者鉅細靡遺把每一個 Scikit-Learn、TensorFlow 2 的功能都詳細地示範。第二種偏好以深度學習框架 Keras 為主我會推薦 Francois Chollet, Deep Learning with Python,沒有什麼比讓 Keras 作者教我們如何使用 Keras 進行深度學習更貼切的了!第三種偏好以深度學習框架 PyTorch 為主我會推薦 Eli Stevens, Luca Antiga, and Thomas Viehmann, Deep Learning with PyTorch,沒有什麼比讓 PyTorch 作者與主要貢獻者教我們如何使用 PyTorch 進行深度學習更貼切的了!
第五站:學習 R 程式設計
機器學習理論會牽涉到程式設計與統計理論,特別是條件機率與機率分配等部分,學習統計理論最好的程式語言是 R 語言,如果已經掌握 Python 程式設計以及資料科學模組 NumPy、Pandas,在 R 語言的學習進展將會非常快速,我們會發現兩者在面對資料的處理邏輯上其實有異曲同工之妙。
如果只能在第五站列一本參考書籍,我會推薦 Norman Matloff, The Art of R Programming,我無法用文字或言語形容自己有多愛這本書的封面設計(誤),雖然 R 語言是統計程式語言,但是若能夠像這本書將 R 語言當作是一個泛用型程式語言開始講解起,雖然學習時數較長,卻能夠幫助沒有寫程式背景、經驗的統計學家紮穩程式設計的根基。除了一本參考書籍,我也推薦自己的 R 語言的 50+ 練習線上課程,是結合觀念講解與練習實作的課程設計。
第六站:統計與機器學習理論
不論是找相關工作的技術面試或者實務應用,除了能夠使用現成的機器學習模組、套件,也要能夠理解相關函數、類別的參數設定以及其背後的理論對應,才能夠順利通過面試或勝任工作。
如果只能在第六站列一本參考書籍,我會先將讀者區分為三種偏好來對應推薦,分別是喜歡讀原文書、能夠接受簡體中文書籍或者喜歡 R 語言統計學習多過於 Python 機器學習。
第一種偏好喜歡讀原文書的我會推薦 Ian Goodfellow, Yoshua Bengio, and Aaron Courville, Deep Learning;第二種偏好能夠接受簡體中文書籍的我會推薦被暱稱為「西瓜書」的周志華,機器學習;第三種偏好喜歡 R 語言統計學習多過於 Python 機器學習的我會推薦 Gareth James, Daniela Witten, Trevor Hastie, and Robert Tibshirani, An Introduction to Statistical Learning。
對於這些參考書籍的推薦有什麼想法嗎?歡迎留言討論、交流意見或者分享🙋♂️