多元统计分析R语言建模| 6 聚类分析

試著忘記壹切 提交于 2020-03-27 11:43:47

3 月,跳不动了?>>>

  • 基本概念(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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!