回覆列表
  • 1 # 西線學院

      第一步:基本 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

      如果你有程式設計經驗,但不懂 Python 或還很初級,我建議你學習下面兩個課程:

      谷歌開發者 Python 課程(強烈推薦視覺學習者學習)

      Python 科學計算入門(來自 UCSB Engineering 的 M. Scott Shell)(一個不錯的入門,大約有 60 頁)

      當然,如果你已經是一位經驗豐富的 Python 程式設計師了,這一步就可以跳過了。即便如此,我也建議你常使用 Python 文件。

      第二步:機器學習基礎技巧

      KDnuggets 的 Zachary Lipton 已經指出:現在,人們評價一個「資料科學家」已經有很多不同標準了。這實際上是機器學習領域領域的一個寫照,因為資料科學家大部分時間乾的事情都牽涉到不同程度地使用機器學習演算法。為了有效地創造和獲得來自支援向量機的洞見,非常熟悉核方法(kernel methods)是否必要呢?當然不是。就像幾乎生活中的所有事情一樣,掌握理論的深度是與實踐應用相關的。對機器學習演算法的深度瞭解超過了本文探討的範圍,它通常需要你將非常大量的時間投入到更加學術的課程中去,或者至少是你自己要進行高強度的自學訓練。

      好訊息是,對實踐來說,你並不需要獲得機器學習博士般的理論理解——就想要成為一個高效的程式設計師並不必要進行計算機科學理論的學習。

      人們對吳恩達在 Coursera 上的機器學習課程內容往往好評如潮;然而,我的建議是瀏覽前一個學生線上記錄的課堂筆記。跳過特定於 Octave(一個類似於 Matlab 的與你 Python 學習無關的語言)的筆記。一定要明白這些都不是官方筆記,但是可以從它們中把握到吳恩達課程材料中相關的內容。當然如果你有時間和興趣,你現在就可以去 Coursera 上學習吳恩達的機器學習課程。

      除了上面提到的吳恩達課程,如果你還需要需要其它的,網上還有很多各類課程供你選擇。比如我就很喜歡 Tom Mitchell,這裡是他最近演講的影片(一起的還有 Maria-Florina Balcan),非常平易近人。

      目前你不需要所有的筆記和影片。一個有效地方法是當你覺得合適時,直接去看下面特定的練習題,參考上述備註和影片恰當的部分,

      第三步:科學計算 Python 軟體包概述

      好了,我們已經掌握了 Python 程式設計並對機器學習有了一定的瞭解。而在 Python 之外,還有一些常用於執行實際機器學習的開源軟體庫。廣義上講,有很多所謂的科學 Python 庫(scientific Python libraries)可用於執行基本的機器學習任務(這方面的判斷肯定有些主觀性):

      numpy——主要對其 N 維陣列物件有用

      pandas——Python 資料分析庫,包括資料框架(dataframes)等結構

      matplotlib——一個 2D 繪相簿,可產生出版物質量的圖表

      scikit-learn——用於資料分析和資料探勘人物的機器學習演算法

      第四步:使用 Python 學習機器學習

      首先檢查一下準備情況

      Python:就緒

      機器學習基本材料:就緒

      Numpy:就緒

      Pandas:就緒

      Matplotlib:就緒

      現在是時候使用 Python 機器學習標準庫 scikit-learn 來實現機器學習演算法了。

      下面許多的教程和訓練都是使用 iPython (Jupyter) Notebook 完成的,iPython Notebook 是執行 Python 語句的互動式環境。iPython Notebook 可以很方便地在網上找到或下載到你的本地計算機。

      來自斯坦福的 iPython Notebook

      同樣也請注意,以下的教程是由一系列線上資源所組成。如果你感覺課程有什麼不合適的,可以和作者交流。我們第一個教程就是從 scikit-learn 開始的,我建議你們在繼續完成教程前可以按順序看一看以下的文章。

      下面是一篇是對 scikit-learn 簡介的文章,scikit-learn 是 Python 最常用的通用機器學習庫,其覆蓋了 K 近鄰演算法:

      Jake VanderPlas 寫的 scikit-learn 簡介

      下面的會更加深入、擴充套件的一篇簡介,包括了從著名的資料庫開始完成一個專案:

      Randal Olson 的機器學習案例筆記

      下一篇關注於在 scikit-learn 上評估不同模型的策略,包括訓練集/測試集的分割方法:

      Kevin Markham 的模型評估

      第五步:Python 上實現機器學習的基本演算法

      在有了 scikit-learn 的基本知識後,我們可以進一步探索那些更加通用和實用的演算法。我們從非常出名的 K 均值聚類(k-means clustering)演算法開始,它是一種非常簡單和高效的方法,能很好地解決非監督學習問題:

      K-均值聚類

      接下來我們可以回到分類問題,並學習曾經最流行的分類演算法:

      決策樹

      在瞭解分類問題後,我們可以繼續看看連續型數值預測:

      線性迴歸

      我們也可以利用迴歸的思想應用到分類問題中,即 logistic 迴歸:

      logistic 迴歸

      第六步:Python 上實現進階機器學習演算法

      我們已經熟悉了 scikit-learn,現在我們可以瞭解一下更高階的演算法了。首先就是支援向量機,它是一種依賴於將資料轉換對映到高維空間的非線性分類器。

      支援向量機

      隨後,我們可以透過 Kaggle Titanic 競賽檢查學習作為整合分類器的隨機森林:

      Kaggle Titanic 競賽(使用隨機森林)

      降維演算法經常用於減少在問題中所使用的變數。主成份分析法就是非監督降維演算法的一個特殊形式:

      降維演算法

      在進入第七步之前,我們可以花一點時間考慮在相對較短的時間內取得的一些進展。

      首先使用 Python 及其機器學習庫,我們不僅已經瞭解了一些最常見和知名的機器學習演算法(k 近鄰、k 均值聚類、支援向量機等),還研究了強大的整合技術(隨機森林)和一些額外的機器學習任務(降維演算法和模型驗證技術)。除了一些基本的機器學習技巧,我們已經開始尋找一些有用的工具包。

      我們會進一步學習新的必要工具。

      第七步:Python 深度學習

      神經網路包含很多層

      深度學習無處不在。深度學習建立在幾十年前的神經網路的基礎上,但是最近的進步始於幾年前,並極大地提高了深度神經網路的認知能力,引起了人們的廣泛興趣。如果你對神經網路還不熟悉,KDnuggets 有很多文章詳細介紹了最近深度學習大量的創新、成就和讚許。

      神經網路與深度學習,作者 Michael Nielsen

      我並沒有保證說這會很快或容易,但是如果你投入了時間並完成了上面的 7 個步驟,你將在理解大量機器學習演算法以及透過流行的庫(包括一些在目前深度學習研究領域最前沿的庫)在 Python 中實現演算法方面變得很擅長。

  • 2 # 葉猛獁

    大概可以分成幾個階段。

    第一個階段,是掌握Python 基礎技能。這可以按照一些教程和書籍來進行,比方說《笨方法學Pyhon》、廖雪峰的Python教程、《Python cookbook》等等。這一階段的重點是多看多寫程式碼,只有多看多寫才能儘快熟悉。在這個階段,還要熟悉一些常用的庫,例如Numpy、pandas、matplotlib等等。這些可以按照文件或者在github上找到現成的文件和程式碼來學習。

    然後進入第三個階段,把Python和機器學習結合在一起。可以自己嘗試實現一些機器學習工具,例如k-均值聚類、決策樹、線性迴歸、邏輯迴歸、支援向量機之類,要是自己實現不了也沒有關係,畢竟github上有大量的程式碼可以參考學習。

    第四個階段,在熟悉了前面的機器學習模型之後,可以開始搭建自己的環境,例如用TensorFlow或者Theano之類,完成一些深度學習的專案。

    無論如何,學習python和學習寫作是類似的,多看多寫多改多練,這些是跑不了的。

  • 3 # 人工智慧機器人小葵

    別相信那些一上來給你推薦十來本幾百頁書或者資料的人!學python,十步!一,安裝python3!二,Google查一下基本語法!三,Google一段簡單的python程式碼跑一下,修改程式碼去理解基本語法!四,自己找一專案寫程式碼,實戰出高手!五,寫程式碼!六,寫程式碼!七,寫程式碼!八,寫程式碼!九,Google python的面向物件!十,GitHub上開一個自己的專案!

  • 中秋節和大豐收的關聯?
  • 什麼是檢驗新風系統的重要指標?