0
高斯混合模型是一種強(qiáng)大的聚類(lèi)算法。本文將帶你了解高斯混合模型的工作原理以及如何在 Python 中實(shí)現(xiàn)它們,我們還將討論 k-means 聚類(lèi)算法,看看高斯混合模型是如何對(duì)它進(jìn)行改進(jìn)的。
我真的很喜歡研究無(wú)監(jiān)督的學(xué)習(xí)問(wèn)題。相對(duì)于一個(gè)有監(jiān)督的學(xué)習(xí)問(wèn)題來(lái)說(shuō),它們提供了一個(gè)完全不同的挑戰(zhàn)——有更多的空間來(lái)試驗(yàn)我的數(shù)據(jù)。難怪機(jī)器學(xué)習(xí)領(lǐng)域的大多數(shù)發(fā)展和突破都發(fā)生在無(wú)監(jiān)督學(xué)習(xí)領(lǐng)域。
無(wú)監(jiān)督學(xué)習(xí)中最流行的技術(shù)之一是聚類(lèi)。這是一個(gè)概念且很容易掌握,我們通常在機(jī)器學(xué)習(xí)的早期學(xué)習(xí)它。我相信你已經(jīng)經(jīng)歷甚至參與過(guò)客戶(hù)細(xì)分、市場(chǎng)籃分析等項(xiàng)目。
高斯混合模型
但問(wèn)題是——集群有很多層。它不僅限于我們之前學(xué)習(xí)的基本算法。它是一種強(qiáng)大的無(wú)監(jiān)督學(xué)習(xí)技術(shù),我們可以在現(xiàn)實(shí)世界中準(zhǔn)確無(wú)誤地使用它。
高斯混合模型是我在本文中要討論的一種聚類(lèi)算法。
想預(yù)測(cè)你最喜歡的產(chǎn)品的銷(xiāo)量嗎?想通過(guò)不同客戶(hù)群體的視角來(lái)理解客戶(hù)流失?不管是什么用例,你都會(huì)發(fā)現(xiàn)高斯混合模型非常有用。
在本文中,我們將采用自下而上的方法。因此,我們將首先學(xué)習(xí)聚類(lèi)的基礎(chǔ)知識(shí),包括快速回顧 k-means 算法。然后,我們將深入研究高斯混合模型的概念并用 Python 實(shí)現(xiàn)它們。
如果你對(duì)集群和數(shù)據(jù)科學(xué)還不熟悉,我建議您學(xué)習(xí)以下綜合課程:Applied Machine Learning
本文將分為以下幾個(gè)部分:
聚類(lèi)簡(jiǎn)介
k-means 聚類(lèi)簡(jiǎn)介
k-means 聚類(lèi)的缺點(diǎn)
高斯混合模型簡(jiǎn)介
高斯分布
什么是期望最大化?
高斯混合模型中的期望最大化
聚類(lèi)簡(jiǎn)介
在我們開(kāi)始討論高斯混合模型的本質(zhì)之前,讓我們快速更新一些基本概念。
注意:如果你已經(jīng)熟悉了聚類(lèi)背后的思想以及 k-means 聚類(lèi)算法的工作原理,可以直接跳到第四節(jié)「高斯混合模型簡(jiǎn)介」。
因此,讓我們從正式定義開(kāi)始:
聚類(lèi)是指根據(jù)相似數(shù)據(jù)點(diǎn)的屬性或特征將它們分組在一起。
例如,如果我們有一組人的收入和支出,我們可以將他們分為以下幾類(lèi):
高收入,高消費(fèi)
高收入,低消費(fèi)
低收入,低消費(fèi)
低收入,高消費(fèi)
這些組都分別擁有一個(gè)具有相似特征,這在向組投遞相關(guān)方案/產(chǎn)品時(shí)非常有用。想想信用卡、汽車(chē)/房產(chǎn)貸款是不是這樣的?簡(jiǎn)單地說(shuō):
集群背后的思想是將數(shù)據(jù)點(diǎn)分組在一起,這樣每個(gè)單獨(dú)的集群都擁有最相似的數(shù)據(jù)點(diǎn)。
有各種各樣的聚類(lèi)算法。最流行的聚類(lèi)算法之一是 k-means。讓我們了解 k-means 算法是如何工作的,以及該算法可能達(dá)不到預(yù)期的情況。
k-means 聚類(lèi)簡(jiǎn)介
k-means 聚類(lèi)是一種基于距離的聚類(lèi)算法。這意味著它試圖將最近的點(diǎn)分組以形成一個(gè)簇。
讓我們仔細(xì)看看這個(gè)算法是如何工作的。這將幫助你了解高斯混合模型是如何在本文后面發(fā)揮作用的。
因此,我們首先定義要將總體劃分為的組的數(shù)量——這是 k 的值。根據(jù)需要的簇或組的數(shù)量,隨機(jī)初始化 k 個(gè)質(zhì)心。
然后將數(shù)據(jù)點(diǎn)指定給最近的質(zhì)心,形成一個(gè)簇。然后更新質(zhì)心并重新分配數(shù)據(jù)點(diǎn)。這個(gè)過(guò)程不斷重復(fù),直到質(zhì)心的位置不再改變。
這里有個(gè)視頻代表了初始化和更新集群的整個(gè)過(guò)程,其中,群集數(shù)被指定為 10:https://thumbs.gfycat.com/SoftEnragedHypsilophodon-mobile.mp4
注意:這是 k-means 聚類(lèi)的簡(jiǎn)要概述,對(duì)于本文來(lái)說(shuō)已經(jīng)足夠了。如果你想深入研究 k-means 算法的工作,這里有一個(gè)深入的指南:The Most Comprehensive Guide to k-means you’ll Ever Need !
k-means 聚類(lèi)的缺點(diǎn)
k-means 聚類(lèi)概念聽(tīng)起來(lái)不錯(cuò),對(duì)吧?它易于理解,相對(duì)容易實(shí)現(xiàn),并且可以應(yīng)用于很多用例中。但也有一些缺點(diǎn)和局限性需要我們注意。
讓我們以我們?cè)谏厦婵吹降耐瑯拥氖罩Ю訛槔?。k-means 算法似乎運(yùn)行得很好,但是,如果你仔細(xì)觀察,你會(huì)發(fā)現(xiàn)所有創(chuàng)建的簇都是圓形的。這是因?yàn)榧旱馁|(zhì)心是使用平均值迭代更新的。
現(xiàn)在,考慮下面的例子,其中點(diǎn)的分布不是圓形的。如果我們對(duì)這些數(shù)據(jù)使用 k-means 聚類(lèi),你認(rèn)為會(huì)發(fā)生什么?它仍然試圖以循環(huán)方式對(duì)數(shù)據(jù)點(diǎn)進(jìn)行分組。那不太好!k-means 無(wú)法識(shí)別正確的集群:
k-means 高斯混合模型
因此,我們需要一種不同的方法來(lái)將集群分配給數(shù)據(jù)點(diǎn)。因此,我們不再使用基于距離的模型,而是使用基于分布的模型。
高斯混合模型簡(jiǎn)介
高斯混合模型(GMMs)假設(shè)存在一定數(shù)量的高斯分布,并且每個(gè)分布代表一個(gè)簇。因此,高斯混合模型傾向于將屬于單一分布的數(shù)據(jù)點(diǎn)組合在一起。
假設(shè)我們有三個(gè)高斯分布——GD1、GD2 和 GD3。它們分別具有一定的均值(μ1,μ2,μ3)和方差(σ1,σ2,σ3)。對(duì)于給定的一組數(shù)據(jù)點(diǎn),我們的 GMM 將識(shí)別屬于這些分布的每個(gè)數(shù)據(jù)點(diǎn)的概率。
等等,概率?
對(duì)的!高斯混合模型是一種概率模型,采用軟聚類(lèi)方法對(duì)不同的聚類(lèi)點(diǎn)進(jìn)行分布。我再舉一個(gè)例子,讓大家更容易理解。
在這里,我們有三個(gè)集群,用三種顏色表示——藍(lán)色、綠色和青色。讓我們以紅色突出顯示的數(shù)據(jù)點(diǎn)為例。該點(diǎn)成為藍(lán)色團(tuán)簇一部分的概率為 1,而成為綠色或青色團(tuán)簇一部分的概率為 0。
高斯混合模型
現(xiàn)在,考慮另一個(gè)點(diǎn)-介于藍(lán)色和青色之間(在下圖中突出顯示)。這個(gè)點(diǎn)是綠色簇的一部分的概率是 0,對(duì)吧?這屬于藍(lán)色和青色的概率分別為 0.2 和 0.8。
高斯混合模型使用軟聚類(lèi)技術(shù)將數(shù)據(jù)點(diǎn)分配給高斯分布。你肯定想知道這些分布是什么,所以讓我在下一節(jié)解釋一下。
高斯分布
我相信你熟悉高斯分布(或正態(tài)分布)。它有一個(gè)鐘形曲線(xiàn),數(shù)據(jù)點(diǎn)圍繞平均值對(duì)稱(chēng)分布。
下圖有一些高斯分布,平均值(μ)和方差(σ2)不同。記住,σ 值越高,價(jià)差越大:
高斯混合模型(來(lái)源:維基百科)
在一維空間中,高斯分布的概率密度函數(shù)由下式給出:
高斯分布
其中μ是平均值,σ2 是方差。
但這只適用于單個(gè)變量。在兩個(gè)變量的情況下,我們將得到如下所示的三維鐘形曲線(xiàn),而不是二維鐘形曲線(xiàn):
高斯混合模型
概率密度函數(shù)由以下公式給出:
高斯分布
其中 x 是輸入向量,μ是 2D 平均向量,∑ 是 2×2 協(xié)方差矩陣。協(xié)方差現(xiàn)在可以定義曲線(xiàn)的形狀。我們也可以對(duì) d 維進(jìn)行推廣。
因此,這個(gè)多元高斯模型將 x 和 μ 作為長(zhǎng)度 d 的向量,∑ 將是一個(gè) d×d 協(xié)方差矩陣。
因此,對(duì)于具有 d 個(gè)特征的數(shù)據(jù)集,我們將得到 k 個(gè)高斯分布(其中 k 相當(dāng)于簇的數(shù)量)的混合,每個(gè)都有一定的平均向量和方差矩陣。但是,如何分配每個(gè)高斯分布的均值和方差值?
這些值用一種叫做期望最大化(EM)的技術(shù)來(lái)確定。在深入研究高斯混合模型之前,我們需要了解這項(xiàng)技術(shù)。
什么是期望最大化?
好問(wèn)題!
期望最大化(EM)是尋找正確模型參數(shù)的統(tǒng)計(jì)算法。當(dāng)數(shù)據(jù)缺少值時(shí),或者換句話(huà)說(shuō),當(dāng)數(shù)據(jù)不完整時(shí),我們通常使用 EM。
這些缺失的變量稱(chēng)為潛在變量。當(dāng)我們?cè)谘芯恳粋€(gè)無(wú)監(jiān)督學(xué)習(xí)問(wèn)題時(shí),我們認(rèn)為目標(biāo)(或簇?cái)?shù))是未知的。
由于缺少這些變量,很難確定正確的模型參數(shù)。這樣想吧——如果你知道哪個(gè)數(shù)據(jù)點(diǎn)屬于哪個(gè)集群,你就很容易確定平均向量和協(xié)方差矩陣。
由于我們沒(méi)有潛在變量的值,期望最大化試圖利用現(xiàn)有數(shù)據(jù)來(lái)確定這些變量的最優(yōu)值,然后找到模型參數(shù)?;谶@些模型參數(shù),我們返回并更新潛在變量的值。
廣義上,期望最大化算法有兩個(gè)步驟:
E-step:在這個(gè)步驟中,可用的數(shù)據(jù)用于估計(jì)(猜測(cè))丟失變量的值
M-step:根據(jù) E-step 中生成的估計(jì)值,使用完整的數(shù)據(jù)更新參數(shù)
期望最大化是許多算法的基礎(chǔ),包括高斯混合模型。那么,GMM 如何使用 EM 的概念,以及如何將其應(yīng)用于給定的點(diǎn)集?讓我們看看!
高斯混合模型中的期望最大化
讓我們用另一個(gè)例子來(lái)理解這一點(diǎn)。我想讓你在讀的時(shí)候自己也思考以下。這將幫助你更好地理解我們?cè)谡f(shuō)什么。
假設(shè)我們需要分配 k 個(gè)簇。這意味著存在 k 個(gè)高斯分布,平均值和協(xié)方差值為 μ1,μ2 ... μk 和 ∑1,∑2 ... ∑k。此外,還有一個(gè)用于分布的參數(shù),用于定義分布的點(diǎn)數(shù)?;蛘邠Q句話(huà)說(shuō),分布密度用 ∏i 表示。
現(xiàn)在,我們需要找到這些參數(shù)的值來(lái)定義高斯分布。我們已經(jīng)決定了簇的數(shù)量,并隨機(jī)分配了均值、協(xié)方差和密度的值。接下來(lái),我們將執(zhí)行 E-step 和 M-step!
E-step:
對(duì)于每個(gè)點(diǎn) Xi,計(jì)算它屬于簇/分布 C1、C2、…CK 的概率。使用以下公式完成此操作:
高斯混合模型
該值將在將點(diǎn)指定給右簇時(shí)為高,否則為低。
M-step:
完成 E-step 后,我們返回并更新 ∏,μ 和 ∑ 值。更新方式如下:
新密度由群集中的點(diǎn)數(shù)與總點(diǎn)數(shù)的比率定義:
高斯混合模型
平均值和協(xié)方差矩陣根據(jù)分配給分布的值進(jìn)行更新,與數(shù)據(jù)點(diǎn)的概率值成比例。因此,具有更高概率成為該分布一部分的數(shù)據(jù)點(diǎn)將貢獻(xiàn)更大的部分:
高斯混合模型
基于此步驟生成的更新值,我們計(jì)算每個(gè)數(shù)據(jù)點(diǎn)的新概率并迭代更新值。為了最大化對(duì)數(shù)似然函數(shù),重復(fù)該過(guò)程。實(shí)際上我們可以說(shuō):
k-means 只考慮更新質(zhì)心的均值,而 GMM 則考慮數(shù)據(jù)的均值和方差!
結(jié)語(yǔ)
這是高斯混合模型的入門(mén)指南。我在這里的目的是向你介紹這種強(qiáng)大的聚類(lèi)技術(shù),并展示它與傳統(tǒng)算法相比是多么高效。
我鼓勵(lì)你參加一個(gè)集群項(xiàng)目并在那里嘗試 GMMs。這是學(xué)習(xí)和理解一個(gè)概念的最好方法——相信我,你會(huì)意識(shí)到這個(gè)算法有多有用!
via:https://www.analyticsvidhya.com/blog/2019/10/gaussian-mixture-models-clustering/
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。