Python下開始數據科學研究的全面指南
從一個Python新手到Python大數據競賽選手的征程
如果你想成為一名數據科學家,或者也許你已經是一名數據科學家而且想擴充你的工具庫。那麼你就來到了正確的地方。這篇文章的目的就是給那些用python進行數據分析的新人提供一種深度學習路徑。我們會在這篇文章中提供利用Python進行數據分析步驟的全面概述。如果你對這方面已經有所了解,或者你對這裡面的內容一無所知,都沒問題,你可以隨便適應你自己的學習路徑,然後告訴我們你是怎麼在學習路徑中做出這些變化的。
你也可以查看這種學習路徑的mini版本->信息圖:學習Python中的數據科學的快速指南。
第0步:熱身
在開始這段征程之前,第一個要回答的問題就是:為什麼用Python?或者說Python會怎樣有用?
觀看DataRobot創始人Jeremy2014年在烏克蘭Python大會上第一段30分鐘演講,然後你就能知道Python會有怎麼樣的用處了。
第一步:裝配你的機器
既然你已經下定決心了,那是時間來裝配你的機器了。最容易進行的辦法只要http://Continuum.io 上下載Anacinda就可以了。下載的Anacinda裡面會包含有大部分你需要的東西。選擇這種途徑的主要缺點就是你將會需要等待Continuum來更新它們的安裝包,即使有個更新版本可用於基礎庫的時候也要這樣。如果你是一個初學者,那你就不用關心這些了。
在安裝過程中如果有任何問題,可以在這裡找到針對不同OS詳細的安裝指南。
第二步:學習Python語言的基礎知識
你應該從了解語言,庫以及數據結構的基礎知識開始學習。Codecademy上的python教程是開始你的學習歷程最後的地方之一。到這門課程結束的時候,你應該能夠寫一些小腳本,也應該能理解類和對象的概念。
特別地學習:列表,元組,字典,列表推導,字典推導
作業:解決HackerRank上的python教程問題。
可選擇的資源:如果互動式編碼不是你的編程風格,你也可以參考Google Class上的Python課程。它是一個兩天的系列課程,而且覆蓋了一些我們今後會討論的部分內容。
第三步:學習Python中的正則表達式
在數據清理階段你將會用到這些知識。,特別當你處理文本數據的時候。最好的學習正則表達式的方法是參加Google class課程,並且隨手做好筆記。
作業:完成Baby names練習。
如果你仍然需要更多的練習,查看這份教程的文本清理相關內容。你將會挑戰涉及到數據雜訊的不同步驟。
第四步:學習Python中的庫-NumPy,SciPy, Matplotlib and Pandas
從這裡開始就好玩了。這是一份對不同庫的簡單介紹。讓我們開始練習一些常規操作吧。
- 徹底地練習NumPy庫教程,特別是其中的數組,這將會為接下來的學習打下很好的基礎。
- 接下來,查看SciPy庫教程。了解它的說明和基本知識以及基於你的需要完成剩下的內容。
- 如果你認為接下來就是Matplotlib教程練習的話,那麼你就錯了。對於我們需求而言,這份教程太深奧了。相反,我們要查看ipython筆記本直到第68行(例如:知道animation)。
- 最後,讓我們看一下Pandas庫。Pandas庫給Python賦予了數據框功能。這裡也應該是你花時間好好練習的地方。Pandas將會成為中規模數據分析的最有效工具。從一個10分鐘簡短的介紹開始,來了解Pandas。然後繼續學習關於Pandas的詳細教程。
你也可以參考利用Pandas探索數據分析和利用數據分析進行數據再加工
其他資源:
如果你需要一本有關Pandas和NumPy庫的書, Wes McKinney的「Python for Data Analysis」會適合你的。有很多教程可以作為Pandas記錄文件的部分。你可以在這裡查看它們。
作業:完成Harvard的CS109課程作業。
第五步:有效的數據可視化
學習CS109課程的講座。你可以忽視剛開始的2分鐘,但是隨後的部分非常好,聽完講座以後,完成這份作業。
第六步:學習Scikit-learn和機器學習
現在,我們來到了整個課程的乾貨部分。Scikit-learn是在python機器學習中最有用的庫。這裡是關於這個庫的簡要介紹。學習HavardCS109課程的第10講到第18講。你將會了解機器學習,類似於回歸、決策樹、集成建模等監督學習演算法以及類似於聚類的非監督學習演算法的一個大概。完成這些學習內容後練習這些單個講座中的作業。
其他資源:
- 如果有一本書你必須讀的話, 那就是《Programming Collective Intelligence》-一本非常經典但仍然是這領域內最好的書之一。
- 另外,你也可以查看Yaser Abu-Mostafa的機器學習課程,它是有關機器學習最好的課程之一。如果你需要關於這些技巧更簡單明了的解釋,你可以選擇Andrew Ng的機器學習課程,然後完成關於Python的練習。
- Scikit-learn教程
作業:在Kaggle上嘗試這種挑戰。
第七步:練習,練習和練習
恭喜你,你做到了!
現在在技術技能方面你已經掌握了你需要的。剩下的就是練習,而且要找一個比與眾多數據科學家競爭的Kaggle更好的地方。去吧,深入目前在Kaggle平台上運行的其中一個競賽去大展拳腳。
第八步:深度學習
既然你已經學會大多數機器學習技術,那就嘗試一下深度學習吧。有很大可能你已經知道什麼深度學習,但如果你仍然需要一份簡要的介紹話,點擊這裡。
我自己本身是一個深度學習新手,所以請有所保留的採納這些建議。最綜合廣泛的資源時deeplearning.net. 在那你能找到任何東西—講座,數據集,挑戰難題,教程。為了了解了解神經網路相關基礎,你也可以嘗試Geoff Hinton的課程。
從Python開始吧,《A Complete Tutorial To Learn Data Science with Python From Scratch》。
後記:以防你需要利用大資料庫,試一下Pydoop和PyMongo。他們並非包含在本文中,因為大數據學習路徑本身就是一個完整的話題。
本文由數據分析網 – 江偉翻譯!歡迎加入翻譯組。
江偉:在讀研究生,擅長英語和數學。
首發於:
Python下開始數據科學研究的全面指南
推薦閱讀: