基于层次的聚类----AGNES算法使用(R语言)

凝聚

# 产生数据集
x<-c(rnorm(200,30,1),rnorm(200,10,1.5),rnorm(100,5,0.5))
y<-c(rnorm(200,30,1),rnorm(200,10,1.5),rnorm(100,5,0.5))
data<-data.frame(x,y)
# 彩色空间
library(colorspace)
# 显示数据集的结构
str(data)
# 系统聚类
# 聚类的一些必要的函数
library(cluster)
library(rattle)
#系统聚类函数在包amap中
require(amap, quietly=TRUE)
#聚类结果有包fpc提供
require(fpc, quietly=TRUE)
#绘图 需cba包
require(cba, quietly=TRUE) 
#method曼哈顿距离,ward离差平方和
chcluster <- hclusterpar(na.omit(data[,c(1:2)]), method="manhattan", link="ward", nbproc=2)
chcluster 
# 聚类中心
centers.hclust(na.omit(data[,c(1:2)]), chcluster, 3) 
#产生树形图 用矩形显示聚类结果 
par(bg="grey")
plot(chcluster, main="", sub="", xlab="", labels=FALSE, hang=0)
rect.hclust(chcluster, k=3)
#加标题
title(main="HCluster_Dendrogram_data", sub=paste("R", format(Sys.time(), "%Y-%b-%d %H:%M:%S"), Sys.info()["user"])) 
#类与类之间的相关性 
par(bg="yellow")
plotcluster(na.omit(data[,c(1:2)]),  cutree(chcluster, 3))
title(main="Discriminant Coordinates data", sub=paste("R", format(Sys.time(), "%Y-%b-%d %H:%M:%S"), Sys.info()["user"])) 
#数据集的聚类效果图
plot(data[,c(1:2)], col=cutree(chcluster, 3))
title(main="", sub=paste("R", format(Sys.time(), "%Y-%b-%d %H:%M:%S"), Sys.info()["user"])) 
#验证聚类结果的基本统计信息
cluster.stats(dist(na.omit(data[,c(1:2)])), cutree(chcluster, 3)) 
#输出结果
result<-cbind(data,cutree(chcluster,3))
write.csv(result,"cengciresult.csv")


你可能感兴趣的:(数据挖掘,R)