聚類分析:對樣品或指標進行分類的一種分析方法,依據樣本和指標已知特性進行分類。本節主要介紹層次聚類分析,一共包括3個部分,每個部分包括一個具體實戰例子。
1、常規聚類過程:
一、首先用dist()函數計算變量間距離
dist.r = dist(data, method=" ")
其中method包括6種方法,表示不同的距離測度:"euclidean", "maximum", "manhattan", "canberra", "binary" or "minkowski"。相應的意義自行查找。
二、再用hclust()進行聚類
hc.r = hclust(dist.r, method = “ ”)
其中method包括7種方法,表示聚類的方法:"ward", "single", "complete","average", "mcquitty", "median" or "centroid"。相應的意義自行查找。
三、畫圖
plot(hc.r, hang = -1,labels=NULL) 或者plot(hc.r, hang = 0.1,labels=F)
hang 等於數值,表示標簽與末端樹杈之間的距離,
若是負數,則表示末端樹杈長度是0,即標簽對齊。
labels 表示標簽,默認是NULL,表示變量原有名稱。labels=F :表示不顯示標簽。
實例介紹:
特殊情況用法:
當用已知距離矩陣進行聚類時,即變量間的距離已經計算完,只是想用
已知的距離矩陣進行聚類。這時,需將距離矩陣轉成dist類型。
然后再執行hclust()聚類和plot()畫圖。
# mydata作為距離矩陣,且為正方矩陣 mydata<-matrix(1:25,ncol=5); class(mydata); # 把mydata變成dist類型 mydist<-as.dist(mydata); class(mydist); [1] "dist" myhc<-hclust(mydist,method="complete"); myhc; Call: hclust(d = mydist, method ="complete") Cluster method : complete Number of objects: 5 plot(myhc,hang=0.1)
2、熱圖聚類過程:
一、首先用dist()函數計算變量間距離
dist.r = dist(data, method=" ")
二、用heatmap()函數進行熱點圖聚類
對於heatmap中具體參數,這里不做過多介紹,可在幫助文檔中找說明。除此heatmap函數之外,gplots包中的heatmap.2()函數,也可以做熱點圖聚類。
其中參數不做過多描述。若有需求,請分享並回復:heatmap.2
即可得到答案。
實戰例子:
require(graphics); dist.r<-dist(USArrests,method="euclidean") # 方法:歐氏距離 dist.r #聚類並畫圖 heatmap(as.matrix(dist.r))
3、多維標度和聚類的結果
MDS方法對距離矩陣進行降維,用不同的顏色來表示聚類的結果。
另一種聚類效果展示。
例子: