最大期望算法(EM)
但以下將要介紹的EM算法就要困難很多了。它與極大似然預計密切相關。
1 算法原理
最好還是從一個樣例開始我們的討論。如果如今有100個人的身高數據,並且這100條數據是隨機抽取的。
一個常識性的看法是。男性身高滿足一定的分布(比如正態分布),女性身高也滿足一定的分布。但這兩個分布的參數不同。
我們如今不僅不知道男女身高分布的參數,甚至不知道這100條數據哪些是來自男性。哪些是來自女性。這正符合聚類問題的如果,除了數據本身以外,並不知道其它不論什么信息。而我們的目的正是判斷每一個數據應該屬於哪個分類。所以對於每一個樣本,都有兩個須要被預計的項,一個就是它究竟是來自男性身高的分布。還是來自女性身高的分布。另外一個就是,男女身高分布的參數各是多少。
既然我們要預計知道A和B兩組參數,在開始狀態下二者都是未知的。但如果知道了A的信息就能夠得到B的信息,反過來知道了B也就得到了A。
所以可能想到的一種方法就是考慮首先賦予A某種初值,以此得到B的預計。然后從B的當前值出發。又一次預計A的取值,這個過程一直持續到收斂為止。你是否隱約想到了什么?是的。這恰恰是K均值算法的本質。所以說K均值算法中事實上蘊含了EM算法的本質。
EM算法,又稱期望最大化(Expectation Maximization)算法。在男女身高的問題里面,能夠先隨便猜一下男生身高的正態分布參數:比方能夠如果男生身高的均值是1.7米,方差是0.1米。當然。這不過我們的一個推測,最開始肯定不會太准確。
但基於這個推測,便可計算出每一個人更可能屬於男性分布還是屬於女性分布。比如有個人的身高是1.75米,顯然它更可能屬於男性身高這個分布。據此,我們為每條數據都划定了一個歸屬。
接下來就能夠依據最大似然法,通過這些被大概覺得是男性的若干條數據來又一次預計男性身高正態分布的參數,女性的那個分布相同方法又一次預計。然后,當更新了這兩個分布的時候,每一個屬於這兩個分布的概率又發生了改變,那么就再須要調整參數。如此迭代,直到參數基本不再發生變化為止。
在正式介紹EM算法的原理和運行過程之前,此處首先對邊緣分布的概念稍作補充。
2. 收斂探討
在下一篇中我們將討論高斯混合模型(GMM),相當於是EM的一種實現。並給出在R中進行數據挖掘的實例。
未完,待續...
-----------------------------------------------------------------
本文參考文獻:
1、斯坦福的公開課——機器學習 。由Andrew Ng主講
2、JerryLead的博客
3、數據挖掘導論,Pang-Ning Tan,Michael Steinbach,Vipin Kumar 著