聚类分析

2018-09-03

2018-09-03
聚类分析

  聚类分析则是将一组样本数据进行分类的统计方法。与判别分析不同的是,聚类分析事先不知道判别的个数以及相关信息。

1 系统聚类


1.1 基本思想

  每次合并的时候,将最近的两类进行合并,直到所有的观测均合并成一类为止。

1.2 系统聚类方法

  最短距离法(Single linkage)、最长距离法(Complete method)、中间距离法(Median method)、重心法(Centroid method)、类平均法(Average linkage)、离差平方和法(WARD)、最大似然谱系聚类(EML)等。

1.3 类的个数确定

  在聚类过程中确定类的个数是一个十分困难的问题,目前有以下几种基本方法:

(1)由适当的阈值确定

(2)根据数据点的散布图直观地确定类的个数(比如根据前两个主分量的二维散点图)

(3)根据统计量确定分类个数

(4)根据谱系图确定分类个数

(5)专家的知识

2 动态聚类


  动态聚类法也称快速聚类法,基本思想是,首先粗略的分一下类,然后按照某种最优原则对于不合理分类进行修改,直到分类比较合理为止。

3 R语言实现


  在R语言中dist()函数给出了各种距离的计算结果,hclust()函数提供了系统聚类的计算,plot()函数可以画出系统聚类的树形图,与确定类有关的函数是rect.hclust()函数,对于动态聚类我们在此介绍kmeans()函数。接下来我们以一个例子具体介绍这几个函数。

x<-c(1,5,2,6,8,10,11,18,12,19,23,41,51,22,35,36,38,49) # 需要聚类的样本
d<-dist(x) # 生成距离结构
clust1<-hclust(d,"single") # 利用最短距离法进行聚类
clust2<-hclust(d,"complete") # 利用最长距离法进行聚类
clust3<-hclust(d,"median") # 利用中间距离法进行聚类
clust4<-hclust(d,"average") # 利用类平均法法进行聚类
opar<-par(mfrow=c(2,2)) # 将树形图以2*2的形式绘制在一张图上
plot(clust1,hang=-1) # 绘制树形图
re1<-rect.hclust(clust1,k=3 ,border="red") # 将结果分成3类,并且将矩形框标为红色
plot(clust2,hang=-1) # 绘制树形图
re1<-rect.hclust(clust2,k=3 ,border="red") # 将结果分成3类,并且将矩形框标为红色
plot(clust3,hang=-1) # 绘制树形图
re1<-rect.hclust(clust3,k=3 ,border="red") # 将结果分成3类,并且将矩形框标为红色
plot(clust4,hang=-1) # 绘制树形图
re1<-rect.hclust(clust3,k=3 ,border="red") # 将结果分成3类,并且将矩形框标为红色

par(opar)
km<-kmeans(x,3,nstart=18) # 运用动态聚类进行分类
km
## K-means clustering with 3 clusters of sizes 6, 4, 8
## 
## Cluster means:
##       [,1]
## 1 41.66667
## 2 20.50000
## 3  6.87500
## 
## Clustering vector:
##  [1] 3 3 3 3 3 3 3 2 3 2 2 1 1 2 1 1 1 1
## 
## Within cluster sum of squares by cluster:
## [1] 231.3333  17.0000 116.8750
##  (between_SS / total_SS =  91.9 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"    
## [5] "tot.withinss" "betweenss"    "size"         "iter"        
## [9] "ifault"

  我们运用最短距离法、最长距离法、中间距离法以及类平均法进行了系统聚类,其他方法可以参考帮助文件进行操作。动态聚类法结果显示为,第一类、第二类、第三个包含样本个数分别为4, 8, 6;这三类对应的类的均值为20.5, 6.875, 41.6667;clustering表示聚类后的分类情况。

4 参考文献


[1]薛毅. 统计建模与R软件[M]. 清华大学出版社, 2007.