针对教材P212页的表格7-5,用系统聚类和快速聚类做聚类分析。

  • 1.数据概况
  • 2.代码及运行结果
  • 2.1 系统聚类法
  • 2.2 快速聚类法
  • 3.链接



目的:1996年全国31个省、市、自治区城镇居民消费数据采用系统聚类及快速聚类做聚类分析

1.数据概况

SOM聚类分析r语言 r语言系统聚类分析代码_大数据

2.代码及运行结果

2.1 系统聚类法

#导包
library(xlsx)
#读取数据
data = read.xlsx("C:\\Users\\6\\Desktop\\R语言\\多元统计分析及R语言建模作业\\1996年全国31个省、市、自治区城镇居民消费数据.xlsx",'Sheet1',row.names=T)
#了解数据结构
plot(data,gap=0)

SOM聚类分析r语言 r语言系统聚类分析代码_聚类_02

#计算矩阵行向量之前的距离
D=dist(data);D  #默认为euclidean距离

SOM聚类分析r语言 r语言系统聚类分析代码_大数据_03

#对每个聚类模型进行测试
#图片统一放在代码最下方,可根据图片里的表示判断是哪个距离法
plot(hclust(D,"single")); #最短距离法
plot(hclust(D,'complete')) #最长距离法
plot(hclust(D,'median')) #中间距离法
plot(hclust(D,'average')) #类平均法
plot(hclust(D,'centroid')) #重心法
plot(hclust(D,'ward.D')) #Ward.D法
plot(hclust(D,'ward.D2')) #Ward.D2法
H = hclust(D,'ward.D2');H #选择Ward.D2法进行进一步分类

最短距离法:

SOM聚类分析r语言 r语言系统聚类分析代码_数据分析_04


最长距离法

SOM聚类分析r语言 r语言系统聚类分析代码_r语言_05

中间距离法:

SOM聚类分析r语言 r语言系统聚类分析代码_SOM聚类分析r语言_06

类平均法:

SOM聚类分析r语言 r语言系统聚类分析代码_数据分析_07

重心法:

SOM聚类分析r语言 r语言系统聚类分析代码_大数据_08

Ward.D法

SOM聚类分析r语言 r语言系统聚类分析代码_r语言_09

Ward.D2法

SOM聚类分析r语言 r语言系统聚类分析代码_SOM聚类分析r语言_10

综合考虑以上的分析结果,从全国各省、市、自治区的消费数据来看,使用Ward.D2方法聚类的效果较好,且分为四类较为合适。

plot(H);rect.hclust(H,2)
cutree(H,2) # 分两类
plot(H);rect.hclust(H,3)
cutree(H,3) #分三类
plot(H);rect.hclust(H,4)
cutree(H,4) #分四类

结果如下:

两类:

SOM聚类分析r语言 r语言系统聚类分析代码_SOM聚类分析r语言_11


SOM聚类分析r语言 r语言系统聚类分析代码_数据分析_12


三类:

SOM聚类分析r语言 r语言系统聚类分析代码_大数据_13

SOM聚类分析r语言 r语言系统聚类分析代码_r语言_14


四类:

SOM聚类分析r语言 r语言系统聚类分析代码_大数据_15

SOM聚类分析r语言 r语言系统聚类分析代码_r语言_16


按类整理聚类图结果:

这个图画的画比较难画,word版已上传至网盘,可复制。若有问题可在评论区提出。

SOM聚类分析r语言 r语言系统聚类分析代码_数据分析_17

2.2 快速聚类法

X = rbind(data)
km = kmeans(X,4) #使用快速聚类发分四类 (同样可以分为2,3,4类,参数自调)
kc = km$cluster
km #km中存有快速聚类结果

最终结果如下:

两类:

提示:在R gui中,城市及分类的情况(1,2,3,4)是错位的,要看清哦!

SOM聚类分析r语言 r语言系统聚类分析代码_SOM聚类分析r语言_18


三类:

SOM聚类分析r语言 r语言系统聚类分析代码_SOM聚类分析r语言_19


四类:

整理的效果图:

SOM聚类分析r语言 r语言系统聚类分析代码_大数据_20


结论:对比系统聚类法及快速聚类法,两种聚类法在聚类方面基本上差不多,只有在分四类时,浙江出现了微小的差距,在分两类分三类时,情况是一致的,因此在选择聚类的方法时可以根据实际情况选择较好的模型。

3.链接

数据及代码连接:链接:https://pan.baidu.com/s/1n0nrF3txGosB00gGlfMw5w
提取码:8888