fbpx

資料科學 : 以 Python 實現監督式機器學習

Contents

使用 PythonSci-Kit Learn 實現經典機器學習演算法的完整指南

課程介紹影片

從這 6 小時的課程,你會學到

  • 理解和以 Python 實現 K 最近鄰(KNN,K-Nearest Neighbors )
  • 了解 KNN 的局限性
  • 採用 KNN 解決一些二元和多類( multiclass )分類問題
  •  理解以 Python 實現 Naive Bayes 和 General Bayes 分類器
  • 了解貝葉斯分類器的局限性
  • 理解並以 Python 實現決策樹( Decision Tree )
  • 理解並以 Python 實現感知器 ( Perceptron )
  • 了解感知器( Perceptron )的局限性
  • 了解超參數( hyperparameters )以及如何應用交叉驗證( cross-validation )
  • 了解特徵提取( feature extraction )和特徵選擇( feature selection )的概念
  • 了解經典機器學習方法與深度學習之間的優缺點
  • 使用 Sci-Kit Learn
  • 實施機器學習 Web 服務

要求

  • 具備 Python、Numpy 和 Pandas 經驗
  • 機率和統計(高斯分佈)
  • 強大的編寫演算法的能力

課程說明

近年來,我們看到 AI ( Artificial Intelligence,人工智慧 )以及機器學習的復甦。

機器學習導致了一些驚人的結果,如能夠分析醫學圖像並預測與人類專家相同的疾病。

Google 的 AlphaGo 計劃能夠通過深度強化學習在戰略遊戲中擊敗世界冠軍。

機器學習甚至被用於自動駕駛汽車的編程,這將永遠改變汽車行業。 想像一下,通過消除人為錯誤的因素,可以大大減少車禍的世界。

Google 有名的宣布,他們現在是“機器學習第一”,這意味著機器學習現在將得到更多的關注,這就是未來幾年將推動創新的原因。 它嵌入到各種不同的產品中。

機器學習在很多行業都有應用,如金融、線上廣告、醫藥和機器人。

這是一個廣泛適用的工具,無論你在哪個行業,都將使你受益匪淺,而且一旦你獲得了良好的發展,它也將為你創造大量的就業機會。

機器學習也引發了一些哲學問題。我們在建造一台可以思考的機器嗎?意識到什麼意味著什麼?有一天計算機會接管世界嗎?

在這個課程中,我們首先討論K-最近鄰( KNN )演算法。它非常簡單直觀,它是一種很好的第一種學習分類演算法。在我們討論概念並在程式碼中實現它之後,我們將看看 KNN 可能會失敗的一些方法。

了解我們所看到的每種演算法的優點和缺點非常重要。

接下來我們將看看樸素貝葉斯分類器( Naive Bayes classifier )和普通貝葉斯分類器( General Bayes classifier )。這是一個非常有趣的演算法,因為它以機率為基礎。

我們將看到如何將貝葉斯分類器轉換為線性和二次( quadratic )分類器來加速我們的計算。

接下來我們來看看著名的決策樹演算法。 這是我們要學習的演算法中最複雜的一部分,你看到的大多數課程都不會實現它們。 我們會這樣做,因為我相信實踐是很好的做法。

我們最後要看的一個演算法是感知器( Perceptron )演算法。 感知器是神經網路和深度學習的祖先,因此它們對於機器學習環境中的研究非常重要。

我們已經研究了這些算法,我們將轉向更實用的機器學習主題。 超參數、交叉驗證、特徵提取、特徵選擇和多類別分類。

我們將與深度學習進行比較,以了解每種方法的優缺點。

我們將討論 Sci-Kit Learn 程式庫( library ),因為即使實現自己的演算法是有趣且富有教育意義的,你應該在實際工作中使用經過優化且經過充分測試的程式碼。

我們將通過編寫運行機器學習模型並進行預測的 Web 服務,以非常實用的現實世界的例子來解決問題。 這是真正於公司實行並從中獲利的服務。

本課程的所有材料都是免費的。 你可以在Windows、Linux 或 Mac 上使用簡單命令下載並安裝Python、Numpy 和 Scipy。

本課程著重於“如何建構和理解”,而不僅僅是“如何使用”。 讀完一些文件後,任何人都可以在 15 分鐘內學會使用 API。 這不是關於“記住事實”,而是關於通過實驗“親眼看到”。 它會教你如何視覺化模型內部發生的事情。 如果你不僅僅需要對機器學習模型進行膚淺的考察,本課程將為你提供幫助。

注意:

所有的課程中的程式碼都可以從我的github下載:

/ lazyprogrammer/ machine_learning_examples

在目錄中:supervised_class

確保你總是用“ git pull ”,如此你總是拿到最新版本!

必要條件 / 假設你已具備以下知識 :

  • 微積分
  • 機率 (連續與離散分佈機率、聯合機率、邊際機率、條件機率、PDF、PMF、CDF、貝葉斯規則)
  • Python 程式設計 : if/else, loops, lists, dicts, sets
  • Numpy, Scipy, Matplotlib

提示(通過課程):

  • 以 2x 觀看。
  • 拿手寫筆記。 這將大大增加你記住訊息的能力。
  • 寫下方程。 如果你不這樣做,我保證它看起來像亂碼。
  • 在討論板上提出許多問題。 越多越好!
  • 意識到大多數練習將需要幾天或幾週才能完成。
  • 自己編寫程式碼,不要只是坐在那裡看我寫程式。

修課順序

  • 查看講座 “ What order should I take your courses in?” (可在我的任何課程的附錄中找到,或請參考先修課

目標受眾

  • 希望將機器學習技術應用於他們的資料集的學生和專業人員
  • 希望將機器學習技術應用於現實世界問題的學生和專業人員
  • 任何想學習經典資料科學和機器學習演算法的人
  • 任何正在尋找人工智慧(AI)簡介的人

講師簡介

Lazy Programmer Inc 資料科學家和大數據工程師

我是一名資料科學家、大數據工程師和全端軟體工程師。

我有電腦工程的碩士,專長為機器學習和模式辨識。

我曾在網路廣告和數位媒體企業擔任過資料科學家和大數據工程師,圍繞所謂的資料建構各種高流量的 web 服務。我曾經使用 Hadoop / Pig / MapReduce 創建新的大數據管道,也曾建立機器學習模型來預測點擊率,使用線性迴歸、Bayesian Bandits 和協同過濾 ( collaborative filtering )建立新聞推薦系統,並使用A / B測試驗證結果。

我曾在大學部與研究所教授資料科學、統計學、機器學習、演算法、微積分、電腦圖學和物理學,任職的學校如哥倫比亞大學、紐約大學、Hunter 學院和 The New School。

有多家企業已從我的 Web 程式設計專業知識中受益。我做所有的後端(伺服器)、前端(HTML / JS / CSS)和運營/佈署工作。 我使用的技術包含:Python、Ruby / Rails、PHP、Bootstrap、jQuery(Javascript)、Backbone 和  Angular。至於儲存/資料庫,我採用 MySQL、Postgres、Redis、MongoDB等。

英文字幕:有

  • 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To

報名參加課程

Sponsored by Udemy


也許你會有興趣

不受 FB 演算法影響,歡迎透過 e-mail 訂閱網站更新

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

Powered by WordPress.com.

Up ↑

%d