《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 數(shù)據(jù)科學(xué)家必須了解的六大聚類算法:帶你發(fā)現(xiàn)數(shù)據(jù)之美

數(shù)據(jù)科學(xué)家必須了解的六大聚類算法:帶你發(fā)現(xiàn)數(shù)據(jù)之美

2018-02-14

機(jī)器學(xué)習(xí)中,無(wú)監(jiān)督學(xué)習(xí)一直是我們追求的方向,而其中的聚類算法更是發(fā)現(xiàn)隱藏?cái)?shù)據(jù)結(jié)構(gòu)與知識(shí)的有效手段。目前如谷歌新聞等很多應(yīng)用都將聚類算法作為主要的實(shí)現(xiàn)手段,它們能利用大量的未標(biāo)注數(shù)據(jù)構(gòu)建強(qiáng)大的主題聚類。本文從最基礎(chǔ)的 K 均值聚類到基于密度的強(qiáng)大方法介紹了 6 類主流方法,它們各有擅長(zhǎng)領(lǐng)域與情景,且基本思想并不一定限于聚類方法。


本文將從簡(jiǎn)單高效的 K 均值聚類開始,依次介紹均值漂移聚類、基于密度的聚類、利用高斯混合和最大期望方法聚類、層次聚類和適用于結(jié)構(gòu)化數(shù)據(jù)的圖團(tuán)體檢測(cè)。我們不僅會(huì)分析基本的實(shí)現(xiàn)概念,同時(shí)還會(huì)給出每種算法的優(yōu)缺點(diǎn)以明確實(shí)際的應(yīng)用場(chǎng)景。


聚類是一種包括數(shù)據(jù)點(diǎn)分組的機(jī)器學(xué)習(xí)技術(shù)。給定一組數(shù)據(jù)點(diǎn),我們可以用聚類算法將每個(gè)數(shù)據(jù)點(diǎn)分到特定的組中。理論上,屬于同一組的數(shù)據(jù)點(diǎn)應(yīng)該有相似的屬性和/或特征,而屬于不同組的數(shù)據(jù)點(diǎn)應(yīng)該有非常不同的屬性和/或特征。聚類是一種無(wú)監(jiān)督學(xué)習(xí)的方法,是一種在許多領(lǐng)域常用的統(tǒng)計(jì)數(shù)據(jù)分析技術(shù)。


K-Means(K 均值)聚類


K-Means 可能是最知名的聚類算法。它是很多入門級(jí)數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)課程的內(nèi)容。在代碼中很容易理解和實(shí)現(xiàn)!請(qǐng)看下面的圖。

微信圖片_20180214222852.gif


K-Means 聚類


首先,我們選擇一些類/組,并隨機(jī)初始化它們各自的中心點(diǎn)。為了算出要使用的類的數(shù)量,最好快速查看一下數(shù)據(jù),并嘗試識(shí)別不同的組。中心點(diǎn)是與每個(gè)數(shù)據(jù)點(diǎn)向量長(zhǎng)度相同的位置,在上圖中是「X」。

通過(guò)計(jì)算數(shù)據(jù)點(diǎn)與每個(gè)組中心之間的距離來(lái)對(duì)每個(gè)點(diǎn)進(jìn)行分類,然后將該點(diǎn)歸類于組中心與其最接近的組中。

根據(jù)這些分類點(diǎn),我們利用組中所有向量的均值來(lái)重新計(jì)算組中心。

重復(fù)這些步驟來(lái)進(jìn)行一定數(shù)量的迭代,或者直到組中心在每次迭代后的變化不大。你也可以選擇隨機(jī)初始化組中心幾次,然后選擇看起來(lái)提供了最佳結(jié)果的運(yùn)行。


K-Means 的優(yōu)勢(shì)在于速度快,因?yàn)槲覀冋嬲谧龅氖怯?jì)算點(diǎn)和組中心之間的距離:非常少的計(jì)算!因此它具有線性復(fù)雜度 O(n)。


另一方面,K-Means 有一些缺點(diǎn)。首先,你必須選擇有多少組/類。這并不總是仔細(xì)的,并且理想情況下,我們希望聚類算法能夠幫我們解決分多少類的問(wèn)題,因?yàn)樗哪康氖菑臄?shù)據(jù)中獲得一些見解。K-means 也從隨機(jī)選擇的聚類中心開始,所以它可能在不同的算法中產(chǎn)生不同的聚類結(jié)果。因此,結(jié)果可能不可重復(fù)并缺乏一致性。其他聚類方法更加一致。


K-Medians 是與 K-Means 有關(guān)的另一個(gè)聚類算法,除了不是用均值而是用組的中值向量來(lái)重新計(jì)算組中心。這種方法對(duì)異常值不敏感(因?yàn)槭褂弥兄担?,但?duì)于較大的數(shù)據(jù)集要慢得多,因?yàn)樵谟?jì)算中值向量時(shí),每次迭代都需要進(jìn)行排序。


均值漂移聚類


均值漂移聚類是基于滑動(dòng)窗口的算法,它試圖找到數(shù)據(jù)點(diǎn)的密集區(qū)域。這是一個(gè)基于質(zhì)心的算法,這意味著它的目標(biāo)是定位每個(gè)組/類的中心點(diǎn),通過(guò)將中心點(diǎn)的候選點(diǎn)更新為滑動(dòng)窗口內(nèi)點(diǎn)的均值來(lái)完成。然后,在后處理階段對(duì)這些候選窗口進(jìn)行過(guò)濾以消除近似重復(fù),形成最終的中心點(diǎn)集及其相應(yīng)的組。請(qǐng)看下面的圖例。

微信圖片_20180214223034.gif


均值漂移聚類用于單個(gè)滑動(dòng)窗口


為了解釋均值漂移,我們將考慮二維空間中的一組點(diǎn),如上圖所示。我們從一個(gè)以 C 點(diǎn)(隨機(jī)選擇)為中心,以半徑 r 為核心的圓形滑動(dòng)窗口開始。均值漂移是一種爬山算法,它包括在每一步中迭代地向更高密度區(qū)域移動(dòng),直到收斂。

在每次迭代中,滑動(dòng)窗口通過(guò)將中心點(diǎn)移向窗口內(nèi)點(diǎn)的均值(因此而得名)來(lái)移向更高密度區(qū)域?;瑒?dòng)窗口內(nèi)的密度與其內(nèi)部點(diǎn)的數(shù)量成正比。自然地,通過(guò)向窗口內(nèi)點(diǎn)的均值移動(dòng),它會(huì)逐漸移向點(diǎn)密度更高的區(qū)域。

我們繼續(xù)按照均值移動(dòng)滑動(dòng)窗口直到?jīng)]有方向在核內(nèi)可以容納更多的點(diǎn)。請(qǐng)看上面的圖;我們一直移動(dòng)這個(gè)圓直到密度不再增加(即窗口中的點(diǎn)數(shù))。

步驟 1 到 3 的過(guò)程是通過(guò)許多滑動(dòng)窗口完成的,直到所有的點(diǎn)位于一個(gè)窗口內(nèi)。當(dāng)多個(gè)滑動(dòng)窗口重疊時(shí),保留包含最多點(diǎn)的窗口。然后根據(jù)數(shù)據(jù)點(diǎn)所在的滑動(dòng)窗口進(jìn)行聚類。


下面顯示了所有滑動(dòng)窗口從頭到尾的整個(gè)過(guò)程。每個(gè)黑點(diǎn)代表滑動(dòng)窗口的質(zhì)心,每個(gè)灰點(diǎn)代表一個(gè)數(shù)據(jù)點(diǎn)。

微信圖片_20180214223146.gif



均值漂移聚類的整個(gè)過(guò)程


與 K-means 聚類相比,這種方法不需要選擇簇?cái)?shù)量,因?yàn)榫灯谱詣?dòng)發(fā)現(xiàn)這一點(diǎn)。這是一個(gè)巨大的優(yōu)勢(shì)。聚類中心朝最大點(diǎn)密度聚集的事實(shí)也是非常令人滿意的,因?yàn)槔斫夂瓦m應(yīng)自然數(shù)據(jù)驅(qū)動(dòng)的意義是非常直觀的。它的缺點(diǎn)是窗口大小/半徑「r」的選擇可能是不重要的。


基于密度的聚類方法(DBSCAN)


DBSCAN 是一種基于密度的聚類算法,它類似于均值漂移,但具有一些顯著的優(yōu)點(diǎn)。請(qǐng)看下面的另一個(gè)有趣的圖形,讓我們開始吧!



微信圖片_20180214223414.jpg

DBSCAN 聚類


DBSCAN 從一個(gè)沒(méi)有被訪問(wèn)過(guò)的任意起始數(shù)據(jù)點(diǎn)開始。這個(gè)點(diǎn)的鄰域是用距離 ε(ε 距離內(nèi)的所有點(diǎn)都是鄰域點(diǎn))提取的。

如果在這個(gè)鄰域內(nèi)有足夠數(shù)量的點(diǎn)(根據(jù) minPoints),則聚類過(guò)程開始,并且當(dāng)前數(shù)據(jù)點(diǎn)成為新簇的第一個(gè)點(diǎn)。否則,該點(diǎn)將會(huì)被標(biāo)記為噪聲(稍后這個(gè)噪聲點(diǎn)可能仍會(huì)成為聚類的一部分)。在這兩種情況下,該點(diǎn)都被標(biāo)記為「已訪問(wèn)」。

對(duì)于新簇中的第一個(gè)點(diǎn),其 ε 距離鄰域內(nèi)的點(diǎn)也成為該簇的一部分。這個(gè)使所有 ε 鄰域內(nèi)的點(diǎn)都屬于同一個(gè)簇的過(guò)程將對(duì)所有剛剛添加到簇中的新點(diǎn)進(jìn)行重復(fù)。

重復(fù)步驟 2 和 3,直到簇中所有的點(diǎn)都被確定,即簇的 ε 鄰域內(nèi)的所有點(diǎn)都被訪問(wèn)和標(biāo)記過(guò)。

一旦我們完成了當(dāng)前的簇,一個(gè)新的未訪問(wèn)點(diǎn)將被檢索和處理,導(dǎo)致發(fā)現(xiàn)另一個(gè)簇或噪聲。重復(fù)這個(gè)過(guò)程直到所有的點(diǎn)被標(biāo)記為已訪問(wèn)。由于所有點(diǎn)都已經(jīng)被訪問(wèn),所以每個(gè)點(diǎn)都屬于某個(gè)簇或噪聲。


DBSCAN 與其他聚類算法相比有很多優(yōu)點(diǎn)。首先,它根本不需要固定數(shù)量的簇。它也會(huì)將異常值識(shí)別為噪聲,而不像均值漂移,即使數(shù)據(jù)點(diǎn)非常不同,也會(huì)簡(jiǎn)單地將它們分入簇中。另外,它能夠很好地找到任意大小和任意形狀的簇。


DBSCAN 的主要缺點(diǎn)是當(dāng)簇的密度不同時(shí),它的表現(xiàn)不如其他聚類算法。這是因?yàn)楫?dāng)密度變化時(shí),用于識(shí)別鄰域點(diǎn)的距離閾值 ε 和 minPoints 的設(shè)置將會(huì)隨著簇而變化。這個(gè)缺點(diǎn)也會(huì)在非常高維度的數(shù)據(jù)中出現(xiàn),因?yàn)榫嚯x閾值 ε 再次變得難以估計(jì)。


用高斯混合模型(GMM)的最大期望(EM)聚類


K-Means 的一個(gè)主要缺點(diǎn)是它對(duì)于聚類中心均值的簡(jiǎn)單使用。通過(guò)下面的圖,我們可以明白為什么這不是最佳方法。在左側(cè),可以非常清楚的看到有兩個(gè)具有不同半徑的圓形簇,以相同的均值作為中心。K-Means 不能處理這種情況,因?yàn)檫@些簇的均值是非常接近的。K-Means 在簇不是圓形的情況下也失敗了,同樣是由于使用均值作為聚類中心。

微信圖片_20180214223504.jpg


K-Means 的兩個(gè)失敗案例


高斯混合模型(GMMs)比 K-Means 給了我們更多的靈活性。對(duì)于 GMMs,我們假設(shè)數(shù)據(jù)點(diǎn)是高斯分布的;相對(duì)于使用均值來(lái)假設(shè)它們是圓形的,這是一個(gè)限制較少的假設(shè)。這樣,我們有兩個(gè)參數(shù)來(lái)描述簇的形狀:均值和標(biāo)準(zhǔn)差!以二維為例,這意味著,這些簇可以采取任何類型的橢圓形(因?yàn)槲覀冊(cè)?x 和 y 方向都有標(biāo)準(zhǔn)差)。因此,每個(gè)高斯分布被分配給單個(gè)簇。


為了找到每個(gè)簇的高斯參數(shù)(例如均值和標(biāo)準(zhǔn)差),我們將用一個(gè)叫做最大期望(EM)的優(yōu)化算法。請(qǐng)看下面的圖表,這是一個(gè)高斯適合于簇的例子。然后我們可以使用 GMMs 繼續(xù)進(jìn)行最大期望聚類的過(guò)程。



微信圖片_20180214223624.gif

使用 GMMs 的 EM 聚類


我們首先選擇簇的數(shù)量(如 K-Means 所做的),并隨機(jī)初始化每個(gè)簇的高斯分布參數(shù)。也可以通過(guò)快速查看數(shù)據(jù)來(lái)嘗試為初始參數(shù)提供一個(gè)好的猜測(cè)。但是請(qǐng)注意,正如上圖所看到的,這不是 100% 必要的,因?yàn)楦咚归_始時(shí)我們很窮,但是很快就得到了優(yōu)化。

給定每個(gè)簇的高斯分布,計(jì)算每個(gè)數(shù)據(jù)點(diǎn)屬于一個(gè)特定簇的概率。一個(gè)點(diǎn)越靠近高斯的中心,它就越可能屬于該簇。這應(yīng)該是很直觀的,因?yàn)閷?duì)于高斯分布我們假設(shè)大部分?jǐn)?shù)據(jù)更靠近簇的中心。

基于這些概率,我們計(jì)算一組新的高斯分布參數(shù)使得簇內(nèi)的數(shù)據(jù)點(diǎn)的概率最大化。我們使用數(shù)據(jù)點(diǎn)位置的加權(quán)和來(lái)計(jì)算這些新參數(shù),其中權(quán)重是數(shù)據(jù)點(diǎn)屬于該特定簇的概率。為了用可視化的方式解釋它,我們可以看一下上面的圖,特別是黃色的簇,我們以它來(lái)作為例子。分布在第一次迭代時(shí)隨即開始,但是我們可以看到大部分的黃點(diǎn)都在分布的右側(cè)。當(dāng)我們計(jì)算一個(gè)概率加權(quán)和時(shí),即使中心附近有一些點(diǎn),但它們大部分都在右側(cè)。因此,分布的均值自然會(huì)接近這些點(diǎn)。我們也可以看到大部分的點(diǎn)分布在「從右上到左下」。因此改變標(biāo)準(zhǔn)差來(lái)創(chuàng)建更適合這些點(diǎn)的橢圓,以便最大化概率加權(quán)和。

重復(fù)步驟 2 和 3 直到收斂,其中分布在迭代中的變化不大。


使用 GMMs 有兩個(gè)關(guān)鍵的優(yōu)勢(shì)。首先,GMMs 比 K-Means 在簇協(xié)方差方面更靈活;因?yàn)闃?biāo)準(zhǔn)差參數(shù),簇可以呈現(xiàn)任何橢圓形狀,而不是被限制為圓形。K-Means 實(shí)際上是 GMM 的一個(gè)特殊情況,這種情況下每個(gè)簇的協(xié)方差在所有維度都接近 0。第二,因?yàn)?GMMs 使用概率,所以每個(gè)數(shù)據(jù)點(diǎn)可以有很多簇。因此如果一個(gè)數(shù)據(jù)點(diǎn)在兩個(gè)重疊的簇的中間,我們可以簡(jiǎn)單地通過(guò)說(shuō)它百分之 X 屬于類 1,百分之 Y 屬于類 2 來(lái)定義它的類。即 GMMs 支持混合資格。


凝聚層次聚類


層次聚類算法實(shí)際上分為兩類:自上而下或自下而上。自下而上的算法首先將每個(gè)數(shù)據(jù)點(diǎn)視為一個(gè)單一的簇,然后連續(xù)地合并(或聚合)兩個(gè)簇,直到所有的簇都合并成一個(gè)包含所有數(shù)據(jù)點(diǎn)的簇。因此,自下而上層次聚類被稱為凝聚式層次聚類或 HAC。這個(gè)簇的層次用樹(或樹狀圖)表示。樹的根是收集所有樣本的唯一簇,葉是僅僅具有一個(gè)樣本的簇。在進(jìn)入算法步驟前,請(qǐng)看下面的圖例。

微信圖片_20180214223655.gif


凝聚式層次聚類


我們首先將每個(gè)數(shù)據(jù)點(diǎn)視為一個(gè)單一的簇,即如果我們的數(shù)據(jù)集中有 X 個(gè)數(shù)據(jù)點(diǎn),那么我們就有 X 個(gè)簇。然后,我們選擇一個(gè)測(cè)量?jī)蓚€(gè)簇之間距離的距離度量標(biāo)準(zhǔn)。作為例子,我們將用 average linkage,它將兩個(gè)簇之間的距離定義為第一個(gè)簇中的數(shù)據(jù)點(diǎn)與第二個(gè)簇中的數(shù)據(jù)點(diǎn)之間的平均距離。

在每次迭代中,我們將兩個(gè)簇合并成一個(gè)。這兩個(gè)要合并的簇應(yīng)具有最小的 average linkage。即根據(jù)我們選擇的距離度量標(biāo)準(zhǔn),這兩個(gè)簇之間的距離最小,因此是最相似的,應(yīng)該合并在一起。

重復(fù)步驟 2 直到我們到達(dá)樹根,即我們只有一個(gè)包含所有數(shù)據(jù)點(diǎn)的簇。這樣我們只需要選擇何時(shí)停止合并簇,即何時(shí)停止構(gòu)建樹,來(lái)選擇最終需要多少個(gè)簇!


層次聚類不需要我們指定簇的數(shù)量,我們甚至可以選擇哪個(gè)數(shù)量的簇看起來(lái)最好,因?yàn)槲覀冋跇?gòu)建一棵樹。另外,該算法對(duì)于距離度量標(biāo)準(zhǔn)的選擇并不敏感;他們都同樣表現(xiàn)很好,而對(duì)于其他聚類算法,距離度量標(biāo)準(zhǔn)的選擇是至關(guān)重要的。層次聚類方法的一個(gè)特別好的例子是當(dāng)基礎(chǔ)數(shù)據(jù)具有層次結(jié)構(gòu),并且你想要恢復(fù)層次時(shí);其他聚類算法不能做到這一點(diǎn)。與 K-Means 和 GMM 的線性復(fù)雜度不同,層次聚類的這些優(yōu)點(diǎn)是以較低的效率為代價(jià)的,因?yàn)樗哂?O(n3) 的時(shí)間復(fù)雜度。


圖團(tuán)體檢測(cè)(Graph Community Detection)


當(dāng)我們的數(shù)據(jù)可以被表示為一個(gè)網(wǎng)絡(luò)或圖(graph)時(shí),我們可以使用圖團(tuán)體檢測(cè)方法完成聚類。在這個(gè)算法中,圖團(tuán)體(graph community)通常被定義為一種頂點(diǎn)(vertice)的子集,其中的頂點(diǎn)相對(duì)于網(wǎng)絡(luò)的其它部分要連接得更加緊密。


也許最直觀的案例就是社交網(wǎng)絡(luò)。其中的頂點(diǎn)表示人,連接頂點(diǎn)的邊表示他們是朋友或互粉的用戶。但是,若要將一個(gè)系統(tǒng)建模成一個(gè)網(wǎng)絡(luò),我們就必須要找到一種有效連接各個(gè)不同組件的方式。將圖論用于聚類的一些創(chuàng)新應(yīng)用包括:對(duì)圖像數(shù)據(jù)的特征提取、分析基因調(diào)控網(wǎng)絡(luò)(gene regulatory networks)等。


下面是一個(gè)簡(jiǎn)單的圖,展示了最近瀏覽過(guò)的 8 個(gè)網(wǎng)站,根據(jù)他們的維基百科頁(yè)面中的鏈接進(jìn)行了連接。



微信圖片_20180214223843.jpg

這些頂點(diǎn)的顏色表示了它們的團(tuán)體關(guān)系,大小是根據(jù)它們的中心度(centrality)確定的。這些聚類在現(xiàn)實(shí)生活中也很有意義,其中黃色頂點(diǎn)通常是參考/搜索網(wǎng)站,藍(lán)色頂點(diǎn)全部是在線發(fā)布網(wǎng)站(文章、微博或代碼)。


假設(shè)我們已經(jīng)將該網(wǎng)絡(luò)聚類成了一些團(tuán)體。我們就可以使用該模塊性分?jǐn)?shù)來(lái)評(píng)估聚類的質(zhì)量。分?jǐn)?shù)更高表示我們將該網(wǎng)絡(luò)分割成了「準(zhǔn)確的(accurate)」團(tuán)體,而低分則表示我們的聚類更接近隨機(jī)。如下圖所示:



微信圖片_20180214223909.jpg

模塊性可以使用以下公式進(jìn)行計(jì)算:



微信圖片_20180214223936.jpg

其中 L 代表網(wǎng)絡(luò)中邊的數(shù)量,k_i 和 k_j 是指每個(gè)頂點(diǎn)的 degree,它可以通過(guò)將每一行和每一列的項(xiàng)加起來(lái)而得到。兩者相乘再除以 2L 表示當(dāng)該網(wǎng)絡(luò)是隨機(jī)分配的時(shí)候頂點(diǎn) i 和 j 之間的預(yù)期邊數(shù)。


整體而言,括號(hào)中的項(xiàng)表示了該網(wǎng)絡(luò)的真實(shí)結(jié)構(gòu)和隨機(jī)組合時(shí)的預(yù)期結(jié)構(gòu)之間的差。研究它的值可以發(fā)現(xiàn),當(dāng) A_ij = 1 且 ( k_i k_j ) / 2L 很小時(shí),其返回的值最高。這意味著,當(dāng)在定點(diǎn) i 和 j 之間存在一個(gè)「非預(yù)期」的邊時(shí),得到的值更高。


最后的 δc_i, c_j 就是大名鼎鼎的克羅內(nèi)克 δ 函數(shù)(Kronecker-delta function)。下面是其 Python 解釋:

微信圖片_20180214224007.jpg



通過(guò)以上公式可以計(jì)算圖的模塊性,且模塊性越高,該網(wǎng)絡(luò)聚類成不同團(tuán)體的程度就越好。因此通過(guò)最優(yōu)化方法尋找最大模塊性就能發(fā)現(xiàn)聚類該網(wǎng)絡(luò)的最佳方法。


組合學(xué)(combinatorics)告訴我們對(duì)于一個(gè)僅有 8 個(gè)頂點(diǎn)的網(wǎng)絡(luò),就存在 4140 種不同的聚類方式。16 個(gè)頂點(diǎn)的網(wǎng)絡(luò)的聚類方式將超過(guò) 100 億種。32 個(gè)頂點(diǎn)的網(wǎng)絡(luò)的可能聚類方式更是將超過(guò) 128 septillion(10^21)種;如果你的網(wǎng)絡(luò)有 80 個(gè)頂點(diǎn),那么其可聚類的方式的數(shù)量就已經(jīng)超過(guò)了可觀測(cè)宇宙中的原子數(shù)量。


因此,我們必須求助于一種啟發(fā)式的方法,該方法在評(píng)估可以產(chǎn)生最高模塊性分?jǐn)?shù)的聚類上效果良好,而且并不需要嘗試每一種可能性。這是一種被稱為 Fast-Greedy Modularity-Maximization(快速貪婪模塊性最大化)的算法,這種算法在一定程度上類似于上面描述的 agglomerative hierarchical clustering algorithm(集聚層次聚類算法)。只是 Mod-Max 并不根據(jù)距離(distance)來(lái)融合團(tuán)體,而是根據(jù)模塊性的改變來(lái)對(duì)團(tuán)體進(jìn)行融合。


下面是其工作方式:


首先初始分配每個(gè)頂點(diǎn)到其自己的團(tuán)體,然后計(jì)算整個(gè)網(wǎng)絡(luò)的模塊性 M。

第 1 步要求每個(gè)團(tuán)體對(duì)(community pair)至少被一條單邊鏈接,如果有兩個(gè)團(tuán)體融合到了一起,該算法就計(jì)算由此造成的模塊性改變 ΔM。

第 2 步是取 ΔM 出現(xiàn)了最大增長(zhǎng)的團(tuán)體對(duì),然后融合。然后為這個(gè)聚類計(jì)算新的模塊性 M,并記錄下來(lái)。

重復(fù)第 1 步和 第 2 步——每一次都融合團(tuán)體對(duì),這樣最后得到 ΔM 的最大增益,然后記錄新的聚類模式及其相應(yīng)的模塊性分?jǐn)?shù) M。

當(dāng)所有的頂點(diǎn)都被分組成了一個(gè)巨型聚類時(shí),就可以停止了。然后該算法會(huì)檢查這個(gè)過(guò)程中的記錄,然后找到其中返回了最高 M 值的聚類模式。這就是返回的團(tuán)體結(jié)構(gòu)。


團(tuán)體檢測(cè)(community detection)是現(xiàn)在圖論中一個(gè)熱門的研究領(lǐng)域,它的局限性主要體現(xiàn)在會(huì)忽略一些小的集群,且只適用于結(jié)構(gòu)化的圖模型。但這一類算法在典型的結(jié)構(gòu)化數(shù)據(jù)中和現(xiàn)實(shí)網(wǎng)狀數(shù)據(jù)都有非常好的性能。


結(jié)語(yǔ)


以上就是數(shù)據(jù)科學(xué)家應(yīng)該知道的 6 大聚類算法!我們將以展示各類算法的可視化效果結(jié)束本文! 



微信圖片_20180214224031.jpg

原文鏈接:https://towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68



本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。