層次聚類分析案例(一)

關于聚類分析的介紹挂绰,可參見本人之前的筆記:聚類分析

案例一:世界銀行樣本數(shù)據(jù)集

創(chuàng)建世界銀行的一個主要目標是對抗和消除貧困。在這個不斷發(fā)展的世界中焊切,世界銀行持續(xù)的發(fā)展并精細地調整它的政策扮授,已經(jīng)幫助這個機構逐漸實現(xiàn)了消除貧困的目標。消除貧困的成果以下指標的改進衡量专肪,這些指標包括健康、教育堪侯、衛(wèi)生嚎尤、基礎設施以及其他需要用于改進窮人生活的服務。與此同時伍宦,發(fā)展成果必須保證以一種環(huán)保的芽死、全社會的、經(jīng)濟可持續(xù)的方式達成次洼。

準備工作

為了進行層次聚類关贵,我們需要使用從世界銀行收集的數(shù)據(jù)集。

第1步:收集和描述數(shù)據(jù)

該任務使用名為WBClust2013的數(shù)據(jù)集卖毁。該數(shù)據(jù)以標準格式存儲在名為WBClust2013.csv的CSV格式的文件中揖曾。其有80行數(shù)據(jù)和14個變量。點我獲取數(shù)據(jù)

第一列Country為非數(shù)值型變量亥啦,其他列均為數(shù)值型變量炭剪。

第2步:探索數(shù)據(jù)

讓我們探索數(shù)據(jù)并理解變量間的關系。我們通過導入名為WBClust2013.csv的CSV文件開始翔脱。存儲數(shù)據(jù)到wbclust數(shù)據(jù)框中:

wbclust = read.csv("ClusteringAnalysis/Practical-Machine-Learning-Cookbook/Chapter03/Data/WBClust2013.csv")

下一步輸出wbclust數(shù)據(jù)框奴拦,head()函數(shù)返回wbclust數(shù)據(jù)框。wbclust數(shù)據(jù)框作為一個輸入?yún)?shù)傳入:

head(wbclust)

結果如下:


head(wbclust)

第3步:轉換數(shù)據(jù)

中心化變量和創(chuàng)建z值是兩個常見的用于歸一化數(shù)據(jù)的數(shù)據(jù)分析手段届吁。上面提到的數(shù)值型變量需要創(chuàng)建z值错妖。scale()函數(shù)是一個通用的函數(shù),其默認方法中心化并比例縮放一個數(shù)值化矩陣的列疚沐。數(shù)據(jù)框wbclust被傳給該比例函數(shù)暂氯。只有數(shù)據(jù)框中數(shù)值化的變量會被縮放。結果存儲在wbnorm數(shù)據(jù)框中濒旦。

wbnorm = scale(wbclust[,2:13])

head(wbnorm)

結果如下:


所有的數(shù)據(jù)框都有rownames屬性株旷。rownames()函數(shù)用來獲取或設置矩陣類變量的行名或列名。數(shù)據(jù)框wbclust以及第一列被傳遞給rownames()函數(shù)。

rownames(wbnorm) = wbclust[,1]

rownames(wbnorm)

調用rownames(wbnorm)方法顯示第一列的數(shù)值晾剖。結果如下:


第4步:訓練并評估模型效果

下一步是訓練模型锉矢。首先使用dist()函數(shù)計算距離矩陣。使用特定的距離度量方法計算數(shù)據(jù)矩陣行間的距離齿尽。使用的距離度量可以是歐式距離沽损、最大距離、曼哈頓距離循头、堪培拉距離绵估、二進制距離,或閔可夫斯基距離卡骂。這里的距離度量使用歐式距離国裳。使用歐式距離計算兩個向量間的距離為sqrt(sum((x_i-y_i)^2))。結果被存儲在一個新的數(shù)據(jù)框dist1中全跨。

dist1 <- dist(wbnorm,method="euclidean")

