多元统计分析R语言建模| 7 聚类分析
< 返回列表时间: 2020-03-27来源:OSCHINA
基本概念(Cluster Analysis) “物以类聚” 分析方法 系统聚类 快速聚类 类型 Q型聚类:对 样品 的聚类 R型聚类:对 变量 的聚类 聚类统计量 距离 欧氏距离 马氏距离 兰式距离 相关系数 距离矩阵 相关矩阵 距离矩阵计算——dist(),cor() 系统聚类法 基本思想:先将样品分成类,每个样品为一类,然后每次将具有最小距离的两类合并,合并后重新计算类与类之间的距离,直到所有样品归为一类为止 类间距离 的计算方法 最短距离法(single) 最长距离法(complete) 中间距离法(median) 类平均法(avera) 重心法(centroid) 离差平方和法(Ward) 通用公式 hclust(D,method=)
快速聚类法kmeans 概念:基本思想是将每一个样品分配给最近中心(均值)的类中 原理:n个对象分k类,类内 相似度 高,类间相似度低 相似度:类中对象的均值mean来计算 kmeans(x,centers) 不足:只有在类均值被定义的情况下才能使用,对孤立点、噪声影响敏感 knn,kmed,中位数 变量变换 平移变换 极差变换 标准差变换 主成分 对数 x1=c(2.5,3.0,6.0,6.6,7.2,4.0,4.7,4.5,5.5) x2=c(2.1,2.5,2.5,1.5,3.0,6.4,5.6,7.6,6.9) X=data.frame(x1,x2) D=dist(X,diag = TRUE,upper = FALSE) hc=hclust(D,"complete") hc names(hc) hc$merge hc$height #系统聚类图 plot(hc) rect.hclust(hc,3) #显示分类步骤 cutree(hc,9:1) #系统聚类分析步骤 library(mvstats) d7.2=read.table('clipboard',header = T) X7.2=msa.X(d7.2) plot(d7.2,gap=0) D=dist(d7.2) D H=H.clust(d7.2,"euclidean","single",plot=T)#最短距离法 H.clust(d7.2,"euclidean","complete",plot=T)#最长距离法 H.clust(d7.2,"euclidean","median",plot=T)#中间距离法 H.clust(d7.2,"euclidean","average",plot=T)#类平均法 H.clust(d7.2,"euclidean","centroid",plot=T)#重心法 H.clust(d7.2,"euclidean","ward",plot=T)#ward cutree(H,3) #快速聚类法 set.seed(123) x1=matrix(rnorm(1000,0,0.3)) x2=matrix(rnorm(1000,1,0.3)) X=rbind(x1,x2) H=hclust(dist(X)) plot(H) km=kmeans(X,2) km$cluster plot(X,pch=km$cluster) #10变量2000样品 set.seed(123) x1=matrix(rnorm(10000,0,0.3),ncol = 10) x2=matrix(rnorm(10000,1,0.3),ncol = 10) Y=rbind(x1,x2) km=kmeans(Y,2) km$cluster plot(Y,pch=km$cluster) km
参考资料: https://next.xuetangx.com/course/JNU07011000851/151569
热门排行