StatQuest學(xué)習(xí)筆記17——聚類

前言

這篇筆記是StatQuest系列教程的第47沾谓,48,49節(jié)冷离。第47節(jié)與第48節(jié)有很在一部分內(nèi)容是重復(fù)的,主要講的是層次聚類纯命,第49節(jié)講提K-means聚類。

熱圖簡(jiǎn)單案例

平時(shí)在讀一個(gè)測(cè)序文章時(shí)痹栖,我們可能會(huì)經(jīng)骋诠看到熱圖,就像現(xiàn)在的這種圖:

image

現(xiàn)在我們來(lái)解釋一下這張圖:

  1. 這是一張熱圖(heatmap)揪阿,為什么要叫熱圖呢疗我,因?yàn)樗貌煌念伾珌?lái)表示數(shù)值的大小,通常來(lái)說(shuō)南捂,用暖色(紅色)表示數(shù)值大吴裤,冷色(藍(lán)色)表示數(shù)值小。
  2. 這個(gè)熱圖的行(row)是基因名(可能太小看不清楚)溺健,列是RNA-seq的樣本名麦牺。
  3. 當(dāng)原始數(shù)據(jù)通過(guò)熱圖來(lái)展現(xiàn)時(shí),數(shù)據(jù)經(jīng)過(guò)了兩種修飾來(lái)展示出來(lái)鞭缭。第一種修飾就是相對(duì)豐度(relative abundances)剖膳,以這種方式展示的數(shù)據(jù),它研究的是一個(gè)基因在不同樣本中的相對(duì)表達(dá)情況岭辣,這種展示方式吱晒,需要對(duì)同一行(也就是相同的基因在不同樣本中的表達(dá)水平)的數(shù)據(jù)進(jìn)行縮放(scaled),也就是Z轉(zhuǎn)換沦童。從下面的圖中仑濒,我們就可以看到,樣本1的某基因表達(dá)量明顯高于其它樣本(因?yàn)闃颖?的顏色最紅偷遗,根據(jù)圖例墩瞳,它的表達(dá)值就最高),如下所示:
image

為了方便理解鹦肿,我隨手用Excel做了一下簡(jiǎn)陋的熱圖矗烛,如下所示:

image

可以看出,基因4在樣本1中的表達(dá)量很高箩溃。不過(guò)按照第一種展示數(shù)據(jù)的方式瞭吃,無(wú)法比較不同基因的表達(dá)水平差異,例如涣旨,在上圖的黑色方框中歪架,基因4顯紅色,這只能表達(dá)霹陡,樣本1中基因4的表達(dá)水平比其它的樣本高和蚪,不能說(shuō)明樣本1中的其它基因(例如基因3)的水平也比其它樣本高止状,這種數(shù)據(jù)的展示方式只用于研究同一個(gè)基因在不同的樣本中的表達(dá)水平差異。

第二處修飾后的展示方式就是根據(jù)這些基因表達(dá)的相似性攒霹,把它們放到一塊怯疤,如下所示:

image

再看下面的圖形:

image

從上到下,我們可以看到這些基因的表達(dá)的模式催束。

在第一個(gè)紫紅色的方框中集峦,我們可以看到,這些基因在第2個(gè)樣本中表達(dá)水平最高抠刺,而在第4個(gè)樣本中表達(dá)水平最低塔淤。

在第二個(gè)黑色的方框中,我們可以看到速妖,這些基因在第1個(gè)樣本中表達(dá)水平最高高蜂,而在第4個(gè)樣本中表達(dá)水平最低。

在第三個(gè)橙色方框中中罕容,我們可以看到备恤,這些基因在第2個(gè)樣本中的表達(dá)水平最高,而在第3個(gè)棲中的表達(dá)水平最低锦秒。

根據(jù)不同基因表達(dá)模式的相似性進(jìn)行的“聚類”(clustering)并不是偶然的烘跺,而是通過(guò)一定的算法實(shí)現(xiàn)的,這些算法會(huì)將那些表達(dá)模式類似的基因放到一塊脂崔,如下所示:

image

如果不進(jìn)行聚類(clustering)滤淳,那么用熱圖展示出來(lái)就是下圖右邊的那個(gè)樣子,如下所示:

image

如果熱圖中既不進(jìn)行聚類(clustering)砌左,也不進(jìn)行縮放(scaling)脖咐,那么熱圖就變成了如下的這個(gè)樣子:

image

從圖上我們可以看到,紅色部分的這個(gè)基因表達(dá)水平最高(比其他的基因表達(dá)高太多了)汇歹,可以把它視為一個(gè)異常值屁擅。

熱圖復(fù)雜案例

現(xiàn)在我們?cè)倏匆幌卤容^復(fù)雜的熱圖案例,如下所示:

image

從這個(gè)圖的標(biāo)題上我們可以看出产弹,這個(gè)貌似是一個(gè)結(jié)腸的單細(xì)胞測(cè)序數(shù)據(jù)的熱圖派歌。這個(gè)熱圖的數(shù)據(jù)經(jīng)過(guò)了縮放(scaled)與聚類(clustered),它的縮放是全局的痰哨,因此胶果,這一組數(shù)據(jù)中并沒(méi)有異常值,這里的縮放要與前面熱圖的縮放區(qū)分開(kāi)來(lái)斤斧,前面的前面是按照某個(gè)基因進(jìn)行縮放的早抠,也就是把同一行的數(shù)據(jù)當(dāng)成整體,進(jìn)行了縮放(也就是z轉(zhuǎn)換)撬讽,而這個(gè)數(shù)據(jù)是把所有的數(shù)據(jù)當(dāng)作整體蕊连,進(jìn)行縮放悬垃。

再看聚類。這個(gè)熱圖的聚類是按照列(column甘苍,也就是樣本)和行(row尝蠕,也就是基因)同時(shí)進(jìn)行的聚類,如下所示:

image

在上圖中载庭,我們可以看到趟佃,縱矩形的部分表示基因表達(dá)模式相似的樣本聚在了一起,橫矩形表示的是昧捷,表達(dá)模式相似的基因聚集在了一起。它們的交集表示罐寨,這些樣本的基因表達(dá)模式相似靡挥,以及有哪些基因相似。

如果不進(jìn)行聚類鸯绿,也不進(jìn)行數(shù)據(jù)縮放(scaling)跋破,那么下圖的右上表示的就是不聚類的熱圖,右下表示的就是即不進(jìn)行聚類瓶蝴,又不進(jìn)行縮放的熱圖毒返,如下所示:

image

此時(shí)我們?cè)倩氐角懊娴哪莻€(gè)簡(jiǎn)單熱圖案例中來(lái),我們?cè)囅胍粋€(gè)問(wèn)題舷手,在那張熱圖中拧簸,如果我們對(duì)所有的基因進(jìn)行整體的縮放(global scaling),而非單個(gè)基因的縮放男窟,那么這個(gè)熱圖會(huì)怎么樣盆赤,我們看下圖:

image

經(jīng)過(guò)全局縮放(global scaling)后,得到下面的圖形歉眷,如下所示:

image

此時(shí)牺六,我們會(huì)發(fā)現(xiàn),這些聚類的結(jié)果就會(huì)發(fā)生了改變汗捡,并且新生成的圖形中出面了異常高的熱圖淑际,它是異常值,這個(gè)異常值會(huì)導(dǎo)致熱圖整體上出來(lái)嚴(yán)重的偏離扇住,并且不容易觀察基因的變化春缕,如下所示:

image

因此,我們從上面的結(jié)果可以知道艘蹋,縮放(scaling)會(huì)影響兩個(gè)結(jié)果淡溯,第一,不同表達(dá)水平基因的顏色簿训,這會(huì)影響你比較不同樣本中的相同基因的表達(dá)水平咱娶,第二米间,影響聚類(clustering),如下所示:

image

如何對(duì)數(shù)據(jù)進(jìn)行縮放(scale)

此時(shí)膘侮,我們?cè)倩氐綌?shù)據(jù)的縮放這個(gè)話題上屈糊,無(wú)論你對(duì)相同基因在不同樣本中進(jìn)行縮放,還是對(duì)全局的基因進(jìn)行縮放琼了,最常用的方法就是Z值縮放法(Z-Score Scaling)逻锐,如下所示:

image

接著,我們具體看一下這種方法是如何實(shí)現(xiàn)數(shù)據(jù)的縮放的雕薪。在下圖中昧诱,我們看到一個(gè)數(shù)軸上分布了幾個(gè)樣本的reads數(shù),如下所示:

image

第一步:計(jì)算其均值(均值為16.5)所袁,如下所示:

image

第二步:每個(gè)樣本的數(shù)值減去均值盏档,此時(shí),如果這個(gè)數(shù)值大燥爷,就表示此樣本的某基因轉(zhuǎn)錄水平高蜈亩;如果數(shù)值小,就表示此樣本的某基因轉(zhuǎn)錄水平低前翎,如下所示:

image

第三步:計(jì)算標(biāo)準(zhǔn)差(標(biāo)準(zhǔn)差為6.28)稚配;

第四步:將第2步中的數(shù)值除以標(biāo)準(zhǔn)差,如下所示:

image

經(jīng)過(guò)上述的處理后港华,無(wú)論原始數(shù)據(jù)的變異程度如何道川,這些數(shù)據(jù)的范圍最終會(huì)縮小,之所以這樣處理立宜,就是因?yàn)槿绻紨?shù)據(jù)之間差異過(guò)大愤惰,那么不同基因表達(dá)水平就會(huì)變化程度(more subtle)更高的色度(shade)來(lái)表示,經(jīng)過(guò)這樣的處理赘理,用較小程度的色度(shade)就能表示出基因水平的差異宦言,方便觀察,如下所示:

image

此時(shí)商模,我們可能會(huì)遇到這樣的一種情況奠旺,例如,如果數(shù)據(jù)中出現(xiàn)異常值時(shí)施流,數(shù)據(jù)會(huì)怎么樣响疚,就像下面的這個(gè)樣子:

image

此時(shí)如果進(jìn)行Z轉(zhuǎn)換的話,標(biāo)準(zhǔn)差會(huì)很大瞪醋,也就是Z值的分子會(huì)很大忿晕,最終得到的值會(huì)有一部分集中在0附近,只能用很少的色度來(lái)進(jìn)行區(qū)分银受,如下所示:

image

例如践盼,我們?nèi)绻捎萌挚s放來(lái)處理原始數(shù)據(jù)中鸦采,在第一個(gè)案例中,我們就會(huì)得到下面這樣的圖形咕幻,其中有一個(gè)基因明顯表達(dá)水平非常高渔伯,使得其它的基因差異很難看出來(lái),如下所示:

image

如何聚類

原始數(shù)據(jù)經(jīng)過(guò)縮放后(scaling)肄程,此時(shí)就可以進(jìn)行聚類了锣吼,聚類有2種方法,分別是層次聚類(hierarchical clustering)和K-均值(K-means)聚類蓝厌,我們先講層次聚類(hierarchical clustering)玄叠,如下所示:

image

層次聚類(hierarchical clustering)

先看一個(gè)簡(jiǎn)單的案例,在這個(gè)案例中拓提,有3個(gè)樣本读恃,每個(gè)樣本4個(gè)基因,如下所示:

image

這種聚類方法的思路是這樣的:

第一步崎苗,計(jì)算出哪些基因與基因1最為接近,基因2明顯與基因1表達(dá)模式不同舀寓,基因3與基因1的表達(dá)形式比較類似胆数,基因4與基因1的表達(dá)模式也比較類似,但是互墓,在這幾個(gè)基因中必尼,與基因1表達(dá)模式最接近的還是基因3,如下所示:

image

第二步篡撵,計(jì)算出哪些基因的表達(dá)模式與基因2最為接近(然后是基因3判莉,基因4),經(jīng)計(jì)算發(fā)現(xiàn)育谬,基因4與基因2的表達(dá)模式最相似券盅,如下所示:

image

第三步,我們?cè)谇懊嬲业交?和基因3的表達(dá)模式相似膛檀,基因2和基因4的表達(dá)模式相似锰镀,但是,基因1和基因3的相似程度要比基因2和基因4的相似程度高咖刃,我們把前面的組合(基因1和基因3)放到一個(gè)簇(cluster)中泳炉,如下所示:

image

第四步:此時(shí)再回到第一步,把基因1和基因3構(gòu)成的簇(Cluster # 1)當(dāng)作一個(gè)基因嚎杨,然后再按照第二步花鹅,第三步來(lái)計(jì)算,經(jīng)計(jì)算枫浙,此時(shí)刨肃,基因2和基因4最相似古拴,把它們?cè)俜诺揭粋€(gè)簇中(Cluster #2),如下所示:

image

通常情況下之景,層次聚類(Hierarchical Clustering)通常會(huì)用一個(gè)樹(shù)形圖(dendrogram)連接起來(lái)斤富,用于表明聚類成員之間的相似性和聚類次序,如下所示:

image

在右側(cè)的樹(shù)形中锻狗,我們可以發(fā)現(xiàn)满力,Cluster #1是最先形成的聚類,它們的相似性最高轻纪,如下所示:

image

Cluster #2是第二個(gè)形成的聚類油额,它們的相似性次高,如下所示:

image

而第三個(gè)聚類Cluster #3則包含了所有的基因刻帚,它是最后形成的潦嘶,如下所示:

image

層次聚類的原理

前面我們提到過(guò),層次聚類的第一步就是計(jì)算兩組基因的相似性崇众,此時(shí)我們?cè)敿?xì)介紹一下如何進(jìn)行計(jì)算掂僵。

在計(jì)算相似性方面并沒(méi)有一個(gè)統(tǒng)計(jì)的標(biāo)準(zhǔn),但有一些常用的手段顷歌。第一種計(jì)算相似性的方法就是歐氏距離(Euclidian distance)锰蓬,如下所示:

image

為了簡(jiǎn)單地說(shuō)明歐氏距離(Euclidian distance),我們以最簡(jiǎn)單的例子來(lái)說(shuō)明眯漩,在這個(gè)例子中芹扭,有2個(gè)樣本,每個(gè)樣本有2個(gè)基因赦抖,然后兩個(gè)樣本的相同基因的差值的平方相加舱卡,并開(kāi)平方,得到的數(shù)值就是歐氏距離队萤,如下所示:

image

除了歐氏距離可以計(jì)算相似性外轮锥,還可以使用曼哈頓距離(Manhattan distance)和坎貝拉距離(Canberra distance)來(lái)計(jì)算相似性,其中曼哈頓距離只是不同樣本之間相同基因差值的絕對(duì)值之和要尔,如下所示:

image

我們看一下用不同的方法計(jì)算相似性的區(qū)別交胚,下圖的左側(cè)圖使用的歐氏距離(Euclidian distance)來(lái)得到的熱圖,右圖使用的是曼哈頓距離(Manhattan distance)得到的熱圖盈电,如下所示:

image

從圖上來(lái)看蝴簇,使用這兩種不同的相似性計(jì)算方法得到的熱圖略有差異,具體要使用哪種方法來(lái)計(jì)算相似性匆帚,并沒(méi)有一個(gè)統(tǒng)計(jì)的標(biāo)準(zhǔn)熬词,它們也沒(méi)有什么生物學(xué)意義。

此時(shí),我們?cè)倩氐皆瓉?lái)的案例中來(lái)互拾,在前面部分中我們提到歪今,基因1和基因3的相似程度最高,把它們都放到一個(gè)簇(Cluster #1)中颜矿,此時(shí)寄猩,我們?nèi)绾斡?jì)算Cluster #1和基因2,基因4的相似性呢骑疆?有幾種方法田篇。

其中最簡(jiǎn)單的一種方法就是求出Cluster #1中的兩個(gè)基因的平均值,然后進(jìn)行計(jì)算箍铭。但還有其它的方法泊柬,這些方法同樣會(huì)影響聚類,如下所示:

image

為了簡(jiǎn)單地說(shuō)明簇(Cluster #1)與其它基因相似性計(jì)算的問(wèn)題诈火,我們假設(shè)有一批數(shù)據(jù)兽赁,分布在X-Y軸上,此時(shí)冷守,我們已經(jīng)生成了2個(gè)簇刀崖,如下所示:

image

此時(shí),我們僅需要計(jì)算最后一個(gè)點(diǎn)屬于哪個(gè)簇拍摇,如下所示:

image

此時(shí)我們可以采用以下這些方法進(jìn)行計(jì)算:

第一亮钦,計(jì)算這個(gè)點(diǎn)與兩個(gè)簇平均值的距離(centroid),如下所示:

image

第二授翻,計(jì)算這個(gè)點(diǎn)到兩個(gè)簇最近的點(diǎn)的距離(single-linkage)或悲,如下所示:

image

第三孙咪,計(jì)算這個(gè)點(diǎn)到兩個(gè)簇中最遠(yuǎn)的點(diǎn)的距離(complete-linkage)堪唐,如下所示:

image

我們用前面的單細(xì)胞測(cè)序的熱圖來(lái)說(shuō)明一下這三種方法,從左到右分別是:某點(diǎn)到某簇最遠(yuǎn)點(diǎn)的距離(在R中默認(rèn)的就是這個(gè)選項(xiàng))翎蹈,某點(diǎn)到某簇均值的距離淮菠,某點(diǎn)到某簇最近的點(diǎn)的距離,如下所示:

image

K-means聚類

什么是K-means

先看一個(gè)場(chǎng)景荤堪,例如我們手中有這樣的一批數(shù)據(jù)合陵,把它們繪制到一個(gè)數(shù)軸上,此時(shí)你的目的就是把它們分成3個(gè)簇(cluster)澄阳,這三個(gè)數(shù)據(jù)或許是來(lái)源于三種不同的細(xì)胞或都是三種不同的腫瘤拥知,如下所示:

image

我們僅從肉眼觀察,就知道這一批數(shù)據(jù)明顯可以分成3個(gè)簇碎赢,但是低剔,如果我們不用肉眼來(lái)觀察,用計(jì)算機(jī)來(lái)計(jì)算,如何得到這3個(gè)簇呢襟齿?此時(shí)就需要用到一種算法姻锁,即K-means聚類,如下所示:

image

K-means的基本思想

此時(shí)猜欺,我們先了解一下K-means聚類的基本思想位隶。

第一步:選擇你要聚類的個(gè)數(shù),K-means聚類中的這個(gè)K就是你要聚類的數(shù)目的意思开皿,此時(shí)涧黄,你們選擇K=3,這也就是說(shuō)副瀑,我們想把這些數(shù)據(jù)取成3個(gè)簇(cluster)弓熏,對(duì)這個(gè)K值如何選擇,我們后文會(huì)提到糠睡,如下所示:

image

第二步挽鞠,隨機(jī)選擇3個(gè)不同的數(shù)據(jù)點(diǎn)當(dāng)成3個(gè)簇,如下所示:

image

第三步:計(jì)算第1個(gè)點(diǎn)到這三個(gè)簇的距離狈孔,先計(jì)算第1個(gè)點(diǎn)到藍(lán)簇的距離信认,如下所示:

image

接著,計(jì)算第1個(gè)點(diǎn)到綠簇的距離均抽,如下所示:

image

最后嫁赏,計(jì)算第1個(gè)點(diǎn)到橘黃簇的距離,如下所示:

image

第四步:將第1個(gè)點(diǎn)歸于離它最近的簇油挥,在這個(gè)案例中潦蝇,第1個(gè)點(diǎn)就屬于藍(lán)簇,如下所示:

image

接著深寥,重復(fù)前面的步驟攘乒,只是這次計(jì)算的第2個(gè)點(diǎn),第2個(gè)點(diǎn)最終的計(jì)算結(jié)果它屬于綠簇惋鹅,如下所示:

image

再計(jì)算第3個(gè)點(diǎn)则酝,它屬于橘黃簇,如下所示:

image

經(jīng)過(guò)最終計(jì)算闰集,第3個(gè)點(diǎn)到最后的點(diǎn)都屬于橘黃簇沽讹,如下所示:

image

此時(shí),所有的點(diǎn)都進(jìn)行了聚類武鲁,如下所示:

image

第五步:計(jì)算每個(gè)簇的均值爽雄,如下所示:

image

此時(shí),我們還按照前面的方法沐鼠,計(jì)算每個(gè)點(diǎn)到這三個(gè)簇的均值的距離挚瘟,如下所示:

image

最終計(jì)算結(jié)果如下所示:

image

經(jīng)過(guò)最終的計(jì)算,我們發(fā)現(xiàn),這些聚類結(jié)果并沒(méi)有發(fā)生改變刽沾,如下所示:

image

也就是說(shuō)本慕,K-means的聚類結(jié)果似乎比我們?nèi)庋圻M(jìn)行的聚類的結(jié)果還要差,如下所示:

image

此時(shí)侧漓,我們需要對(duì)聚類的結(jié)果進(jìn)行評(píng)估锅尘,其方法就是計(jì)算每個(gè)簇的變異,如下所示:

image

由于K-means的聚類過(guò)程并不能“看”到最佳的聚類布蔗,只能追蹤這些簇與這些簇的總變異藤违,然后通過(guò)不斷更改起始的數(shù)據(jù)點(diǎn)進(jìn)行迭代。

此時(shí)我們回到起點(diǎn)纵揍,再將隨機(jī)選擇3個(gè)初始數(shù)據(jù)點(diǎn)作為初始的簇蟋滴,按照前面同樣的自救茂卦,計(jì)算剩余的點(diǎn)到這三個(gè)簇的距離恩掷,計(jì)算每個(gè)簇的均值帚桩,然后基于新的均值進(jìn)行聚類,直接這些簇不再改變?yōu)橹拱杀ⅲ缦滤荆?/p>

image

計(jì)算的結(jié)果如下所示骨杂,此時(shí)這些數(shù)據(jù)已經(jīng)進(jìn)行了聚類,再計(jì)算這三個(gè)簇的變異雄卷,如下所示:

image

這一輪迭代結(jié)束搓蚪,然后再來(lái)一輪,如下所示:

image

我們把這三次的聚類結(jié)果放一塊兒丁鹉,我們可以發(fā)現(xiàn)妒潭,第二次的聚類結(jié)果最好,如下所示:

image

但是我們并不清楚這個(gè)結(jié)果是不是所有可能的聚類結(jié)果中最好的(總變異最写铡)雳灾,因此我們需要進(jìn)行更多次的聚類,然后才能下結(jié)論拂盯。

此時(shí)我們提出一個(gè)問(wèn)題佑女,K值應(yīng)該如何選记靡?在這個(gè)案例中谈竿,明顯可以知道K值為3,但是摸吠,有的時(shí)候空凸,這個(gè)K值并不像本案例中這么明顯,如下所示:

image

其中一種確定K值的方法就是不斷地使用不同的K值寸痢,如下所示:

image

我們先使用K=1這個(gè)數(shù)值呀洲,通過(guò)計(jì)算總的變異程度,明顯這個(gè)結(jié)果不行,如下所示:

image

再使用K=2道逗,此時(shí)我們計(jì)算一下總變異兵罢,這個(gè)結(jié)果比K=1的時(shí)候要好一些,如下所示:

image

接著滓窍,我們使用K=3卖词,通過(guò)計(jì)算它的總變異,我們發(fā)現(xiàn)K=3的結(jié)果要比K=2更好吏夯,因?yàn)樗目傋儺惛痛蓑冢缦滤荆?/p>

image

再繼續(xù),使K=4噪生,我們發(fā)現(xiàn)裆赵,K=4的總變異比K=3的總變異還要小,如下所示:

image

從前面的這些計(jì)算結(jié)果來(lái)看跺嗽,我們能總結(jié)出一個(gè)規(guī)律战授,每當(dāng)我們添加一個(gè)新的簇時(shí),總變異就會(huì)降低桨嫁,當(dāng)簇的數(shù)目等于總的數(shù)據(jù)點(diǎn)的數(shù)目時(shí)陈醒,總變異就是0,如下所示:

image

如果我們把K值與變異降低的程度繪制成曲線瞧甩,那么就能得到下面的這條曲線:

image

從這個(gè)曲線上我們可以看到钉跷,當(dāng)K=3時(shí),它之后的K值每增加1肚逸,總變異的降低幅度就沒(méi)有前面的快爷辙,我們把K=3這個(gè)點(diǎn)稱為拐點(diǎn)(elbow plot)。

K-mean聚類與層次聚類的區(qū)別

此時(shí)朦促,我們?cè)偬岢鲆粋€(gè)問(wèn)題:K-mean聚類與層次聚類有什么區(qū)別膝晾?

K-means聚類會(huì)把數(shù)據(jù)聚成你所期望的簇的數(shù)目,而層次聚類則中介告訴你务冕,哪兩個(gè)數(shù)據(jù)是最相似的血当,如下所示:

image

二維坐標(biāo)的K-means

如果我們的數(shù)據(jù)無(wú)法繪制到一條數(shù)軸上時(shí),如何進(jìn)行K-means聚類呢禀忆,如下所示:

image

這種情況下臊旭,它的聚類原理跟一維數(shù)軸的原理一樣,第一步就是隨機(jī)找到三個(gè)點(diǎn)(前提是你想聚成3個(gè)簇)箩退,如下所示:

image

然后离熏,計(jì)算不同的點(diǎn)到這三個(gè)簇的歐氏距離(Euclidean distance),在二維坐標(biāo)中戴涝,計(jì)算這個(gè)歐氏距離就是采用勾股定理滋戳,如下所示:

image

接著钻蔑,就像前面講的那樣,距離最近的就屬于某個(gè)簇奸鸯,如下所示:

image

第一次的聚類結(jié)果如下所示:

image

再接著咪笑,我們會(huì)像前面是找到的那樣,計(jì)算出每個(gè)族的中心點(diǎn)(也就是均值)娄涩,然后再聚類蒲肋,如下所示:

image

最后,得到比較滿意的聚類圖钝满,如下所示:

image

熱圖的K-means

如果我們的數(shù)據(jù)是熱圖兜粘,那么如何進(jìn)行K-means聚類呢?

為了方便描述弯蚜,我們就以下面的案例說(shuō)明一下孔轴,兩個(gè)樣本(sample 1和sample 2),分別有4個(gè)基因碎捺,現(xiàn)在把這兩個(gè)樣本分別命令為X路鹰,Y,把它們的基因放到二維坐標(biāo)軸上收厨,如下所示:

image

然后像前面那樣進(jìn)行聚類晋柱,如下所示:

image

事實(shí)上,在實(shí)際的計(jì)算過(guò)程中诵叁,我們并不需要把數(shù)據(jù)投射到二維坐標(biāo)上雁竞,只用計(jì)算不同樣本之間的距離即可,例如歐氏距離拧额,如下所示:

image

R的kmeans()函數(shù)備注

在R中碑诉,進(jìn)行K-menas聚類的函數(shù)是kmeans(),它有一些注意事項(xiàng)侥锦。

  1. 此函數(shù)會(huì)對(duì)每個(gè)距離加上權(quán)重进栽,因此那些大簇(large clusters)的權(quán)重要略高于小簇(small clusters)的權(quán)重。
  2. 默認(rèn)情況下恭垦,此函數(shù)只有一組原始的簇快毛,如果你要使用多個(gè)不同的起始數(shù)據(jù)點(diǎn),那么你需要設(shè)定參數(shù)nclust=25或者是25左右的數(shù)字番挺,例如(kmans(data, k=3, nclust=25))唠帝。

如下所示:

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市建芙,隨后出現(xiàn)的幾起案子没隘,更是在濱河造成了極大的恐慌懂扼,老刑警劉巖禁荸,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件右蒲,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡赶熟,警方通過(guò)查閱死者的電腦和手機(jī)瑰妄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)映砖,“玉大人间坐,你說(shuō)我怎么就攤上這事∫赝耍” “怎么了竹宋?”我有些...
    開(kāi)封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)地技。 經(jīng)常有香客問(wèn)我蜈七,道長(zhǎng),這世上最難降的妖魔是什么莫矗? 我笑而不...
    開(kāi)封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任飒硅,我火速辦了婚禮,結(jié)果婚禮上作谚,老公的妹妹穿的比我還像新娘三娩。我一直安慰自己,他們只是感情好妹懒,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布雀监。 她就那樣靜靜地躺著,像睡著了一般眨唬。 火紅的嫁衣襯著肌膚如雪滔悉。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天单绑,我揣著相機(jī)與錄音回官,去河邊找鬼。 笑死搂橙,一個(gè)胖子當(dāng)著我的面吹牛歉提,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播区转,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼苔巨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了废离?” 一聲冷哼從身側(cè)響起侄泽,我...
    開(kāi)封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜻韭,沒(méi)想到半個(gè)月后悼尾,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體柿扣,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年闺魏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了未状。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡析桥,死狀恐怖司草,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情泡仗,我是刑警寧澤埋虹,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站娩怎,受9級(jí)特大地震影響吨岭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜峦树,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一辣辫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧魁巩,春花似錦急灭、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至肾扰,卻和暖如春畴嘶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背集晚。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工窗悯, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人偷拔。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓蒋院,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親莲绰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子欺旧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容