拓端tecdat:R語(yǔ)言KMEANS均值聚類和層次聚類:亞洲國(guó)家地區(qū)生活幸福質(zhì)量異同可視化分
原文鏈接:http://tecdat.cn/?p=24198
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
簡(jiǎn)介
《世界幸福報(bào)告》是可持續(xù)發(fā)展解決方案網(wǎng)絡(luò)的年度報(bào)告,該報(bào)告使用蓋洛普世界民意調(diào)查的調(diào)查結(jié)果研究了150多個(gè)國(guó)家/地區(qū)的生活質(zhì)量。報(bào)告的重點(diǎn)是幸福的社交環(huán)境。在本項(xiàng)目中,我將使用世界幸福報(bào)告中的數(shù)據(jù)來(lái)探索亞洲22個(gè)國(guó)家或地區(qū),并通過(guò)查看每個(gè)國(guó)家的階梯得分,社會(huì)支持,健康的期望壽命,自由選擇生活,慷慨,對(duì)腐敗的看法以及人均GDP,來(lái)探索亞洲22個(gè)國(guó)家的相似和不同之處。我將使用兩種聚類方法,即k均值和層次聚類,以及輪廓分析來(lái)驗(yàn)證每種聚類方法。
將要分析的國(guó)家和地區(qū)是:
asia <- w filer(gepl('Asia', Rgion)

探索性數(shù)據(jù)分析
相關(guān)矩陣
pair(aia[,-c(1,2)], sal=TUE,col,hst.ol)

階梯得分,社會(huì)支持,生活選擇的自由以及對(duì)腐敗的看法的分布是左偏的。
慷慨和人均GDP的分布是右偏的。
健康期望壽命的偏差大約是對(duì)稱的。
兩者之間存在很強(qiáng)的正相關(guān)關(guān)系:
階梯分?jǐn)?shù)和社會(huì)支持
健康期望壽命和人均GDP
之間存在強(qiáng)烈的負(fù)相關(guān)關(guān)系:
對(duì)腐敗的看法和人均GDP
之間存在中等正相關(guān):
階梯得分和健康期望壽命
社會(huì)支持與健康期望壽命
人均GDP較高的國(guó)家往往對(duì)腐敗的看法較低,對(duì)健康的期望壽命,社會(huì)支持和階梯得分較高。
國(guó)家和地區(qū)比較
grd.rrnge(
ggplt(sia, es(rerder(x=fctor(國(guó)家名稱), 階梯得分, FN=min),
y=階梯得分, fill=區(qū)域指標(biāo))))

東亞國(guó)家的階梯得分較高,期望壽命健康,人均GDP較高且慷慨度較低。
南亞國(guó)家的階梯得分,社會(huì)支持,健康的期望壽命和人均GDP往往較低。
東南亞國(guó)家往往有很高的自由度,可以選擇生活和慷慨解囊。
scterhst(
aia, x = "社會(huì)支持", y = "階梯得分",
clor = "區(qū)域指標(biāo)"
titl = "階梯得分與社會(huì)支持"
)

南亞的社會(huì)支持中位數(shù),階梯得分和人均GDP最低。
東亞的社會(huì)支持中位數(shù),階梯得分,人均GDP和健康的期望壽命最高。
東南亞的平均健康壽命中位數(shù)最低,對(duì)腐敗的中位數(shù)最高。
東南亞的人均GDP很高,期望壽命健康,對(duì)腐敗的看法也很低(新加坡)。
東亞有離群點(diǎn)樣本對(duì)政府的了解低(香港)。
聚類分析
這些國(guó)家會(huì)屬于不同的群體嗎?在本節(jié)中,我們將使用聚類(一種無(wú)監(jiān)督的學(xué)習(xí)方法,該方法基于相似性對(duì)對(duì)象進(jìn)行分組)來(lái)找到國(guó)家組,其中組內(nèi)的國(guó)家相似。我將使用兩種方法進(jìn)行聚類:分層聚類和K-Means聚類。首先,我們?nèi)绾巫R(shí)別這些群體?衡量對(duì)象之間相似性的一種方法是測(cè)量對(duì)象之間的數(shù)學(xué)距離。一種常見(jiàn)的距離度量是歐幾里得距離。
歐氏距離
我們將使用歐幾里得距離找到彼此最相似的國(guó)家,并將它們分組在一起。
aply(z,2,mean) # 計(jì)算列的平均值
aply(z,2,sd) # 計(jì)算列的標(biāo)準(zhǔn)差
scale(z,ceter=means,scae=sds) # 標(biāo)準(zhǔn)化
# 計(jì)算距離矩陣
dsae = dit(nor) # 計(jì)算歐幾里得的距離
?歐幾里得距離矩陣為:

似乎國(guó)家2(新加坡)和國(guó)家22(阿富汗)彼此最不相似。
15國(guó)(中國(guó))和11國(guó)(越南)彼此最相似。
我們?nèi)绾芜x擇最佳聚類數(shù)?
肘法
for (i in 2:20) ws<- sum(kmens(nr, cetrs=i)$wthns)

我們的目標(biāo)是減少聚類內(nèi)部的變異性,以便將相似的對(duì)象分組在一起,并增加聚類之間的變異性,以使相異的對(duì)象相距甚遠(yuǎn)。WSS(在組平方和內(nèi)),它在聚類變化內(nèi)進(jìn)行度量,
在WSS圖中,聚類數(shù)位于x軸上,而WSS位于y軸上。高的WSS值意味著聚類中的變化很大,反之亦然。我們看到,在1、2和3個(gè)聚類之后,WSS的下降很大。但是,在4個(gè)聚類之后,WSS的下降很小。因此,聚類的最佳數(shù)目為k = 4(曲線的彎頭)。
K均值聚類
k均值算法如下所示:
為每個(gè)觀測(cè)值隨機(jī)分配一個(gè)從1到K的數(shù)字,這些數(shù)字用作觀測(cè)值的初始聚類分配。
迭代直到聚類分配停止更改:
(a)對(duì)于K個(gè)聚類中的每一個(gè),計(jì)算聚類質(zhì)心。
(b)將每個(gè)觀測(cè)值分配給質(zhì)心最接近的聚類(使用歐幾里得距離定義)。
聚類成員和結(jié)果
k均值聚類的結(jié)果是:
#聚類成員
asa$Cuter <- c$luser

聚類圖在散點(diǎn)圖中繪制k均值聚類和前兩個(gè)主成分(維度1和2)。
clstr(lstdaa = nr, cluter = cluser,col=ola), theme = hme_lsic()) +
title("K-Means聚類圖")

聚類之間沒(méi)有重疊。
聚類2與其他聚類之間存在很多分隔。
聚類1、3和4之間的間隔較小。
前兩個(gè)組成部分解釋了點(diǎn)變異的70%。

