吳恩達機器學習——第14章 無監督學習

概述

KMeans算法屬於無監督學習算法,是一個聚類算法,以樣本間的距離作爲評估的標準,把相近的樣本劃分到同一個集合中。
在這裏插入圖片描述

名詞解釋

聚類
聚類是把類似的樣本分成一個個的集合的過程。

分類
分類是把樣本歸屬到某個類別。


簇是相似樣本組成的集合。

質❤️
簇的中心,吳恩達老師稱之爲“聚類中心”。

基本原理

KMeans算法的計算過程:

  • 1、隨機找到K個點作爲質❤️。
  • 2、根據樣本距離質❤️的距離,對所有樣本進行劃分,組成以質心爲核心的K個簇。
  • 3、重新計算各個簇的平均位置,作爲新的質心。
  • 4、根據新計算出的質心,重新對各個樣本進行劃分。
  • 5、重複2、3、4直到達到終止條件爲止。

終止的條件有:

  • 新計算的質心與上一個一樣。
  • 新計算的質心與上一個質心的距離達到閾值。
  • 達到了約定的迭代次數。

目標優化函數

J(c(1),c(2),......c(m),μ1,μ2,......,μk)=1mi=1mx(i)μc(i)2J(c^{(1)},c^{(2)},......c^{(m)},\mu_1,\mu_2,......,\mu_k)=\frac{1}{m}\sum_{i=1}^m||x^{(i)}-\mu_{c^{(i)}}||^2

各個參數的含義是:

  • c(1):c^{(1)}: 代表樣本1所屬的分類的下標。
  • μ1\mu_1:代表第一個分類,數字1就是分類的下標。下標的取值範圍是1-k。
  • μc(i)\mu_{c^{(i)}}: c(i)c^{(i)} 代表樣本1所屬的分類的下標,則 μc(i)\mu_{c^{(i)}} 代表第i個樣本的分類。

所以目標優化函數的含義就變成了求樣本與質心距離平方和最小情況下的各個樣本所屬的分類。

k的選擇

肘部法則

通過觀察k的取值與J的關係,找到變化的拐點,取拐點的k作爲質心的數量。
在這裏插入圖片描述
如左圖所示,當k在3之後,j隨k的變化將非常不明顯,這種情況下取k=3比較合適;但是右圖所示,曲線非常平滑,不能找到一個合適的拐點,這種情況下,肘部法則就失效了。

另外的選擇

另外的選擇就是根據經驗進行選擇,根據業務的實際需要進行選擇,選擇對業務支撐好的k值。

質心的選擇

一般選擇k個隨機樣本作爲質心。

爲了防止局部最優化的產生,採用多次隨機初始化的方式,然後比較各次選擇的目標優化結果,選擇最好的作爲最終的選擇。一般情況下,當k《=10時,隨機選擇的效果還是不錯的,但是當k非常大的情況下,效果就沒有那麼理想了。

優點

簡單容易掌握。

缺點

  • 算法的初始質心的選擇對於運行的效率,影響很大。
  • K取幾?K取值沒有參考值,只能憑經驗或實驗結果。
  • 離羣點對結果影響很大。
  • 有可能會造成局部最優的問題:質心比較集中,造成只對部分樣本進行了聚類。

適用場景

樣本球型形狀分佈,結果聚類是密集的,且不同樣本簇間距較大。

示例

二分類KMeans算法

爲了解決KMeans算法的局部優化問題,提出了二分類KMeans算法。
二分類KMeans算法的步驟是:

  • 1 首先把所有的樣本作爲一個簇,然後一分爲二。
  • 2 選擇能最大降低“誤差平方和”的簇,拆分爲兩個簇。
  • 3 重複執行步驟2,直到簇的數量達到設置的閾值爲準。

誤差平方和是衡量樣本聚合情況的標準,值越小代表聚合的效果越好。這樣劃分出來的簇,聚合效果相對較好。

參考

Kmeans算法
二分類Kmeans算法
聚類和分類的區別

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章