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

  • 基本概念(Cluster Analysis)
    • “物以类聚”
  • 分析方法
    • 系统聚类
    • 快速聚类
  • 类型
    • Q型聚类:对 样品 的聚类
    • R型聚类:对 变量 的聚类
  • 聚类统计量
    • 距离
      • 欧氏距离
      • 马氏距离
      • 兰式距离
      • up-ff42bbc2a0622f585052fffcd309e6afb23.png
    • 相关系数
      • up-4ab62dbf0402f5dad61d297c0a3fd3ed308.png
    • 距离矩阵
    • 相关矩阵
    • 距离矩阵计算——dist(),cor()
  • 系统聚类法
    • 基本思想:先将样品分成类,每个样品为一类,然后每次将具有最小距离的两类合并,合并后重新计算类与类之间的距离,直到所有样品归为一类为止
    • 类间距离 的计算方法
      • 最短距离法(single)
      • 最长距离法(complete)
      • 中间距离法(median)
      • 类平均法(avera)
      • 重心法(centroid)
      • 离差平方和法(Ward)
      • 通用公式
  • hclust(D,method=)

up-79290198ba292b942b655b62c508f648646.png

  • 快速聚类法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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值