KMEANS均值聚類和層次聚類:亞洲國家地區(qū)生活幸福質(zhì)量異同可視化分析和選擇最佳聚類數(shù)
閱讀全文:http://tecdat.cn/?p=24198
《世界幸福報告》是可持續(xù)發(fā)展解決方案網(wǎng)絡的年度報告,該報告使用蓋洛普世界民意調(diào)查的調(diào)查結(jié)果研究了150多個國家/地區(qū)的生活質(zhì)量。報告的重點是幸福的社交環(huán)境。在本項目中,我將使用世界幸福報告中的數(shù)據(jù)來探索亞洲22個國家或地區(qū),并通過查看每個國家的階梯得分,社會支持,健康的期望壽命,自由選擇生活,慷慨,對腐敗的看法以及人均GDP,來探索亞洲22個國家的相似和不同之處。我將使用兩種聚類方法,即k均值和層次聚類,以及輪廓分析來驗證每種聚類方法(點擊文末“閱讀原文”獲取完整代碼數(shù)據(jù))。
相關視頻
拓端
,贊12
將要分析的國家和地區(qū)是:
asia?<-?w?filer(gepl('Asia',?Rgion)

探索性數(shù)據(jù)分析
相關矩陣
pair(aia\[,-c(1,2)\],?sal=TUE,col,hst.ol)
階梯得分,社會支持,生活選擇的自由以及對腐敗的看法的分布是左偏的。
慷慨和人均GDP的分布是右偏的。
健康期望壽命的偏差大約是對稱的。
兩者之間存在很強的正相關關系:
階梯分數(shù)和社會支持
健康期望壽命和人均GDP
之間存在強烈的負相關關系:
對腐敗的看法和人均GDP
之間存在中等正相關:
階梯得分和健康期望壽命
社會支持與健康期望壽命
人均GDP較高的國家往往對腐敗的看法較低,對健康的期望壽命,社會支持和階梯得分較高。
國家和地區(qū)比較
grd.rrnge( ??ggplt(sia,?es(rerder(x=fctor(國家名稱),?階梯得分,?FN=min),? ??????????????????????y=階梯得分,?fill=區(qū)域指標)))
東亞國家的階梯得分較高,期望壽命健康,人均GDP較高且慷慨度較低。
南亞國家的階梯得分,社會支持,健康的期望壽命和人均GDP往往較低。
東南亞國家往往有很高的自由度,可以選擇生活和慷慨解囊。
scterhst( ????aia,?x?=?"社會支持",?y?=?"階梯得分", ????clor?=?"區(qū)域指標" ????titl?=?"階梯得分與社會支持" ??)
正在上傳…重新上傳取消
南亞的社會支持中位數(shù),階梯得分和人均GDP最低。
東亞的社會支持中位數(shù),階梯得分,人均GDP和健康的期望壽命最高。
東南亞的平均健康壽命中位數(shù)最低,對腐敗的中位數(shù)最高。
東南亞的人均GDP很高,期望壽命健康,對腐敗的看法也很低(新加坡)。
東亞有離群點樣本對政府的了解低(香港)。
點擊標題查閱往期內(nèi)容
R語言鳶尾花iris數(shù)據(jù)集的層次聚類分析
左右滑動查看更多
01
02
03
正在上傳…重新上傳取消
04
聚類分析
這些國家會屬于不同的群體嗎?在本節(jié)中,我們將使用聚類(一種無監(jiān)督的學習方法,該方法基于相似性對對象進行分組)來找到國家組,其中組內(nèi)的國家相似。我將使用兩種方法進行聚類:分層聚類和K-Means聚類。首先,我們?nèi)绾巫R別這些群體?衡量對象之間相似性的一種方法是測量對象之間的數(shù)學距離。一種常見的距離度量是歐幾里得距離。
歐氏距離
我們將使用歐幾里得距離找到彼此最相似的國家,并將它們分組在一起。
aply(z,2,mean)?#?計算列的平均值 aply(z,2,sd)?#?計算列的標準差 scale(z,ceter=means,scae=sds)?#?標準化 #?計算距離矩陣 dsae?=?dit(nor)?#?計算歐幾里得的距離
歐幾里得距離矩陣為:
正在上傳…重新上傳取消
似乎國家2(新加坡)和國家22(阿富汗)彼此最不相似。
15國(中國)和11國(越南)彼此最相似。
我們?nèi)绾芜x擇最佳聚類數(shù)?
肘法
for?(i?in?2:20)?ws<-?sum(kmens(nr,?cetrs=i)$wthns)
我們的目標是減少聚類內(nèi)部的變異性,以便將相似的對象分組在一起,并增加聚類之間的變異性,以使相異的對象相距甚遠。WSS(在組平方和內(nèi)),它在聚類變化內(nèi)進行度量,
在WSS圖中,聚類數(shù)位于x軸上,而WSS位于y軸上。高的WSS值意味著聚類中的變化很大,反之亦然。我們看到,在1、2和3個聚類之后,WSS的下降很大。但是,在4個聚類之后,WSS的下降很小。因此,聚類的最佳數(shù)目為k = 4(曲線的彎頭)。
K均值聚類
k均值算法如下所示:
為每個觀測值隨機分配一個從1到K的數(shù)字,這些數(shù)字用作觀測值的初始聚類分配。
迭代直到聚類分配停止更改:
(a)對于K個聚類中的每一個,計算聚類質(zhì)心。
(b)將每個觀測值分配給質(zhì)心最接近的聚類(使用歐幾里得距離定義)。
聚類成員和結(jié)果
k均值聚類的結(jié)果是:
#聚類成員 asa$Cuter?<-?c$luser
正在上傳…重新上傳取消
聚類圖在散點圖中繪制k均值聚類和前兩個主成分(維度1和2)。
clstr(lstdaa?=?nr,?cluter?=?cluser,col=ola),?theme?=?hme_lsic())?+? ??title("K-Means聚類圖")
聚類之間沒有重疊。
聚類2與其他聚類之間存在很多分隔。
聚類1、3和4之間的間隔較小。
前兩個組成部分解釋了點變異的70%。
正在上傳…重新上傳取消
聚類1有2個國家,其聚類平方和之內(nèi)很?。ㄔ诰垲愖儺愋詢?nèi))。
聚類2有1個國家。
具有14個國家/地區(qū)的第3組在類內(nèi)變異性中最高。
聚類4有5個國家,在聚類變異性中排名第二。
聚類平方和與平方和之比為61.6%,非常合適。
這四個聚類的標準平均值是:
long?<-?melt(t(agreate(nor,?) plot(long,roup?=?cluster)+point(se=3)
自由選擇生活,社會支持和階梯得分之間的差異很大。這些變量似乎對聚類形成貢獻最大。
回想一下,聚類成員資格為:
第1類:印度尼西亞,緬甸
第2類:阿富汗
第3類:菲律賓,泰國,巴基斯坦,蒙古,馬來西亞,越南,馬爾代夫,尼泊爾,中國,老撾,柬埔寨,孟加拉國,斯里蘭卡,印度
第4類:中國臺灣地區(qū),新加坡,韓國,日本,中國香港特別行政區(qū)
相對于其他聚類:
聚類1的特點是
很高:慷慨
高:自由選擇生活
一般:人均GDP,對腐敗的看法,慷慨,健康的期望壽命,社會支持,階梯得分
聚類2的特點是
高:對腐敗的看法
低:人均國內(nèi)生產(chǎn)總值,慷慨
非常低:自由選擇生活,健康的期望壽命,社會支持,階梯得分
聚類3的特點是
高:自由選擇生活
一般:人均GDP,對腐敗的看法,慷慨,健康的期望壽命,社會支持,階梯得分
聚類4的特點是
很高:人均GDP,期望壽命健康
高:社會支持,階梯得分
一般:自由選擇生活
低:慷慨
極低:對腐敗的看法
輪廓圖
我們使用輪廓圖來查看每個國家在其聚類中的狀況。輪廓寬度衡量一個聚類中每個觀測值相對于其他聚類的接近程度。較高的輪廓寬度表示該觀測值很好地聚類,而接近0的值表示該觀測值在兩個聚類之間匹配,而負值表示該觀測值在錯誤的聚類中。
plt(soette((cluser),?diace),? ?????mn?=?"輪廓系數(shù)圖")
正在上傳…重新上傳取消
大多數(shù)國家似乎都非常好。
第3組中的國家4(泰國)和第4組中的國家5(韓國)的輪廓寬度非常低。
層次聚類
分層聚類將組映射到稱為樹狀圖的層次結(jié)構中。分層聚類算法如下所示:
從n個觀察值和所有成對不相似性的度量(例如歐幾里得距離)開始。將每個觀察值視為自己的聚類。
(a)檢查i個聚類之間所有成對的聚類間差異,并找出最相似的一對聚類。加入這兩個聚類。這兩個簇之間的差異表明它們在樹狀圖中的高度。
(b)計算其余聚類之間的新的成對聚類間差異。對于分層聚類,我們在聚類之間使用距離函數(shù),稱為鏈接函數(shù)。不同類型的鏈接:
完全(最大聚類間差異):計算聚類1中的觀測值與聚類2中的觀測值之間的所有成對差異,并記錄這些差異中最大的一個。
plt(aslus.c,laes=國家名稱,min='全鏈接?k=4',?hang=-1) rct.clut(whasi.hclusc,?k=4)
平均值(均值聚類間差異):計算聚類1中的觀測值與聚類2中的觀測值之間的所有成對差異,并記錄這些差異的平均值。
全鏈接
下面的樹狀圖顯示了使用全鏈接的聚類層次結(jié)構。
custr(ist(dta?=?or,?cuse?=?mer.a),?ghe?=?teelsic))?+ ??title("全鏈接?lusterPlot")
正在上傳…重新上傳取消
聚類1有16個國家。
聚類2有2個國家。
聚類3有3個國家。
聚類4有1個國家。
聚類4和其他聚類之間有很多間隔。
聚類1、2和3之間的間隔較小。
聚類1中的變異性似乎很大。
輪廓圖
plot(sloett(curee(asiahluc,?4),?di),? ?????col ?????min?=?"全鏈接?輪廓系數(shù)圖")
大多數(shù)國家似乎都非常好。
16國(老撾)似乎是第1組的異常值。
21國(印度)似乎是第3組的異常值。
平均鏈接
下面的樹狀圖顯示了使用平均鏈接的聚類層次。
plt(s.hut.,abls=國家名稱,min='平均鏈接?k=4',?hag=-1) rec(hsth_asa.lus.a,?k=?boder)
聚類1有4個國家。
聚類2有1個國家。
聚類3有16個國家。
聚類4有1個國家。
使用平均鏈接的聚類之間的變異性似乎大于全鏈接的變異性。
custr(ist(dta?=?or,?cuse?=?mer.a),?ghe?=?teelsic))?+ ??title("平均鏈接?lusterPlot")
輪廓圖
plt(sltte(ctee(sia.lust,?4),?istce),? ?????cl=cl\[:5\],? ?????min?=?"平均鏈接?輪廓系數(shù)圖")
大多數(shù)國家似乎都非常好。
第1組中的8地區(qū)(香港)的輪廓寬度非常小。
討論
k均值,全鏈接和平均鏈接的平均輪廓寬度分別為0.26、0.23和0.27。在全鏈接中,聚類之間的距離小于k均值和平均鏈接之間的距離,并且兩個國家不太適合它們的聚類。因此,k均值和平均鏈接方法似乎比全鏈接具有更好的擬合度。比較k均值,全鏈接和平均鏈接,所有方法都與阿富汗匹配,成為其自己的聚類。但是,每種方法的聚類成員資格有所不同。例如,在k均值和全鏈接中,印度尼西亞和緬甸與大多數(shù)南亞和東南亞國家不在同一聚類中,而印度尼西亞和緬甸與在平均鏈接中的國家在同一聚類中。
K-means和分層聚類都產(chǎn)生了相當好的聚類結(jié)果。在使用大型數(shù)據(jù)集和解釋聚類結(jié)果時,K-means有一個優(yōu)勢。K-means的缺點是它需要在開始時指定數(shù)字數(shù)據(jù)和聚類的數(shù)量。另外,由于初始聚類分配在開始時是隨機的,當你再次運行該算法時,聚類結(jié)果是不同的。另一方面,分層聚類對數(shù)字和分類數(shù)據(jù)都有效,不需要先指定聚類的數(shù)量,而且每次運行算法都會得到相同的結(jié)果。它還能產(chǎn)生樹狀圖,這對幫助你理解數(shù)據(jù)的結(jié)構和挑選聚類的數(shù)量很有用。然而,一些缺點是,對于大數(shù)據(jù)來說,它沒有k-means那么有效,而且從樹狀圖中確定聚類的數(shù)量變得很困難。
本文摘選《R語言KMEANS均值聚類和層次聚類:亞洲國家地區(qū)生活幸福質(zhì)量異同可視化分析和選擇最佳聚類數(shù)》,點擊“閱讀原文”獲取全文完整資料。
正在上傳…重新上傳取消
本文中的幸福數(shù)據(jù)分享到會員群,掃描下面二維碼即可加群!
點擊標題查閱往期內(nèi)容
PYTHON實現(xiàn)譜聚類算法和改變聚類簇數(shù)結(jié)果可視化比較
有限混合模型聚類FMM、廣義線性回歸模型GLM混合應用分析威士忌市場和研究專利申請數(shù)據(jù)
R語言多維數(shù)據(jù)層次聚類散點圖矩陣、配對圖、平行坐標圖、樹狀圖可視化城市宏觀經(jīng)濟指標數(shù)據(jù)
r語言有限正態(tài)混合模型EM算法的分層聚類、分類和密度估計及可視化
Python Monte Carlo K-Means聚類實戰(zhàn)研究
R語言k-Shape時間序列聚類方法對股票價格時間序列聚類
R語言對用電負荷時間序列數(shù)據(jù)進行K-medoids聚類建模和GAM回歸
R語言譜聚類、K-MEANS聚類分析非線性環(huán)狀數(shù)據(jù)比較
R語言實現(xiàn)k-means聚類優(yōu)化的分層抽樣(Stratified Sampling)分析各市鎮(zhèn)的人口
R語言聚類有效性:確定最優(yōu)聚類數(shù)分析IRIS鳶尾花數(shù)據(jù)和可視化
Python、R對小說進行文本挖掘和層次聚類可視化分析案例
R語言k-means聚類、層次聚類、主成分(PCA)降維及可視化分析鳶尾花iris數(shù)據(jù)集
R語言有限混合模型(FMM,finite mixture model)EM算法聚類分析間歇泉噴發(fā)時間
R語言用溫度對城市層次聚類、kmean聚類、主成分分析和Voronoi圖可視化
R語言k-Shape時間序列聚類方法對股票價格時間序列聚類
R語言中的SOM(自組織映射神經(jīng)網(wǎng)絡)對NBA球員聚類分析
R語言復雜網(wǎng)絡分析:聚類(社區(qū)檢測)和可視化
R語言中的劃分聚類模型
基于模型的聚類和R語言中的高斯混合模型
r語言聚類分析:k-means和層次聚類
SAS用K-Means 聚類最優(yōu)k值的選取和分析
用R語言進行網(wǎng)站評論文本挖掘聚類
基于LDA主題模型聚類的商品評論文本挖掘
R語言鳶尾花iris數(shù)據(jù)集的層次聚類分析
R語言對用電負荷時間序列數(shù)據(jù)進行K-medoids聚類建模和GAM回歸
R語言聚類算法的應用實例