fbpx

Python 實踐叢集分析和非監督式機器學習

用於模式識別( pattern recognition ),資料探勘( data mining ), k-means 叢集和分層( hierarchical )叢集以及 KDE 的資料科學技術。

課程介紹:English 简中

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

  • 了解常規的 K-Means 演算法
  • 理解並列舉 K-Means 叢集的缺點
  • 理解 soft 或 fuzzy K-Means叢集演算法
  • 以程式碼實現 Soft K-Means 叢集
  • 理解分層( hierarchical )叢集
  • 演算法的方式解釋分層凝聚叢集( Hierarchical Agglomerative Clustering )如何工作
  • 將 Scipy 的分層群集程式庫( Hierarchical Clustering library )應用於資料
  • 了解如何閱讀樹狀圖( dendrogram )
  • 了解群集中使用的不同距離指標
  • 了解單一鏈接、完整鏈接、Ward 鏈接和 UPGMA 之間的區別
  • 理解高斯( Gaussian )混合模型以及如何將其用於密度估計
  • 用 Python 程式碼編寫 GMM
  • 解釋 GMM 何時等同於 K-Means 叢集
  • 解釋期望最大化演算法
  • 了解 GMM 如何克服 K-Means 的一些缺點
  • 了解奇異共變異數( Singular Covariance )問題以及如何解決它

要求

  • 知道如何用 Python 和 Numpy 編寫程式碼
  • 安裝 Numpy 和 Scipy

課程說明

叢集分析是非監督式機器學習資料科學的主要內容。

它對資料探勘和大數據非常有用,因為它可以自動找出資料中的模式,而不需要標籤,與監督機器學習不同。

在真實世界裡,你可想像機器人或人工智慧不一定總能獲得最佳答案,或者可能也沒有最佳的正確解答。你希望機器人能夠靠自己探索世界,在找尋模式中學習。

你有沒有想過我們如何獲得在監督式機器學習演算法中使用的資料?

我們似乎總是有一個漂亮的 CSV 或表格,完整的 X 和對應的 Y.

如果你自己沒有參與獲取資料,你可能沒有想過這個,但總需要有人來製作這些數據!

那些 “Y” 必須來自某個地方,並且很多時候涉及體力勞動。

有時,你無法訪問此類資訊,或者獲取這些資訊根本不可行或成本高昂。

如果你仍想了解資料的結構。如果你正在進行資料分析,那麼能在資料中自動進行模式識別將是非常寶貴的。

這是無監督機器學習發揮作用的地方。

在這門課程開始我們先討論群集。替代用標籤( labels )來做訓練,我們嘗試自己建立標籤! 把看起來相似的數據群組在一起來做到這一點。

我們將討論兩種群組的方法:k-means 群集和分層群集。

其次,因為在機器學習,我們喜歡談論機率分佈,我們將進入高斯混合模型( Gaussian mixture models ) 和核心密度估計( kernel density estimation ),在這裡我們談談如何“學習”一組資料的機率分佈。

一個有趣的事實是,在一定條件下,高斯混合模型和 K-means叢集是完全一樣的!我們會證明這是什麼狀況。

所有我們將在這個課程中談到的演算法是機器學習和資料科學的主要知識,所以如果你想知道如何運用資料探勘和模式提取自動找出你的資料模式,而不需有人投入工作手動標記資料,那麼本課程很適合你。

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

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

注意:

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

/lazyprogrammer/machine_learning_examples

在目錄中:unsupervised_class

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

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

  • 微積分
  • 線性代數
  • 機率
  • Python 程式設計 : if/else, loops, lists, dicts, sets
  • Numpy 程式設計:矩陣和矢量操作,載入一個 CSV 檔

提示(通過課程):

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

修課順序

  • 查看講座 “ What order should I take your courses in?” (可在我的任何課程的附錄中找到,包括免費的 Numpy 課程)

目標受眾

  • 對機器學習和資料科學感興趣的學生和專業人士
  • 想要了解無監督機器學習和群集分析的人
  • 想要知道如何編寫自己的群集程式碼的人
  • 對資料探勘大數據集感興趣,想了解各種自動化模式的專業人員

講師簡介

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

也許你會有興趣

 學習資訊不漏接-歡迎使用 App 訂閱發文通知 

發表迴響

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

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: