1. 程式人生 > >吳恩達機器學習課程:完全用Python完成,可以的!(附程式碼)

吳恩達機器學習課程:完全用Python完成,可以的!(附程式碼)

640?wx_fmt=gif

640?wx_fmt=png

  新智元報道 

來源:Reddit、GitHub

編輯:肖琴

【導讀】完全用Python完成吳恩達的機器學習課程是怎樣一種體驗?本文作者表示:完全可以!而且你不需要成為Python專家,只需要有良好的數學基礎。

“吳恩達的Coursera機器學習課程可以完全用Python完成!”

昨天,Reddit論壇的機器學習看板出現這樣一條熱帖。

可以說,吳恩達(Andrew Ng)的機器學習課程是很多人、尤其是中國學生進入機器學習世界的引路人,被認為是入門機器學習的最好課程。截至目前,有超過80000人在Coursera上完成了這門課的學習。

640?wx_fmt=png

吳恩達Machine Learning課的評分

不過,這門課推薦使用Matlab/Octave來完成作業,對於不會Matlab/Octave,或者對Matlab/Octave不感興趣的人來說,要完成作業獲取證書可能難度加大。雖然吳恩達強烈推薦大家使用 Octave 來學習機器學習,並且用了完整的一個章節“Octave and Matlab Tutorial”來講述 Octave 的基本操作。

那麼,全部用Python完成是怎麼回事?

Reddit使用者rsdsdsr的帖子如下:

一句話總結:吳恩達的Coursera ML課程可以用Python完成,而且你不必是Python專家就可以做到。但你需要有很好的數學基礎,這將是非常耗時的,而且用Python寫作業不會得到證書。”

我最近在Coursera上完成了吳恩達的ML課程,但我沒有使用推薦的Matlab/Octave,而是完全用Python來完成。你可以在這裡檢視我作業的Jupyter notebooks:

https://github.com/seddonr/Ng_ML

我絕不是第一個這樣做的人,但我認為應該發這個帖子,作為給那些正在考慮參加這門課程,但像我一樣對學習Matlab/Octave不感興趣的人的鼓勵,也可以瞭解用Python學這門課的好處和缺點。

用Python完成這門課程非常耗時,因為這意味著我必須從頭開始構建所有東西,而如果你用Matlab/Octave完成課程,則會得到大量預編寫的程式碼。另一方面,這是一次很棒的學習經歷,我學到了大量的Python技能。

你不必成為Python專家——在完成這門課程之前,我的Python經驗僅限於“使用Python自動化枯燥的東西”,以及學過一些關於NumPy和Matplotlib基礎知識的非常簡短的教程。但是,你需要有良好的數學基礎才能跟上課程——有很多矩陣代數和微積分。

另一個問題是,由於這門課程是為Matlab/Octave設計的,因此無法提交用Python完成的作業,所以你無法對你的作業進行評分或獲得證書。證書對我來說並不重要,但如果對你很重要,那麼Matlab/Octave可能是更好的選擇。

總的來說,我覺得這門課程很有趣,也很享受,我覺得它很好地覆蓋了ML的許多主題。 Andrew Ng能以一種愉快的語調把知識點講得很清楚,他的課也很容易學。如果你決定嘗試用Python完成這門課程,祝你好運,我希望這個帖子是令人鼓舞的!

Python作業程式碼

rsdsdsr公開了他的作業程式碼:

https://github.com/seddonr/Ng_ML

內容:

Ex1:線性迴歸

有一個變數和多個變數。

Ex2:邏輯迴歸

包括正則化。

Ex3: Multi-class 分類和神經網路

使用兩種不同的方法識別手寫數字:one-vs-all邏輯迴歸,以及前向傳播預訓練的神經網路。

Ex4:神經網路學習

構建和訓練神經網路,包括反向傳播,並將其用於手寫數字識別。

Ex5:正則化線性迴歸和偏差與方差

包括學習曲線和多項式迴歸。

Ex6:支援向量機

6.1:在一些樣本2D資料集上展示scikit-learn SVM,其中包含線性和高斯核函式。

6.2:使用自然語言處理和scikit-learn SVM構建電子郵件垃圾郵件分類器。

Ex7:K-means聚類和主成分分析

7.1:構建k-means聚類演算法並將其用於影象壓縮。 

7.2:構建PCA演算法並將其用於影象壓縮和視覺化。

Ex8:異常檢測和推薦系統

8.1:使用多元高斯模型進行異常檢測。 Precision, recall, F1 score.
8.2:構建推薦系統並用它來推薦電影。

最佳入門教程

吳恩達在Coursera上開設的Machine Learning課程,經過數年的改進和傳播,目前已有許多中文學習資料。吳恩達本人對這門課也很有感情,他曾表示自己保留斯坦福教職,很大程度上是因為想教這門課。

這門課也是技巧和實踐並重,“你不僅可以學習到學習的理論基礎,還可以獲得所需的實用知識,快速有效地將這些技術應用於新的問題”。課程中還將介紹了矽谷在機器學習和人工智慧方面創新的一些最佳實踐。本課程還將從大量的案例研究和應用中吸取教訓,以便學習如何將學習演算法應用於構建智慧機器人(感知,控制),文字理解(網路搜尋,反垃圾郵件),計算機視覺,醫學資訊學,音訊,資料庫挖掘等領域。

主題包括:

1、監督學習:引數/非引數演算法,支援向量機,Kernels,神經網路

2、無監督學習:聚類,降維,推薦系統,深度學習

3、機器學習的最佳實踐:偏差/方差理論;機器學習和人工智慧的創新過程

最後,該課最新一期從10月15日開始,持續約11周,2019年1月7日結束。

640?wx_fmt=png

課程地址:

https://www.coursera.org/learn/machine-learning

640?wx_fmt=gif

640?wx_fmt=jpeg


點選下方“閱讀原文”瞭解【人工智慧伺服器】↓↓↓