下一步是使用Ward方法進行聚類缝左。hclust()函數(shù)對一組不同的n個對象進行聚類分析。第一階段浓若,每個對象被指派給它自己的簇渺杉。之后每個階段,算法迭代聚合兩個最相似的簇挪钓。這個過程不斷持續(xù)直到只剩一個簇是越。hclust()函數(shù)要求我們以距離矩陣的形式提供數(shù)據(jù)。dist1數(shù)據(jù)框被作為輸入傳入碌上。默認使用全鏈接算法倚评。此外還可以使用不同的聚集方法,包括ward.D绍赛、ward.D2蔓纠、single、complete和average吗蚌。

cluster1 <- hclust(dist1,method = "ward.D")

cluster1

輸入clust1命令可顯示所使用的聚集方法腿倚,計算距離的方法,以及數(shù)據(jù)對象的數(shù)量蚯妇。結果如下:


第5步:繪制模型

plot()函數(shù)是一個通用的繪制R語言對象的函數(shù)敷燎。這里plot()函數(shù)用來繪制系統(tǒng)樹圖:

plot(cluster1, labels= wbclust$Country,cex=0.7,
     xlab="",ylab="Distance", main="Clustering for 80 Most Populous Countries")

結果如下:


rect.hclust()函數(shù)強調不同的簇,并在系統(tǒng)樹圖的枝干處繪制長方形箩言。系統(tǒng)樹圖首先在某個等級上被剪切硬贯,之后在選定的枝干上繪制長方形。

clust1對象以及需要形成的簇的數(shù)量作為輸入變量傳入函數(shù)陨收。

rect.hclust(cluster1,k=5)

結果如下:


rect.hclust(cluster1,k=12)

cuts()函數(shù)基于期望的簇數(shù)量或者切割高度將樹中的元素切割到不同的簇中饭豹。這里鸵赖,clust1對象以及需要形成的簇的數(shù)量作為輸入變量傳入函數(shù)。

cuts = cutree(cluster1,k=5)
cuts

結果如下:


得到每個簇的國家列表:

for (i in 1:5){
  print(paste("Countries in Cluster ",i))
  print(wbclust$Country[cuts==i])
  print(" ")
}

結果如下:


?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拄衰,一起剝皮案震驚了整個濱河市它褪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌翘悉,老刑警劉巖茫打,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異妖混,居然都是意外死亡老赤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門制市,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抬旺,“玉大人,你說我怎么就攤上這事祥楣∪履” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵荣堰,是天一觀的道長。 經(jīng)常有香客問我竭翠,道長振坚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任斋扰,我火速辦了婚禮渡八,結果婚禮上,老公的妹妹穿的比我還像新娘传货。我一直安慰自己屎鳍,他們只是感情好,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布问裕。 她就那樣靜靜地躺著逮壁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪粮宛。 梳的紋絲不亂的頭發(fā)上窥淆,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機與錄音巍杈,去河邊找鬼忧饭。 笑死,一個胖子當著我的面吹牛筷畦,可吹牛的內(nèi)容都是我干的词裤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吼砂!你這毒婦竟也來了逆航?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤帅刊,失蹤者是張志新(化名)和其女友劉穎纸泡,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赖瞒,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡女揭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了栏饮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吧兔。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖袍嬉,靈堂內(nèi)的尸體忽然破棺而出境蔼,到底是詐尸還是另有隱情,我是刑警寧澤伺通,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布箍土,位于F島的核電站,受9級特大地震影響罐监,放射性物質發(fā)生泄漏吴藻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一弓柱、第九天 我趴在偏房一處隱蔽的房頂上張望诊赊。 院中可真熱鬧誓篱,春花似錦看政、人聲如沸爬舰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粥血。三九已至,卻和暖如春者祖,著一層夾襖步出監(jiān)牢的瞬間立莉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工七问, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蜓耻,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓械巡,卻偏偏與公主長得像刹淌,于是被迫代替她去往敵國和親饶氏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

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