GMM(Gaussian Mixture Model, 高斯混合模型)是指該算法由多個(gè)高斯模型線性疊加混合而成震糖。每個(gè)高斯模型稱之為component洞慎。
GMM算法描述的是數(shù)據(jù)的本身存在的一種分布,即樣本特征屬性的分布,和預(yù)測(cè)值Y無關(guān)。顯然GMM算法是無監(jiān)督的算法,常用于聚類應(yīng)用中溶诞,component的個(gè)數(shù)就可以認(rèn)為是類別的數(shù)量。
回到昨天說的例子:隨機(jī)選擇1000名用戶决侈,測(cè)量用戶的身高螺垢;若樣本中存在男性和女性,身高分別服從高斯分布N(μ1,σ1)和N(μ2,σ2)的分布赖歌,試估計(jì)參數(shù):μ1,σ1,μ2,σ2枉圃;
1、如果明確的知道樣本的情況(即男性和女性數(shù)據(jù)是分開的)庐冯,那么我們使用極大似然估計(jì)來估計(jì)這個(gè)參數(shù)值孽亲。
2、如果樣本是混合而成的展父,不能明確的區(qū)分開返劲,那么就沒法直接使用極大似然估計(jì)來進(jìn)行參數(shù)的估計(jì)。
我們可以認(rèn)為當(dāng)前的1000條數(shù)據(jù)組成的集X栖茉,是由兩個(gè)高斯分布疊加而成的(男性的分布和女性的分布)篮绿。
如果能找到一種辦法把每一個(gè)高斯分布對(duì)應(yīng)的參數(shù)π、 μ吕漂、σ求出來亲配,那么對(duì)應(yīng)的模型就求解出來了。
如果模型求解出來后惶凝,如何對(duì)數(shù)據(jù)進(jìn)行聚類吼虎?
這個(gè)公式求出來的分別是男性和女性身高分布的概率密度,如果把π梨睁、 μ鲸睛、σ都求出來,以后我們可以構(gòu)建出一個(gè)能夠根據(jù)樣本特征計(jì)算出樣本屬于男性或女性的可能性坡贺。
實(shí)際做樣本分類的時(shí)候,我們把樣本X的特征x1~xn分別代入兩個(gè)公式中箱舞,求出來的兩個(gè)結(jié)果分別是:樣本X的性別是男遍坟、是女的可能性。如果是男的可能性大于是女的可能性晴股,我們就把樣本X歸入男性的分類愿伴。
假定GMM由k個(gè)Gaussian分布線性疊加而成,那么概率密度函數(shù)如下:
分析第1個(gè)等式:
p(x): 概率密度函數(shù)电湘,k個(gè)Gaussian分布線性疊加而成的概率密度函數(shù)隔节。
∑p(k)p(x|k): k個(gè)某種模型疊加的概率密度函數(shù)鹅经。
p(k): 每個(gè)模型占的權(quán)重,即上面提到的π怎诫。
p(x|k): 給定類別k后瘾晃,對(duì)應(yīng)的x的概率密度函數(shù)。
分析第2個(gè)等式:目標(biāo) - 將公式寫成高斯分布的樣子幻妓。
πk:即p(k)
p(x;μk,∑k):多元高斯(正態(tài))分布蹦误。有了觀測(cè)數(shù)據(jù)x后,在給定了條件下的高斯分布肉津。這個(gè)條件是1强胰、第k個(gè)分類的均值μk; 2、第k個(gè)分類的方差∑k;
深入分析p(x;μk,∑k)的參數(shù):
如果樣本有n個(gè)特征妹沙,所有的特征x1~xn一起服從一個(gè)多元的高斯分布(正態(tài)分布)偶洋,所有特征的均值應(yīng)該是一個(gè)向量 (μ1~μn);
μk: 第k個(gè)分類的情況下(第k個(gè)高斯分布的情況下對(duì)應(yīng)的每一列的均值)距糖;μk = (μk1~μkn)
∑k: 協(xié)方差矩陣(對(duì)稱陣)∥姓妫現(xiàn)在有n個(gè)特征,協(xié)方差矩陣是一個(gè)n×n的矩陣∩隹穑現(xiàn)在我們要算的是:
cov(x1,x1)哆料,cov(x1,x2),...吗铐,cov(x1,xn)
cov(x2,x1)东亦,cov(x2,x2),...唬渗,cov(x2,xn)
....
cov(xn,x1)典阵,cov(x1,x2),...镊逝,cov(xn,xn)
其中壮啊,對(duì)角線 cov(x1,x1)、cov(x2,x2)撑蒜, ... 歹啼,cov(xn,xn)中,x1和x1的協(xié)方差 = x1的方差座菠;即cov(x1,x1) = var(x1)狸眼;所以對(duì)角線上兩個(gè)特征的協(xié)方差 = 對(duì)應(yīng)的特征的方差。
協(xié)方差(Covariance)在概率論和統(tǒng)計(jì)學(xué)中用于衡量?jī)蓚€(gè)變量的總體誤差浴滴。而方差是協(xié)方差的一種特殊情況拓萌,即當(dāng)兩個(gè)變量是相同的情況。
協(xié)方差表示的是兩個(gè)變量的總體的誤差升略,這與只表示一個(gè)變量誤差的方差不同微王。 如果兩個(gè)變量的變化趨勢(shì)一致屡限,也就是說如果其中一個(gè)大于自身的期望值,另外一個(gè)也大于自身的期望值炕倘,那么兩個(gè)變量之間的協(xié)方差就是正值钧大。 如果兩個(gè)變量的變化趨勢(shì)相反,即其中一個(gè)大于自身的期望值激才,另外一個(gè)卻小于自身的期望值拓型,那么兩個(gè)變量之間的協(xié)方差就是負(fù)值。
理解了公式后瘸恼,再來看看公式在圖像上是如何體現(xiàn)的:
如果樣本X只有一個(gè)特征x1劣挫,在二維的坐標(biāo)系上的表示出來。特征x1是由n個(gè)單變量樣本的高斯分布疊加而成的东帅。向量x1k = ∑k (x1(1),x1(2),~,x1(n))压固,如k=(男、女)靠闭,累加男性分類下的特征高斯分布和女性分類下的高斯分布帐我;
圖中紅色曲線表示原有數(shù)據(jù)的分布情況,我認(rèn)為這個(gè)原有數(shù)據(jù)是由多個(gè)比較的高斯分布疊加而成的愧膀,藍(lán)色曲線 表示單個(gè)單個(gè)高斯分布的分布情況拦键。向量x1 = (x1(1),x1(2),~,x1(n));
PS: 藍(lán)1+藍(lán)2=紅 體現(xiàn)的就是公式 p(x) = ∑πp(x;μ,∑k)檩淋;
在得知數(shù)據(jù)的特征 x=(x1~xn) 后芬为,如果我們想把數(shù)據(jù)合理得聚類到一個(gè)分類中,我們?cè)撊绾稳ビ?jì)算呢蟀悦?
既然我已經(jīng)得到了k個(gè)高斯分布對(duì)應(yīng)的概率密度函數(shù)(現(xiàn)在設(shè)k=3媚朦,共3個(gè)分類),將當(dāng)前特征的x=(x1~xn)代入我們的概率密度函數(shù): p(x) = ∑πp(x;μ,∑k)日戈;
我們分別計(jì)算p(藍(lán)1)询张、p(藍(lán)2)、p(藍(lán)3)浙炼,藍(lán)色三條線各對(duì)應(yīng)k分類中的一個(gè)份氧,哪個(gè)數(shù)大,我認(rèn)為當(dāng)前的樣本該分到哪一類鼓拧。
GMM算法的兩個(gè)前提:
1半火、數(shù)據(jù)服從高斯分布;
2季俩、我們?nèi)藶槎x了分類個(gè)數(shù)k。
基于這兩個(gè)前提梅掠,問題遞進(jìn):
問:我們?nèi)藶榧俣烁咚狗植嫉姆诸悅€(gè)數(shù)k酌住,就類似于我們聚簇時(shí)分的聚簇中心個(gè)數(shù)一樣店归。參數(shù)π、μ酪我、σ該如何求出來?
答:和K-Means算法一樣消痛,我們可以用EM算法來求解這個(gè)問題。 GMM也滿足EM算法的聚類思想都哭,首先人為得定義了聚類的個(gè)數(shù)k秩伞,從數(shù)據(jù)特征X中發(fā)掘潛在關(guān)系的一種模型。而且我還默認(rèn)數(shù)據(jù)是服從多個(gè)高斯分布的欺矫。
GMM算法中的隱含條件是:第k個(gè)模型占的權(quán)重 - 纱新、 第k個(gè)高斯分布的情況下對(duì)應(yīng)的每一列的均值 -
、協(xié)方差矩陣 cov(xi,xj) -
穆趴;因?yàn)楸举|(zhì)上我們是知道數(shù)據(jù)原有的分類狀況的脸爱,只是無法觀測(cè)到隱含在數(shù)據(jù)中的這些特性,使用EM的思想可以迭代得求解出這些隱含變量未妹。
對(duì)聯(lián)合概率密度函數(shù)求對(duì)數(shù)似然函數(shù):
對(duì)聯(lián)合概率密度函數(shù)求對(duì)數(shù)后簿废,原本連乘的最大似然估計(jì)變成了連加的函數(shù)狀態(tài)。
EM算法求解 - E步:
套用公式后络它,我們可以假定隱含變量z的分布:Q(z(i) = j)族檬;
我們認(rèn)為分布wj(i) = 第i個(gè)觀測(cè)值對(duì)應(yīng)的隱含分類第z(i)類; = 以(看不見的參數(shù)π化戳、μ单料、∑)為參數(shù)的情況下,輸入第i觀測(cè)值的特征x后得到的分類z(i)類迂烁;
EM算法求解 - M步:
M步第1行就是上一章通過化簡(jiǎn)找到下界的那個(gè)函數(shù):
如果要分別求解三個(gè)未知變量, 則需要對(duì)每一個(gè)未知變量求偏導(dǎo)却盘。
1狰域、對(duì)均值求偏導(dǎo):
2、對(duì)方差求偏導(dǎo):
3黄橘、對(duì)概率使用拉格朗日乘子法求解: