凝聚
- # 产生数据集
- 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")