大數據文摘出品
作者:蔣寶尚
試圖入門一個新話題時,多數人會感到不知所措?這時候,一份明確的學習路徑可以幫你去除這一焦慮。
數據科學當然也有這樣一套路徑。
一周前在Github上出現的一份超高贊貼就總結出了這樣一份「入門套路」,據這位神秘的發帖人所說,數據科學的學習不需要繁雜的準備和高深的數學知識,你只需有足夠的時間、正確的學習方法、對數據分析的好奇心就足夠了。
這個項目是Github上一位名為「維吉爾(Vigilio)」的開發者整理的。項目包括職業進階路徑、專業知識講解、工具介紹等,著重強調,不走彎路,簡明扼要!
Vigilio稱,這篇帖子按照層次結構和複雜程度組織編寫,以便讓學習者對事物的運作方式有一個連貫的想法。
另外,小哥還搞了個 Facebook 群組,並不斷往上面更新信息,鼓勵大家一起學習,互相激勵。
5天前,這份github資料被名為@jiaxianhua 的同胞翻譯出了簡體中文版,讓不想費力讀英文的同學也可以輕鬆上手啦。
下面文摘菌根據這份資料給大家捋一捋如何高效入門數據科學。
新接觸數據科學
新接觸數據科學需要什麼?當然,Python這一基礎的程式語言需要掌握。一些數學的基礎知識當然也少不了。如果想進階的話,當然就需要學習一些高等的數學知識和高級的Python啦。
在這份github項目裡,這位外國小哥給出了基礎Python教程以及數據科學 Python 教程。其他的部分,包括高級Python、高等數學以及數學科學裡的數學知識,目前都還是「即將推出」的狀態。
先學Python然後入門數據科學,這絕對是最高效的學習路徑。
在基礎Python目錄下,先給出超連結讓你學習基本算術運算和數據類型,然後介紹流程控制,包括if語句的使用,for循環的使用等等。
關於函數的使用,在項目中,作者也給出了一個好的經驗法則是:如果一件事情要重複做3次以上,那就寫一個函數吧,並根據你的需要決定調用次數。
除此之外,一些基礎知識也有介紹。包括如何定義函數,如何調用等等。
總之,資料非常豐富,對於一些問題講的不夠清楚的地方也給出了超連結轉到了相應的答案。
完整的學習路徑
一個專業的機器學習工程師應該專注於 TensorFlow 和 Scikit-Learn。而使用Scikit-Learn主要能做的是端到端機器學習項目、線性回歸、分類、訓練模型、支持向量機、決策樹、集成學習和隨機森林以及無監督學習。
使用TensorFlow能夠搭建:ANN - 人工神經網絡,CNN - 卷積神經網絡,RNN - 遞歸神經網絡以及自動編碼器和做強化學習相關的項目。
除了使用這兩個框架之外,一些文章,網絡應用程式,reddit 線程,最佳實踐,項目和repo也非常值的看。
更多需要收藏以及注意的文章,博客可以去這份資料中尋找:
在學習機器學習時,數學知識應該掌握到什麼程度?正如這份github的作者而言:
無論誰告訴你機器學習背後的數學很難...... 都沒有錯!但是你必須考慮到每次你要使用它時,機器都會為你處理它!因此,重要的是掌握主要概念並認識到這些概念的限制和應用。沒有人會要求你手工計算梯度!
註:在路徑這一塊,目前只有機器學習相關資料,商業智能和雲計算都是待推出狀態
專業化
這個類別中,目前存在的是數據預處理和有效陳述這兩個項目。同樣,其他的項目包括數據可視化、數據採集等都是待推出的狀態。
關於數據預處理,其實是個迭代過程的收集、組合、結構化和組織數據。目的是為以後的數據可視化,分析和機器學習打下堅實的基礎。
每一個數據科學家或者數據工程師都應該具有清洗和構造數據的能力。不同的數據類型,需要做出不同的數據處理。在做數據預處理的過程中最主要是有不要把數據當玩笑的心態。
首先在嘗試數據準備步驟時,先不要處理 GB 級別的數據。只需使用數據的小子集 ,但子集要具有代表性)
在做數據清洗工作時候,需要注意:刪除額外的空格、選擇並處理所有空白單元格、轉換值類型、刪除重複項、將文本更改為小寫 / 大寫、拼寫檢查、處理特殊字符、規範日期、驗證豐富數據、數據離散化、特徵縮放等等。數據預處理是非常複雜的,你的最終目標是做到儘可能 自動化。
然後在數據分析中需要明確:你打算解決哪個業務問題 (什麼是重要的,什麼不是);數據是如何被收集的(有噪音,缺失值......) ;你們有多少數據在那裡,我在哪裡可以找到他們? (數據維度和從存儲中檢索)。
在學習數據預處理的過程中,你可以按順序選擇它們或選擇最適合你的那個,但建議你至少要一次把它們都看完。
總體來說有兩種類型的專業化:硬技能和軟技能。
前者是關於技術流程,是每個處理數據的人的核心工具包。使用數據是一種藝術形式,經驗法則和最佳實踐將幫助你了解處理它們的方式。你需要對如何處理數據產生一種 「感覺」,這種 「感覺」 主要是由情況和經驗驅動的。
後者是真正的價值促成者。如果有了軟技能,你可以成為世界上最好的開發人員或工程師,但如果你無法向受眾傳達你的建議和發現,或者使用數據來建議企業如何做決策,那麼你對公司來說就毫無用處。
在向受眾傳達建議和發現時,需要的框架包括:設置、故事、情緒和感覺(你需要在你的受眾中重現它們)、結論的動機以及結論。
在說話時候注意使用第一個人,注意修辭問題,表達儘可能的自然,最後給出總結理由和實際建議。
工具
在學習的過程中,要熟練的使用Jupyter Notebooks、latex、Wolfram Alpha等等。
LaTeX 是一種標記語言(或者,如 官方網站 所述,「用於高質量排版的文檔準備系統」) 用於創建精彩的論文和演示文稿。你在職業生涯中閱讀的幾乎所有論文都是使用 LaTeX 編寫的。
安裝後,你需要一個編輯器來編寫 LaTeX 文檔。可以使用你想要的任何編輯器,包括記事本,vim,nano,gedit 等,但建議你選擇免費和跨平臺的 Texmaker 。
另外,推薦下面這個網站,它允許用戶在線編寫公式,並且還有大量符號,你只需單擊,生成所需的代碼即可。你還可以預覽公式,以便更容易確保所有內容都正確編寫。
WolframAlpha (WA) 是一個計算知識引擎。其具有強大的數學能力,它可以成為一個非常強大的工具來幫助你進行計算。具體的功能包括基本計算、繪圖函數、求解方程、解不等式、矩陣代數、計算級數和、求導、計算積分、求極限等等。
GeoGebra (GG) 是一個功能強大的動態數學應用程式,適用於所有級別的教育,它將幾何,代數,電子表格,圖示器,統計和無窮小計算結合到一個易於使用的單一軟體。 GeoGebra 社區正以指數級增長,數百萬用戶遍布許多國家。 GeoGebra 已成為全球高等數學,科學支持,技術,工程和數學以及教學和學習創新軟體的領先提供商。
然後是正則表達式,這是一種匹配一種編寫匹配字符串的模式的方法。
好了,到這裡,這份資料講述的學習路徑差不多全部包含了,還有一個用DialogFlow 和 Flask 打造 ChatBot的主題以及讀論文必用的工具—Zotero,感興趣的讀者可以自行探索。
最後,附上完整的路徑圖,enjoy