K means與EM的關係

2021-08-24 17:57:10 字數 1077 閱讀 5867

首先回到k-means聚類初始問題,我們目的是將樣本分成k個類,其實說白了就是求乙個樣本例的隱含類別y,然後利用隱含類別將x歸類。由於我們事先不知道類別y,那麼我們首先可以對每個樣例假定乙個y吧,但是怎麼知道假定的對不對呢?怎樣評價假定的好不好呢?

我們使用樣本的極大似然估計來度量,這裡就是x和y的聯合分布p(x,y)了。如果找到的y能夠使p(x,y)最大,那麼我們找到的y就是樣例x的最佳類別了,x順手就聚類了。但是我們第一次指定的y不一定會讓p(x,y)最大,而且p(x,y)還依賴於其他未知引數,當然在給定y的情況下,我們可以調整其他引數讓p(x,y)最大。但是調整完引數後,我們發現有更好的y可以指定,那麼我們重新指定y,然後再計算p(x,y)最大時的引數,反覆迭代直至沒有更好的y可以指定

這個過程有幾個難點:

第一怎麼假定y?是每個樣例硬指派乙個y還是不同的y有不同的概率,概率如何度量。

第二如何估計p(x,y),p(x,y)還可能依賴很多其他引數,如何調整裡面的引數讓p(x,y)最大。

em演算法的思想:e步就是估計隱含類別y的期望值,m步調整其他引數使得在給定類別y的情況下,極大似然估計p(x,y)能夠達到極大值。然後在其他引數確定的情況下,重新估計y,周而復始,直至收斂。

從k-means裡我們可以看出它其實就是em的體現,e步是確定隱含類別變數總體思想還是乙個迭代優化過程,有目標函式,也有引數變數,只是多了個隱含變數,確定其他引數估計隱含變數,再確定隱含變數估計其他引數,直至目標函式最優。

em演算法就是這樣,假設我們想估計知道a和b兩個引數,在開始狀態下二者都是未知的,但如果知道了a的資訊就可以得到b的資訊,反過來知道了b也就得到了a。可以考慮首先賦予a某種初值,以此得到b的估計值,然後從b的當前值出發,重新估計a的取值,這個過程一直持續到收斂為止

em的意思是「expectation maximization」

K Means聚類方法與EM演算法之間的關係

將樣本分成k個類,其實說白了就是求乙個樣本例的隱含類別y,然後利用隱含類別將x歸類。由於我們事先不知道類別y,那麼我們首先可以對每個樣例假定乙個y吧,但是怎麼知道假定的對不對呢?怎樣評價假定的好不好呢?我們使用樣本的極大似然估計來度量,這裡就是x和y的聯合分布p x,y 了。如果找到的y能夠使p x...

k means和EM演算法的Matlab實現

說明 2.matlab 3.非職業碼農,質量不高,變數命名也不規範,湊合著看吧,不好意思 既然是特例,就有不適用的地方。本文構造出如圖1所示的通用gmm資料,並分別用k means 結果見圖2和3 和em聚類 結果見圖4 可以看到k means演算法的侷限性和gmm em演算法的優勢。dim 100...

K Means聚類和EM演算法複習總結

摘要 1.演算法概述 2.演算法推導 3.演算法特性及優缺點 4.注意事項 5.實現和具體例子 6.適用場合 內容 1.演算法概述 k means演算法是一種得到最廣泛使用的聚類演算法。它是將各個聚類子集內的所有資料樣本的均值作為該聚類的代表點。k means 計算過程 1 隨機選擇k個類簇的中心 ...