聚類1有2個(gè)國(guó)家,其聚類平方和之內(nèi)很?。ㄔ诰垲愖儺愋詢?nèi))。
聚類2有1個(gè)國(guó)家。
具有14個(gè)國(guó)家/地區(qū)的第3組在類內(nèi)變異性中最高。
聚類4有5個(gè)國(guó)家,在聚類變異性中排名第二。
聚類平方和與平方和之比為61.6%,非常合適。
這四個(gè)聚類的標(biāo)準(zhǔn)平均值是:
long <- melt(t(agreate(nor, )
plot(long,roup = cluster)+point(se=3)

自由選擇生活,社會(huì)支持和階梯得分之間的差異很大。這些變量似乎對(duì)聚類形成貢獻(xiàn)最大。
回想一下,聚類成員資格為:
類別1:印度尼西亞,緬甸
第二類:阿富汗
類別3:菲律賓,泰國(guó),巴基斯坦,蒙古,馬來(lái)西亞,越南,馬爾代夫,尼泊爾,中國(guó),老撾,柬埔寨,孟加拉國(guó),斯里蘭卡,印度
第4組:中國(guó)臺(tái)灣地區(qū),新加坡,韓國(guó),日本,中國(guó)香港特別行政區(qū)
相對(duì)于其他聚類:
聚類1的特點(diǎn)是
很高:慷慨?
高:自由選擇生活?
一般:人均GDP,對(duì)腐敗的看法,慷慨,健康的期望壽命,社會(huì)支持,階梯得分 ?
聚類2的特點(diǎn)是 ?
高:對(duì)腐敗的看法
低:人均國(guó)內(nèi)生產(chǎn)總值,慷慨
非常低:自由選擇生活,健康的期望壽命,社會(huì)支持,階梯得分
聚類3的特點(diǎn)是
高:自由選擇生活
一般:人均GDP,對(duì)腐敗的看法,慷慨,健康的期望壽命,社會(huì)支持,階梯得分
聚類4的特點(diǎn)是
很高:人均GDP,期望壽命健康
高:社會(huì)支持,階梯得分
一般:自由選擇生活
低:慷慨
極低:對(duì)腐敗的看法
輪廓圖
我們使用輪廓圖來(lái)查看每個(gè)國(guó)家在其聚類中的狀況。輪廓寬度衡量一個(gè)聚類中每個(gè)觀測(cè)值相對(duì)于其他聚類的接近程度。較高的輪廓寬度表示該觀測(cè)值很好地聚類,而接近0的值表示該觀測(cè)值在兩個(gè)聚類之間匹配,而負(fù)值表示該觀測(cè)值在錯(cuò)誤的聚類中。
plt(soette((cluser), diace),
mn = "輪廓系數(shù)圖")

大多數(shù)國(guó)家似乎都非常好。
第3組中的國(guó)家4(泰國(guó))和第4組中的國(guó)家5(韓國(guó))的輪廓寬度非常低。
層次聚類
分層聚類將組映射到稱為樹(shù)狀圖的層次結(jié)構(gòu)中。分層聚類算法如下所示:
從n個(gè)觀察值和所有成對(duì)不相似性的度量(例如歐幾里得距離)開(kāi)始。將每個(gè)觀察值視為自己的聚類。
(a)檢查i個(gè)聚類之間所有成對(duì)的聚類間差異,并找出最相似的一對(duì)聚類。加入這兩個(gè)聚類。這兩個(gè)簇之間的差異表明它們?cè)跇?shù)狀圖中的高度。
(b)計(jì)算其余聚類之間的新的成對(duì)聚類間差異。對(duì)于分層聚類,我們?cè)诰垲愔g使用距離函數(shù),稱為鏈接函數(shù)。不同類型的鏈接:
完全(最大聚類間差異):計(jì)算聚類1中的觀測(cè)值與聚類2中的觀測(cè)值之間的所有成對(duì)差異,并記錄這些差異中最大的一個(gè)。
plt(aslus.c,laes=國(guó)家名稱,min='全鏈接 k=4', hang=-1)
rct.clut(whasi.hclusc, k=4)

平均值(均值聚類間差異):計(jì)算聚類1中的觀測(cè)值與聚類2中的觀測(cè)值之間的所有成對(duì)差異,并記錄這些差異的平均值。
全鏈接
下面的樹(shù)狀圖顯示了使用全鏈接的聚類層次結(jié)構(gòu)。?
custr(ist(dta = or, cuse = mer.a), ghe = teelsic)) +
title("全鏈接 lusterPlot")

聚類1有16個(gè)國(guó)家。
聚類2有2個(gè)國(guó)家。
聚類3有3個(gè)國(guó)家。
聚類4有1個(gè)國(guó)家。
聚類4和其他聚類之間有很多間隔。
聚類1、2和3之間的間隔較小。
聚類1中的變異性似乎很大。
輪廓圖
plot(sloett(curee(asiahluc, 4), di),
col
min = "全鏈接 輪廓系數(shù)圖")

