【我們為什麼挑選這篇文章】我是一個毫無程式基礎的文組生,一直都對機器學習很有興趣卻不知道怎麼入門。
前幾天真的是意外在中國網站上發現這篇文章,進而開始聽 Tom Mitchell 的線上課程,結果很意外的我居然就停不下來的一直聽下去,他的英語發音清晰,表達又簡單明瞭,讓我非常喜歡!很期待慢慢發掘這篇文章中的學習資源,也很推薦給大家!(責任編輯:劉庭瑋)
分享一篇來自機器之心的文章。關於機器學習的起步,講的還是很清楚的。
Python可以說是現在最流行的機器學習語言,而且你也能在網上找到大量的資源。你現在也在考慮從Python入門機器學習嗎?本教程或許能幫你成功上手,從0到1掌握Python機器學習,至於後面再從1到100變成機器學習專家,就要看你自己的努力了。本教程原文分為兩個部分,機器之心在本文中將其進行了整合,原文可參閱:suo.im/KUWgl 和 suo.im/96wD3。本教程的作者為KDnuggets 副主編兼數據科學家 Matthew Mayo。
「開始」往往是最難的,尤其是當選擇太多的時候,一個人往往很難下定決定做出選擇。本教程的目的是幫助幾乎沒有 Python 機器學習背景的新手成長為知識淵博的實踐者,而且這個過程中僅需要使用免費的材料和資源即可。這個大綱的主要目標是帶你了解那些數量繁多的可用資源。毫無疑問,資源確實有很多,但哪些才是最好的呢?哪些是互補的呢?以怎樣的順序學習這些資源才是最合適的呢?
首先,我假設你並不是以下方面的專家:
- 機器學習
- Python
- 任何Python 的機器學習、科學計算或數據分析庫
當然,如果你對前兩個主題有一定程度的基本了解就更好了,但那並不是必要的,在早期階段多花一點點時間了解一下就行了。
基礎篇
第一步:基本 Python 技能
如果我們打算利用 Python 來執行機器學習,那麼對 Python 有一些基本的了解就是至關重要的。幸運的是,因為 Python 是一種得到了廣泛使用的通用編程語言,加上其在科學計算和機器學習領域的應用,所以找到一個初學者教程並不十分困難。你在 Python 和編程上的經驗水平對於起步而言是至關重要的。
首先,你需要安裝 Python。因為我們後面會用到科學計算和機器學習軟件包,所以我建議你安裝 Anaconda。這是一個可用於 Linux、OS X 和Windows 上的工業級的 Python 實現,完整包含了機器學習所需的軟件包,包括 numpy、scikit-learn 和matplotlib。其也包含了 iPython Notebook,這是一個用在我們許多教程中的交互式環境。我推薦安裝Python 2.7。
如果你不懂編程,我建議你從下面的免費在線書籍開始學習,然後再進入後續的材料:
- Learn Python the Hard Way,作者Zed A. Shaw:https:// learnpythonthehardway.org /book/
如果你有編程經驗,但不懂Python 或還很初級,我建議你學習下面兩個課程:
- 谷歌開發者Python課程(強烈推薦視覺學習者學習):http:// suo.im/toMzq
- Python 科學計算入門(來自UCSB Engineering的M. Scott Shell)(一個不錯的入門,大約有60頁):http:// suo.im/2cXycM
如果你要 30 分鐘上手 Python 的快速課程,看下面:
當然,如果你已經是一位經驗豐富的Python程序員了,這一步就可以跳過了。即便如此,我也建議你常使用Python文檔:https://www. python.org/doc/
第二步:機器學習基礎技巧
KDnuggets 的 Zachary Lipton 已經指出:現在,人們評價一個「數據科學家」已經有很多不同標準了。這實際上是機器學習領域領域的一個寫照,因為數據科學家大部分時間幹的事情都牽涉到不同程度地使用機器學習算法。為了有效地創造和獲得來自支持向量機的洞見,非常熟悉核方法(kernel methods)是否必要呢?當然不是。就像幾乎生活中的所有事情一樣,掌握理論的深度是與實踐應用相關的。對機器學習算法的深度了解超過了本文探討的範圍,它通常需要你將非常大量的時間投入到更加學術的課程中去,或者至少是你自己要進行高強度的自學訓練。
好消息是,對實踐來說,你並不需要獲得機器學習博士般的理論理解——就想要成為一個高效的程序員並不必要進行計算機科學理論的學習。
人們對吳恩達在 Coursera 上的機器學習課程內容往往好評如潮;然而,我的建議是瀏覽前一個學生在線記錄的課堂筆記。跳過特定於 Octave(一個類似於 Matlab 的與你 Python 學習無關的語言)的筆記。一定要明白這些都不是官方筆記,但是可以從它們中把握到吳恩達課程材料中相關的內容。當然如果你有時間和興趣,你現在就可以去 Coursera 上學習吳恩達的機器學習課程:http:// suo.im/2o1uD
- 吳恩達課程的非官方筆記:http://www. holehouse.org/mlclass/
除了上面提到的吳恩達課程,如果你還需要需要其它的,網上還有很多各類課程供你選擇。比如我就很喜歡 Tom Mitchell,這裡是他最近演講的視頻(一起的還有 Maria-Florina Balcan),非常平易近人。
- Tom Mitchell 的機器學習課程:http:// suo.im/497arw
目前你不需要所有的筆記和視頻。一個有效地方法是當你覺得合適時,直接去看下面特定的練習題,參考上述備註和視頻恰當的部分,
第三步:科學計算 Python 軟件包概述
好了,我們已經掌握了 Python 編程並對機器學習有了一定的了解。而在 Python 之外,還有一些常用於執行實際機器學習的開源軟件庫。廣義上講,有很多所謂的科學 Python 庫(scientific Python libraries)可用於執行基本的機器學習任務(這方面的判斷肯定有些主觀性):
- numpy——主要對其 N 維數組對像有用http://www. numpy.org/
- pandas——Python 數據分析庫,包括數據框架(dataframes)等結構http:// pandas.pydata.org/
- matplotlib——一個2D繪圖庫,可產生出版物質量的圖表http:// matplotlib.org/
- scikit-learn——