【知識學習】Python機器學習:推薦一門理論實戰結合的網課

之前的文章《如何零基礎入門數據分析》里提到過,不同群體學習機器學習的目的是有不同的,因此學習方法也不一樣。數據分析師而言,對機器學習的應用大體分為兩類:1) 能調包就行;2) 不僅能調包,還需要比較深入的理解其中的原理。對於第一類,需要了解各類演算法的優劣勢和使用場景,並直接應用,datacamp是個很好的應用學習平台(戳這裡!了解Datacamp)。而對於第二類學習,則要花費一定的時間和精力了,需要一定的數理基礎和代碼功底。

如果你既希望能夠理解如何使用經典的機器學習模型,又希望能夠一定程度上理解其中的原理,甚至手動編寫模型;並且你還希望用Python來學習這些,本文強烈推薦華盛頓大學的機器學習系列課

Machine Learning | Coursera?

www.coursera.org圖標

學習這門課之前你需要

  • 有熟練的Python編程技巧:基本編程思維和能力,熟練使用numpy、pandas庫;最好在學習之前已經有sklearn的使用經驗
  • 了解微積分、線性代數、統計學與概率論
  • 可以接受英文授課(有字幕)

學過這門課之後你能夠

  • 了解基本的回歸模型:線性回歸、LASSO和嶺回歸等
  • 了解基本的分類器:LR+正則化、樹分類(集成分類器)
  • 了解一些非監督學習方法:相似性、聚類等
  • 了解機器學習在房價預測、文本聚類和圖像等相關領域的應用

這門機器學習課是系列課程,總共包括4門:案例研究、回歸、分類和非監督。其中第一門為案例分析,介紹機器學習方法的應用場景;二三四門都是具體講一類機器學習方法,教學方法相似:首先從理論上理解機器學習演算法,然後進入實際應用部分,學完每章節後可以理解該演算法,大部分可以用python自己編寫

以具體的一章節:回歸課程中的多元回歸為例來講講這門課的授課形式,其餘章節的形式基本相同。

1)介紹模型的應用場景和模型的基本表達形式

線性回歸模型基本表達形式

2)定義模型的損失函數形式

損失函數

3)詳細解讀,如何用梯度下降求解損失函數,很多章節都會配合小型的計算實例有助於理解

梯度下降求解法

4)基礎知識學完之後,會有一個quiz,考察對內容的掌握。問題是比較基礎的,一般是對概念理解,或者小規模的手動計算

quiz中題目示例

5)然後,到了最激動人心的,編程應用部分。我認為這部分是這門課設計的最好的地方!

本章節有兩個編程任務

課程提供的jupyter notebook會引導著給出本章節使用數據的基本描述,接著需要按照notebook的提示完成任務。一些code chunk的輸出也是測試題的答案。

課程提供的Jupyter Notebook

最終任務一般為自己定義一個演算法。本章節中,最終的目標是根據輸入的特徵矩陣,計算並返回各項係數,也就是說建立一個完整的線性回歸模型。手寫模型的最大意義不是希望它能夠投入使用,而是能夠幫助你查漏補缺,檢驗自己是否真的理解模型的原理。寫的過程中,也能發現許多新的東西。

線性回歸模型

以上大概是一章節的流程,通過學習,我們大致了解了:線性回歸模型的基本原理,如何最優化求解,並利用Python手動完成一個線性回歸模型。後面的章節也基本都是按照這個流程來進行的。

課程涵蓋的知識有限,但更重要的是,本課程提供了一個極其合理的機器學習實戰學習路徑。在自學其他模型的過程中,這種方法也是很值得推薦的。

包括我在內的很多自學愛好者,學習機器學習都是從Andrew Ng的課程開始的。但是同樣在Coursera平台里,我對這門課程的推薦程度是要高於Ng的課程的。主要原因:

  1. 本課程使用Python
  2. Ng的課包括線性模型、LR、神經網路、SVM和k-means,涵蓋內容比較窄;本課程則分為了四門,因此涉及的內容更多更廣,而選擇講解的模型,比如決策樹,相對於神經網路,也更適合初學者
  3. Ng的課程在後面的章節里包含了機器學習體系設計和大規模學習的內容,講了很多工程的問題;本課程則更重視基礎學習,是更適合新手的

當然如果時間允許,我會推薦先上這一門,然後再看Ng的課程。

順便還要提一些學習時需要注意的問題:

  1. 授課者自己開發了機器學習庫,因此授課時推薦使用他們自己的庫。這裡還是更推薦使用pandas和sklearn完成編程任務的,以後的應用範圍更廣。
  2. 這門課上到後期,比如非監督這部分,還是很有難度的。如果寫代碼有困難,這裡推薦一個使用pandas和sklearn完成這門課程的開源項目,可以參考下上面的代碼,但是!一定優先自己做!!!

完成了這系列的全部課程,覺得還是很有收穫的!當然任何一門課程的篇幅都是有限的,不可能覆蓋所有主流的應用。學習這門課之後,可以按照本課的思路學習其他機器學習模型。

另外,完成本課後,有興趣可以進一步學習coursera的深度學習系列課程,也是python授課,很值得推薦。鑒於網上關於該深度學習課的資料和討論很多,這裡不進一步分析了。


推薦閱讀:

TAG:Python | 計算機科學 | 科技 |