K-means,高斯混合模型及其EM步驟詳解
05-01
作為機器學習演算法的一員,不同於SVMs(支持向量機),貝葉斯,logistic regression這些監督學習演算法,K-means是一種無監督的聚類演算法。這裡的K表示類別的個數。
K-means演算法EM步驟如下:
- 給定K的值,代表有K個不同的類別。
- 對每一個類別,猜測其中心點。
- 在已知K個中心點的情況下,計算每個點到這K的中心點的距離,距離最小的那個中心點所代表的類就是該點所屬的類別,這樣對所有樣本完成分類。
- 針對每一個類重新計算中心點,即將該類中所有點加和取平均,該均值則為新的中心點
- 重複3~4的過程直到中心點收斂。
下圖顯示了K-means的每一步驟的結果:
高斯混合模型GMMs Gaussian Mixture Models
高斯模型即正態分布,高斯混合模型就是幾個正態分布的疊加,每一個正態分布代表一個類別,所以和K-means很像,高斯混合模型也可以用來做無監督的聚類分析。
高斯混合模型聚類演算法EM步驟如下:
- 猜測有幾個類別,既有幾個高斯分布。
- 針對每一個高斯分布,隨機給其均值和方差進行賦值。
- 針對每一個樣本,計算其在各個高斯分布下的概率。
4. 針對每一個高斯分布,每一個樣本對該高斯分布的貢獻可以由其下的概率表示,如概率大則表示貢獻大,反之亦然。這樣把樣本對該高斯分布的貢獻作為權重來計算加權的均值和方差。之後替代其原本的均值和方差。
5. 重複3~4直到每一個高斯分布的均值和方差收斂。
下圖顯示了高斯混合模型的聚類過程:
註:當高斯混合模型的特徵值維數大於一維時,在計算加權的時候還要計算協方差,即要考慮不同維度之間的相互關聯。
高斯混合模型和K-means的比較:
相同點:
- 分類受初始值的影響
- 可能限於局部最優解
- 類別的個數只能靠猜測 (有K越大MAP最大後驗概率越大的趨勢)
不同點:
- K-means是硬分類,要麼屬於這類,要麼屬於那類,而高斯混合式軟分類,一個樣本60%屬於A,40% 屬於B。
- 多維的時候高斯混合在計算均值和方差時使用了協方差,應用了不同維度之間的相互約束關係。
推薦閱讀:
※pytorch實現capsule
※[學習筆記] CS229 Part XIII Reinforcement Learning and Control + AlphaGo
※[貝葉斯二]之貝葉斯決策理論
※台灣李宏毅老師機器學習ML 第一課 回歸Regression
※[機器學習演算法]邏輯回歸
TAG:機器學習 |