前段時間微軟的年齡識別網站風靡全球,它的核心算法就是機器學習領域的內容。機器學習看起來高深莫測,學習曲線比較陡,實際上優秀的入門資料不但可以降低學習門檻,還可以激發學習樂趣。
機器學習算法
Coursera 上面 Stanford 的 機器學習 課程是優質的算法相關入門課程。Andrew Ng 是 Coursera 的創始人,也是 Stanford 的老師。這個課程最大的特點是對機器學習算法的推導和介紹,從數學層面去推導一些經典的機器學習算法。如果你微積分,矩陣運算,概率論等大學數學都還給老師了也沒關系。課程中會介紹用到的最基礎的數學知識,包括微積分,矩陣運算,概率論等。真正做到了深入淺出以及零基礎。
算法是理解機器學習原理的非常基礎的知識,在實踐中我們可能根本不用去推導或實現這些算法,但不代表我們不需要理解這些算法。理解這些算法對我們選擇機器學習的模型以及對數據進行分析都有非常有益的。
編程語言
適合機器學習的編程語言不少,這里推薦使用 Python。Python 是免費開源的語言,并且有非常豐富的庫,而且學習 Python 語言的門檻比較低,是全民編程運動的推薦語言。這篇文章羅列了目前主流的機器學習語言以及各自的優劣。
學習 Python 除了官方的教程之外,推薦一本書 Dive Into Python 有中文版,也有英文版。中文版翻譯質量也很高。當然,Learn Python The Hard Way 也不錯。不過建議選擇一本照著練習,一個月掌握這個語言的基礎特性問題不大。
Python 機器學習工具箱
Python 用來實現科學計算的軟件包是 scipy, numpy, matplotlib,其中 numpy 提供高性能的數值去處;scipy 實現機器學習的算法;matplotlib 提供數據可視化。
這三個庫都挺大的,內容也比較多。這里重點推薦一個非常優質地適合入門的網站:Python Scientific Lecture Notes。一個網站把機器學習想著的 Python 工具全部搞定,并且內容易懂,很適合初學者。
機器學習入門書籍
《機器學習系統設計》是圖靈社區翻譯引進的機器學習入門書籍。書中使用 Python 作為機器學習算法的編程語言,從易到難,從實際問題出發,去探索怎么樣用機器學習算法去解決實際問題。當然,如果需要自己實現書中的案例,需要掌握 Python 語言以及 Python 機器學習工具箱的幾個庫的用法。
這本書的最大特點是:
- 簡單易懂,從易到難
- 內容比較精簡
- 讓你跳出機器學習的算法,真正從工程角度去理解機器學習,包括數據清洗,模型篩選,模型驗證等
總結
建議 Coursera 上的算法課程和《機器學習系統設計》結合起來,并行來看,這樣即了解了工程應用的方法,又理解了背后的算法原理。這里介紹了不少英文資料,學習機器學習的過程中還學了英文,一舉兩得。再花個幾十美刀從 Coursera 上弄個課程證書( Coursera 上課程都是免費學的,但如果要證書則需要交幾十美刀不等),瞬間高大上有沒有,喝洋墨水有沒有。去美帝讀書也不就是這樣的體驗嘛。