大多數(shù)國(guó)家似乎都非常好。
16國(guó)(老撾)似乎是第1組的異常值。
21國(guó)(印度)似乎是第3組的異常值。
平均鏈接
下面的樹(shù)狀圖顯示了使用平均鏈接的聚類層次。
plt(s.hut.,abls=國(guó)家名稱,min='平均鏈接 k=4', hag=-1)
rec(hsth_asa.lus.a, k= boder)

聚類1有4個(gè)國(guó)家。
聚類2有1個(gè)國(guó)家。
聚類3有16個(gè)國(guó)家。
聚類4有1個(gè)國(guó)家。
使用平均鏈接的聚類之間的變異性似乎大于全鏈接的變異性。
custr(ist(dta = or, cuse = mer.a), ghe = teelsic)) +
title("平均鏈接 lusterPlot")

輪廓圖
plt(sltte(ctee(sia.lust, 4), istce),
cl=cl[:5],
min = "平均鏈接 輪廓系數(shù)圖")

大多數(shù)國(guó)家似乎都非常好。
第1組中的8地區(qū)(香港)的輪廓寬度非常小。
討論
k均值,全鏈接和平均鏈接的平均輪廓寬度分別為0.26、0.23和0.27。在全鏈接中,聚類之間的距離小于k均值和平均鏈接之間的距離,并且兩個(gè)國(guó)家不太適合它們的聚類。因此,k均值和平均鏈接方法似乎比全鏈接具有更好的擬合度。比較k均值,全鏈接和平均鏈接,所有方法都與阿富汗匹配,成為其自己的聚類。但是,每種方法的聚類成員資格有所不同。例如,在k均值和全鏈接中,印度尼西亞和緬甸與大多數(shù)南亞和東南亞國(guó)家不在同一聚類中,而印度尼西亞和緬甸與在平均鏈接中的國(guó)家在同一聚類中。
K-means和分層聚類都產(chǎn)生了相當(dāng)好的聚類結(jié)果。在使用大型數(shù)據(jù)集和解釋聚類結(jié)果時(shí),K-means有一個(gè)優(yōu)勢(shì)。K-means的缺點(diǎn)是它需要在開(kāi)始時(shí)指定數(shù)字?jǐn)?shù)據(jù)和聚類的數(shù)量。另外,由于初始聚類分配在開(kāi)始時(shí)是隨機(jī)的,當(dāng)你再次運(yùn)行該算法時(shí),聚類結(jié)果是不同的。另一方面,分層聚類對(duì)數(shù)字和分類數(shù)據(jù)都有效,不需要先指定聚類的數(shù)量,而且每次運(yùn)行算法都會(huì)得到相同的結(jié)果。它還能產(chǎn)生樹(shù)狀圖,這對(duì)幫助你理解數(shù)據(jù)的結(jié)構(gòu)和挑選聚類的數(shù)量很有用。然而,一些缺點(diǎn)是,對(duì)于大數(shù)據(jù)來(lái)說(shuō),它沒(méi)有k-means那么有效,而且從樹(shù)狀圖中確定聚類的數(shù)量變得很困難。?

最受歡迎的見(jiàn)解
1.R語(yǔ)言k-Shape算法股票價(jià)格時(shí)間序列聚類
2.R語(yǔ)言中不同類型的聚類方法比較
3.R語(yǔ)言對(duì)用電負(fù)荷時(shí)間序列數(shù)據(jù)進(jìn)行K-medoids聚類建模和GAM回歸
4.r語(yǔ)言鳶尾花iris數(shù)據(jù)集的層次聚類
5.Python Monte Carlo K-Means聚類實(shí)戰(zhàn)
6.用R進(jìn)行網(wǎng)站評(píng)論文本挖掘聚類
7.用于NLP的Python:使用Keras的多標(biāo)簽文本LSTM神經(jīng)網(wǎng)絡(luò)
8.R語(yǔ)言對(duì)MNIST數(shù)據(jù)集分析 探索手寫(xiě)數(shù)字分類數(shù)據(jù)
9.R語(yǔ)言基于Keras的小數(shù)據(jù)集深度學(xué)習(xí)圖像分類