標籤:

K-means,高斯混合模型及其EM步驟詳解

作為機器學習演算法的一員,不同於SVMs(支持向量機),貝葉斯,logistic regression這些監督學習演算法,K-means是一種無監督的聚類演算法。這裡的K表示類別的個數。

K-means演算法EM步驟如下:

  1. 給定K的值,代表有K個不同的類別。
  2. 對每一個類別,猜測其中心點。
  3. 在已知K個中心點的情況下,計算每個點到這K的中心點的距離,距離最小的那個中心點所代表的類就是該點所屬的類別,這樣對所有樣本完成分類。
  4. 針對每一個類重新計算中心點,即將該類中所有點加和取平均,該均值則為新的中心點
  5. 重複3~4的過程直到中心點收斂。

下圖顯示了K-means的每一步驟的結果:

高斯混合模型GMMs Gaussian Mixture Models

高斯模型即正態分布,高斯混合模型就是幾個正態分布的疊加,每一個正態分布代表一個類別,所以和K-means很像,高斯混合模型也可以用來做無監督的聚類分析。

高斯混合模型聚類演算法EM步驟如下:

  1. 猜測有幾個類別,既有幾個高斯分布。
  2. 針對每一個高斯分布,隨機給其均值和方差進行賦值。
  3. 針對每一個樣本,計算其在各個高斯分布下的概率。

4. 針對每一個高斯分布,每一個樣本對該高斯分布的貢獻可以由其下的概率表示,如概率大則表示貢獻大,反之亦然。這樣把樣本對該高斯分布的貢獻作為權重來計算加權的均值和方差。之後替代其原本的均值和方差。

5. 重複3~4直到每一個高斯分布的均值和方差收斂。

下圖顯示了高斯混合模型的聚類過程:

註:當高斯混合模型的特徵值維數大於一維時,在計算加權的時候還要計算協方差,即要考慮不同維度之間的相互關聯。

高斯混合模型和K-means的比較:

相同點:

  1. 分類受初始值的影響
  2. 可能限於局部最優解
  3. 類別的個數只能靠猜測 (有K越大MAP最大後驗概率越大的趨勢)

不同點:

  1. K-means是硬分類,要麼屬於這類,要麼屬於那類,而高斯混合式軟分類,一個樣本60%屬於A,40% 屬於B。
  2. 多維的時候高斯混合在計算均值和方差時使用了協方差,應用了不同維度之間的相互約束關係。

推薦閱讀:

pytorch實現capsule
[學習筆記] CS229 Part XIII Reinforcement Learning and Control + AlphaGo
[貝葉斯二]之貝葉斯決策理論
台灣李宏毅老師機器學習ML 第一課 回歸Regression
[機器學習演算法]邏輯回歸

TAG:機器學習 |