從Python菜鳥到kaggler的旅程
要是你想成爲一個數據科學家,或者你已經是一個,並且想擴展你的工具庫。你來對地方了。本文目的就是爲Python新用戶提供一個全面的學習路徑來進行數據分析。這條路徑提供了一個全面的概述,您需要學習如何使用Python進行數據分析。如果你已經有了一些背景,或者不需要所有的組件,你可以隨意調整你自己的路徑,讓我們知道你是如何改變路徑的。
你也可以檢查這個學習路徑圖迷你版:–>在Python中學習數據科學的快速指南。
步驟0:熱身
在開始你的旅程,第一個問題的答案是:
爲什麼使用Python?
或
Python如何有用?
觀看這個傑瑞米(Founder of DataRobot at PyCon 2014, Ukraine)談話的前30分鐘,瞭解Python可以如何有用。
步驟1:設置你的機器
既然你已經下定決心,那現在是時候來設置你的機器了。最簡單的開始方法就是從Continuum.io下載Anaconda。它打包了你以後最會需要的幾乎所有的東西。採取這條路線的主要缺點是,即使在底層庫有更新的情況下,您仍需要等待Continuum更新它們的包。如果你是一個初學者,這應該無關緊要。
如果你在安裝過程中面臨任何挑戰,你可以在這裏找到各種操作系統下的詳細指導。
步驟2:學習Python語言的基礎知識
你應該從瞭解語言、庫和數據結構的基礎知識開始。由DataCamp提供的免費的交互式Python教程是一個開始你的旅程的最好的地方。這4小時編碼課程的重點是如何用Python開始數據科學的分析工作,最後你應該對語言的基本概念感到不陌生。
重點學習:Lists, Tuples, Dictionaries, List comprehensions, Dictionary comprehensions
其他資源:如果交互式編碼不是你的學習風格,你也可以看看谷歌Python課堂。這是一個2天的課程系列,也包括一些後續討論要涉及到的部分。
步驟3:學習Python中的正則表達式
您將需要大量地使用正則表達式進行數據清洗,尤其是如果你正在處理文本數據。學習正則表達式最好的方法是通過谷歌Python Regular Expressions課堂,並保持這個Regex Cheatsheet在手邊。
作業:完成嬰兒名字練習
如果你還需要更多的實踐,按照本文本清洗的教程。這將挑戰你所涉及的數據爭論的各個步驟。
步驟4:學習Python的科學計算庫–NumPy,SciPy,Matplotlib和Pandas
這就是歡樂開始的地方!這裏是關於各個Python庫的簡介。讓我們開始練習一些常用操作。
- 徹底地練習NumPy教程,特別是NumPy數組。這將形成一個良好的基礎以備學習後續內容。
- 接下來看SciPy教程。瀏覽介紹和基礎知識部分,依據你的需要完成其餘的。
- 如果你認爲Matplotlib是接下來的教程,你錯了!對於我們這裏的需要而言,他們太全面了。作爲替代,看這個IPython notebook到第68行(即到動畫部分)
- 最後,讓我們看看Pandas。Pandas爲Python提供了數據幀(DataFrame)的功能(類似R)。這也是你應該花時間練習的地方。Pandas會成爲所有中等規模的數據分析最有效的工具。從一個簡短的介紹,10 minutes to pandas,開始。然後移動到一個更詳細的Pandas教程。
- 看看DataCamp的Pandas基礎課程
你也可以看看Exploratory Data Analysis with Pandas和Data munging with Pandas
其他資源:
- 如果你需要關於Pandas和NumPy的一本書,推薦Wes McKinney的Python for Data Analysis
- 有很多教程,作爲Pandas文檔的一部分。你可以在這裏看一看。
作業:解決來自哈佛的CS109課程作業。
步驟5:有效的數據可視化
看完這個CS109講座。你可以忽略最初的2分鐘,但是接下來的內容是極好的!跟着這個講座完成作業。
看看DataCamp的Bokeh Data Visualization教程。
步驟6:學習Scikit-learn和機器學習
現在,我們來到這整個學習過程中最美味(喫肉)的部分。Scikit-learn是Python最有用的機器學習庫。這裏是一個關於該庫的簡要概述。完成哈佛CS109課程的第10到18課。您將學習機器學習概述,監督學習算法(如迴歸),決策樹,集成建模和無監督學習算法,如聚類。跟上那些講座以及作業。
其他資源:
- 如果有一本書,你必須讀,它是Programming Collective Intelligence-一本經典著作,但仍然是關於這個問題的最好的書之一。
- 另外,你也可以關注一門最好的機器學習課程Machine Learning course from Yaser Abu-Mostafa。如果你需要關於技術更清晰的解釋,你可以選擇Machine learning course from Andrew Ng和後續的Python的練習。
- Scikit-learn教程
作業:嘗試這個在Kaggle上的挑戰
步驟7:實踐、實踐和實踐
祝賀你,你做到了!
現在你擁有所有你所需要的技能。這是一個熟能生巧的問題,沒有比Kaggle更好的地方了,去跟其他數據科學家競技。去參加Kaggle當前舉辦的競賽,“顯擺”一下你所學到的!
步驟8:深入學習
既然你已經學會了大部分的機器學習技術,現在是時候進擊Deep Learning了。你已經知道什麼是深入學習,但如果你還需要一個簡短的介紹,這裏有一個很好的機會。
我是個Deep Learning的新手,所以請半信半疑地接受這些建議。最全面的資源是deeplearning.net。你會發現一切都在這裏-講座,數據集,挑戰,教程。你也可以嘗試從course from Geoff Hinton瞭解神經網絡的基礎知識。
開始使用Python:從頭開始學習Python數據科學的完整教程
注:如果您需要使用大數據庫,拿Pydoop和PyMongo一試。他們不包括在這裏作爲大數據學習路徑的一部分,它們本身就是一個完整的話題。