01、聚類分析
在沒有先驗(yàn)知識的情況下厘肮,對樣本按各自的特性來進(jìn)行合理的分類
聚類分析:不需要先知道所屬類別就可以實(shí)現(xiàn)按各自特性的分類
聚類分析有兩種主要計(jì)算方法后室,分別是凝聚層次聚類(Agglomerative hierarchical method)和K均值聚類(K-Means)
(1)層次聚類首先要定義樣本之間的距離關(guān)系雨让,距離較近的歸為一類嚷堡,較遠(yuǎn)的則屬于不同的類。
(2)K均值聚類不需要計(jì)算距離义图,但要求事先給出分類個(gè)數(shù)
02减俏、iris聚類分析
2.1、層次聚類
ris數(shù)據(jù)集包含5個(gè)方面的信息碱工,為了探索聚類分析娃承,所以采用前4個(gè)變量作為模型前期數(shù)據(jù),使用species作為聚類模型結(jié)果的驗(yàn)證怕篷。
(1)首先提取iris數(shù)據(jù)中的4個(gè)數(shù)值變量历筝,然后計(jì)算其歐氏距離矩陣。
(2)然后將矩陣?yán)L制熱圖廊谓,從圖中可以看到顏色越深表示樣本間距離越近·
從圖中可以看到顏色越深表示樣本間距離越近梳猪。大致上可以區(qū)分出三到四個(gè)區(qū)塊,其樣本之間比較接近蒸痹。
data<-iris[,-5] #刪除第五行
dist.e <- dist(data,method='euclidean') #變量間歐式距離的數(shù)據(jù)集
heatmap(as.matrix(dist.e),labRow = F, labCol = F)
使用hclust完成數(shù)據(jù)集的層次聚類春弥,plot函數(shù)可以查看聚類結(jié)果
使用cutree函數(shù)提取每個(gè)樣本所屬的類別
#--------------------------------------------->2、層次聚類模型
#建立聚類模型
model1<-hclust(dist.e,method='ward.D') #采用離差平方和法處理距離
plot(model1) #繪制聚類樹圖:沒什么用的結(jié)果
result<-cutree(model1,k=3) #使用cutree函數(shù)提取每個(gè)樣本所屬的類別
到此就完成了150個(gè)數(shù)據(jù)的類別劃分
可視化展現(xiàn)層次聚類結(jié)果
setose品種聚類很成功叠荠,但有一些virginica品種的花被錯(cuò)誤和virginica品種聚類到一起
#------------------------------------------------->3匿沛、層次聚類結(jié)果展示
#----------------------------------------------------->3.1、MDS降維
mds<-cmdscale(dist.e,k=2,eig=T)
x <- mds$points[,1]
y <- mds$points[,2]
#----------------------------------------------------->3.2榛鼎、聚類結(jié)果顯示
#以不同的的形狀表示原本的分類逃呼,用不同的顏色來表示聚類的結(jié)果
library(ggplot2)
p<-ggplot(data.frame(x,y),aes(x,y))
p+geom_point(size=3,alpha=0.8,aes(colour=factor(result),shape=iris$Species))
#setose品種聚類很成功,但有一些virginica品種的花被錯(cuò)誤和virginica品種聚類到一起
2.2者娱、K均值聚類
使用kmeans函數(shù)進(jìn)行K均值聚類
model2<-kmeans(data,centers=3,nstart=10)
model2$cluster #model2$cluster可以用來提取每個(gè)樣本所屬的類別
data$type<-model2$cluster
data$id<-rownames(data)
centers參數(shù)用來設(shè)置分類個(gè)數(shù)蜘渣,
nstart參數(shù)用來設(shè)置取隨機(jī)初始中心的次數(shù),其默認(rèn)值為1肺然,但取較多的次數(shù)可以改善聚類效果
K均值聚類后,數(shù)據(jù)集的結(jié)果為:
如果聚類正確的話腿准,圓形點(diǎn)對應(yīng)紅色际起;三角形對應(yīng)藍(lán)色拾碌;方框?qū)?yīng)綠色
K均值聚類setose品種聚類比較好,但有一些virginica品種的花被錯(cuò)誤和virginica品種聚類到一起