吳恩達機器學習筆記(11)——無監督學習與K-Means算法

一、無監督學習

無監督學習與監督式學習相反,數據並不帶有任何標籤。算法要找到隱含在數據中的結構。比如將數據分爲簇狀的,就被稱爲聚類算法(clustering),這是一個典型的無監督學習算法。

聚類算法可以用於:

  • 市場劃分
  • 社會關係網絡分析
  • 計算機集羣聚類
  • 天文數據聚類



二、K-Means算法

在聚類問題中,我們會給定一組未加標籤的數據集,同時希望有一個算法能夠自動的將這些數據分成有密切關係的子集或者是簇,K-means算法是現在最熱門的聚類算法。

1、算法步驟:

  1. 隨機設置兩個初始點,稱作聚類中心(cluster centroids)。
  2. 簇分配:遍歷每個樣本,根據距離將每個數據點分配給兩個聚類中心之一。簇分配:遍歷每個樣本,根據距離將每個數據點分配給兩個聚類中心之一。
  3. 移動聚類中心:將該聚類中心移動到同簇點的均值處。移動聚類中心:將該聚類中心移動到同簇點的均值處。
  4. 迭代:重複2和3直到實現聚類。迭代:重複2和3直到實現聚類。

算法的輸入:

  • 參數K(聚類的簇的數量)
  • 無標籤的數據集(x1,x2,x3…xm)

2、優化目標

首先設定幾個參數:
在這裏插入圖片描述
所以K均值算法的優化目標爲:
在這裏插入圖片描述
也就是說,對於每一個樣本,我們要找到其所屬的數據簇c,以及聚類中心μ的座標,以此實現最小化所有訓練樣本到對應聚類中心的平均距離之和.

PS:此代價函數有時也叫畸變函數(distortion cost function)
在這裏插入圖片描述

3、隨機初始化

雖然有幾種方法去隨機選出聚類中心,但是有一種方法比其他方法更值得推薦:

  1. 設置K<m,即簇的數量要比訓練樣本數量小。
  2. 隨機挑選K個訓練樣本。
  3. 讓​μ1,…,μK​這些聚類中心等於這K個訓練樣本。
    在這裏插入圖片描述
    有時候會出現上圖右下這種局部最優解的情況,此時我們需要嘗試多次隨機初始化。然後在多個結果中選擇J最小的那組分類。(K=2~10)

4、選擇簇類數量

這個問題目前沒有能自動解決的方法,只能手動選擇。

  1. 肘部法則:
    畫出代價函數J隨着數據簇數量K而變化的圖像。代價函數會隨着數據簇數量上升而減少,最後會趨於平穩。如果在某一個點開始明顯地趨於平穩,那麼我們選擇代價函數剛開始變平穩的那個點K;但如果代價函數是平滑地趨於平穩的話,那這個方法就失效了。
    在這裏插入圖片描述
  2. 根據目的選取
    選取能更好服務於你後續目的的K值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章