網絡上有不少Python學習資源和機器學習學習資源,對於一個新手而言,如何開始呢?本篇文章將教你七步學會使用Python進行機器學習。 算法
萬事開頭難。面對紛繁萬千的網絡學習資源,不知如何下手,而每每第一步就開始眼花繚亂,不知所措。下面咱們將從一個新手的角度來指引你如何更好地選擇免費的網絡資源學習,以及採用何種學習順序來掌握它。 編程
首先我假設,你在如下幾個方面都是初學者: 數組
——機器學習 網絡
——Python 框架
——任何Python的機器學習庫/科學計算庫/數據分析庫 dom
若是你瞭解前面兩個方面多是頗有幫助的,不過若是你對它們都一無所知的話,下面的前幾個步驟是能夠幫到你的。 機器學習
1 Python基礎 工具
若是咱們想要使用Python進行機器學習的話,掌握Python的基礎知識是必不可少的。幸運的是,做爲一個通用的流傳度較廣的語言,Python的教程是很容易找到的,你只是須要尋找一個比較好的學習起點。 學習
首先,你須要安裝Python。由於咱們須要使用科學計算庫和機器學習庫,因此我建議你安裝Anaconda,它是一個實現Python的強大的工業產品,適用於Linux/OSX/Windows,徹底包含機器學習庫/科學計算庫,包括numpy/scikit-learn/matplotlib,同時它也包括iPython Notebook(一個Python教程的交互界面)。同時我建議使用Python2.7版本,由於這是一個當下用戶安裝的主流版本。 測試
若是你沒有任何編程基礎知識,建議你從如下書籍學起,它們都是能夠從互聯網上免費下載的:
▪ Python The Hard Way by Zed A. Shaw
若是你具備必定的編程基礎,只是對Python不熟悉,那麼你能夠採起如下的教程:
▪ Google Developers Python Course (highly recommended for visual learners)
▪ An Introduction to Python for Scientific Computing (from UCSB Engineering)by M. Scott Shell (a great scientific Python intro ~60 pages)
▪ Learn X in Y Minutes (X = Python)
若是你十分熟悉Python的話,你徹底能夠跳過第一步,固然我建議你仍是 多閱讀Python Documentation.
2 機器學習基礎
數據科學家一般有不少種定義,許多人學習機器學習算法去分類。首先,頗有必須去學習一下Kernel methods,難道是爲了更加深入地理解如何構建一個support vector model嗎?固然不是,就像生活中的大部分事務同樣,每個深厚的理論必定對應着實際的應用。
若是你時間較充足的話,須要去學習一下斯坦福大學的 Andrew Ng's Machine Learning course以及這個課程的非官方筆記(一些學生總結的)。你不須要掌握課程視頻中每一個細節,你只須要學會如何去運用便可。好比當你遇到一個迴歸分析的問題時候,你能夠回過頭來看Ng的迴歸分析那一部分的講解。
3 Python科學計算庫
當咱們進行機器學習時,一些Python的科學計算庫是常常須要用到的,以下所列:
▪ numpy - 處理N維數組時頗有用
▪ pandas - 數據分析庫
▪ matplotlib - 高質量作圖
▪ scikit-learn - 機器學習算法庫
一個好的學習以上知識的資源是:
▪ Scipy Lecture Notes by Gaël Varoquaux, Emmanuelle Gouillart, and Olav Vahtras
以及
▪ 10 Minutes to Pandas
從以上教程中,你將會學習到那些科學計算庫的使用。
4 開始動手使用Python進行機器學習
咱們首先從scikit-learn庫開始學習機器學習算法。
如下一些教程或練習都是能夠在iPython Notebook中練習,它是一個交互式的能夠編譯運行Python的環境。
下面將提供一些免費的scikit-learn學習資源:
一個對scikit-learn的簡單介紹,包括大部分機器學習算法:
▪ An Introduction to scikit-learn by Jake VanderPlas
一個更加深刻一點的介紹,包括從頭至尾用一個著名的數據集來作一個項目:
▪ Example Machine Learning Notebook by Randal Olson
聚焦在評估scikit-learn中不一樣模型,包括訓練和測試數據集:
▪ Model Evaluation by Kevin Markham
5 有關Python的機器學習話題
當咱們有了scikit-learn的初步基礎之後,咱們能夠更加深刻地去探索一些經常使用的算法。咱們從K-means集羣算法開始,它是一個簡單有效的算法來解決無監督問題:
▪ k-means Clustering by Jake VanderPlas
而後咱們回到分類問題上,探討一個著名的決策樹分類算法:
▪ Decision Trees via The Grimm Scientist
從分類咱們能夠看出連續的數值預測:
▪ Linear Regression by Jake VanderPlas
咱們能夠進行分類問題的探索,例如邏輯迴歸:
▪ Logistic Regression by Kevin Markham
6 高級的與Python有關的機器學習話題
首先咱們須要學習SVM,它是一個線性/非線性分類器,依賴於將數據進行復雜的變換使得維度更高。
▪ Support Vector Machines by Jake VanderPlas
而後學習另外一個分類器:隨機森林
▪ Kaggle Titanic Competition (with Random Forests) by Donne Martin
降維一般也是一個處理問題的常見方法,能夠學習一下主成份分析(PCA),用於無監督的下降維度:
▪ Dimensionality Reduction by Jake VanderPlas
在進行最後一步以前,咱們來回顧一下咱們學習了哪些內容:
經過使用Python以及它的機器學習庫,咱們學到了著名的機器學習算法(K-最鄰近算法,K-means集羣分類算法,SVM),研究了隨機森林,學習瞭如何對數據下降維度,伴隨着理論學習的同時,咱們也掌握了一些實用的工具。
7 用Python進行深度學習
深度學習無處不在!深度學習創建在神經網絡之上,它的研究已經有不少年了,可是最近幾年特別火,若是你對深度學習不瞭解,能夠看一些 KDnuggets 的文章。
最後一步主要是提供一些深度學習的資料給那些對深度學習感興趣的同窗。
▪ Neural Networks and Deep Learning by Michael Nielsen
Theano包是第一個Python的用於深度學習的庫。下面這個教程是很是適合學習Theano的:
▪ Theano Deep Learning Tutorial by Colin Raffel
Caffe是一個深度學習框架,以表達形式/速度出名。如下教程是一個很是有意思的Caffe教程:
▪ Dreaming Deep with Caffe via Google's GitHub
總結:我不能保證快和容易,可是若是你花時間進行以上七步,你沒有理由不會掌握機器學習理論以及如何使用Python進行機器學習。
出自:Matthew Mayo