R聚类分析2

来源:互联网 发布:cow数据库 编辑:程序博客网 时间:2024/05/17 02:38
R聚类2凝聚层次聚类(Agglomerative hierarchical method)和K均值聚类(K-Means)层次聚类hclustdata=iris[,-5]dist.e=dist(data,method='euclidean')heatmap(as.matrix(dist.e),labRow = F, labCol = F)#计算类间距离:最短距离法、最长距离法、类平均法、重心法、中间距离法、离差平方和法model1=hclust(dist.e,method='ward') #ward离差平方和法#如果我们希望将类别设为3类,可以使用cutree函数提取每个样本所属的类别result=cutree(model1,k=3)hclust(d, method = "complete", members=NULL) 来进行层次聚类。其中d为距离矩阵。可以用rect.hclust(tree, k = NULL, which = NULL, x = NULL, h = NULL,border = 2, cluster = NULL)来确定类的个数。 tree就是求出来的对象。k为分类的个数,h为类间距离的阈值。border是画出来的颜色,用来分类的。data(iris);iris.hc <- hclust( dist(iris[,1:4]))# plot( iris.hc, hang = -1)plclust( iris.hc, labels = FALSE, hang = -1)re <- rect.hclust(iris.hc, k = 3)iris.id <- cutree(iris.hc, 3)table(iris.id, Species)K均值聚类 centers分类个数 nstart取随机初始中心的次数,其默认值为1model2=kmeans(data,centers=3,nstart=10)model2$cluster #可以用来提取每个样本所属的类别kmeans(x, centers, iter.max = 10, nstart = 1,algorithm =c("Hartigan-Wong", "Lloyd","Forgy", "MacQueen"))来进行聚类。centers是初始类的个数或者初始类的中心。iter.max是最大迭代次数。nstart是当centers是数字的时候,随机集合的个数。algorithm是算法,默认是第一个。library(fpc)data(iris)df<-iris[,c(1:4)](kmeans <- kmeans(na.omit(df), 3)) # 显示K-均值聚类结果plotcluster(na.omit(df), kmeans$cluster) # 生成聚类图基于密度聚类dbscan(data, eps, MinPts, scale, method, seeds, showplot, countmode)\其中eps是距离的半径,minpts是最少多少个点。 scale是否标准化(我猜) ,method 有三个值raw,dist,hybird,分别表示,数据是原始数据避免计算距离矩阵,数据就是距离矩阵,数据是原始数据但计算部分距离矩阵。showplot画不画图,0不画,1和2都画。countmode,可以填个向量,用来显示计算进度install.packages("fpc", dependencies=T)library(fpc)newiris <- iris[1:4]model <- dbscan(newiris,0.5,5,scale=T,showplot=T,method="raw")一种方法是先用层次聚类以决定个数,再用K均值聚类加以改进cluster扩展包中也有许多函数可用于聚类分析,如agnes函数可用于凝聚层次聚类,diana可用于划分层次聚类,pam可用于K均值聚类,fanny用于模糊聚类。r语言中使用scale(x, center = TRUE, scale = TRUE) 对数据矩阵做中心化和标准化变换。euclidean                欧几里德距离,就是平方再开方。maximum                切比雪夫距离manhattan            绝对值距离canberra                Lance 距离minkowski            明科夫斯基距离,使用时要指定p值binary                    定性变量距离.single            最短距离法complete        最长距离法median        中间距离法mcquitty        相似法average        类平均法centroid        重心法ward            离差平方和法

0 0
原创粉丝点击