聚类分析之R语言篇

简介:

聚类分析(cluster analysis)是把研究对象(样本或变量)分组成为由类似的对象组成多个类的一种统计方法。聚类结果一般在4-6类,不易太多,或太少。聚类分析目的在于将相似的事物归类,同一类中的个体有较大的相似性,不同类的个体差异性很大。两个个体间(或变量间)的对应程度或联系紧密程度的度量可以用两种方式来测量:1、采用描述个体对(变量对)之间的接近程度的指标,例如“距离”,“距离”越小的个体(变量)越具有相似性;2、采用表示相似程度的指标,例如“相关系数”,“相关系数”越大的个体(变量)越具有相似性。

       聚类分析方法包括:系统聚类法、动态聚类法、有序样本聚类法和模糊聚类法等等。本文只介绍较常用的系统聚类法和动态聚类法。

系统聚类法

以R基础包自带的鸢尾花(Iris)数据进行聚类分析。分析代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
###### 代码清单 #######
data(iris); attach(iris)
iris.hc <- hclust( dist(iris[,1:4]))
# plot( iris.hc, hang = -1)
plclust( iris.hc, labels = FALSE, hang = -1)
re <- rect.hclust(iris.hc, k = 3)
iris.id <- cutree(iris.hc, 3)
table(iris.id, Species)
 
###### 运行结果 #######
> table(iris.id,Species)
      Species
iris.id setosa versicolor virginica
     1     50          0         0
     2      0         23        49
     3      0         27         1

聚类分析生成的图形如下:

鸢尾花花萼及花瓣的长度和宽度系统聚类图

   结果表明,函数cuttree()将数据iris分类结果iris.hc编为三组分别以1,2,
3表示,保存在iris.id中。将iris.id与iris中Species作比较发现:1应该是setosa类,2应该是virginica类(因为
virginica的个数明显多于versicolor),3是versicolor。

动态聚类法

仍以R基础包自带的鸢尾花(Iris)数据进行K-均值聚类分析,分析代码如下:

1
2
3
4
5
6
7
8
9
###### 代码清单 #######
library(fpc)
data(iris)
df<-iris[,c(1:4)]
set.seed(252964) # 设置随机值,为了得到一致结果。
 
(kmeans <- kmeans(na.omit(df), 3)) # 显示K-均值聚类结果
 
plotcluster(na.omit(df), kmeans$cluster) # 生成聚类图

生成的图如下:

动态聚类结果

目录
相关文章
|
10月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
10月前
|
数据挖掘 C++
使用R语言进行时间序列分析
【4月更文挑战第25天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
177 2
|
10月前
|
机器学习/深度学习 算法 数据可视化
R语言中的聚类分析技术
【4月更文挑战第26天】R语言在聚类分析中扮演重要角色,提供层次聚类、K-均值、K-中心点、DBSCAN和高斯混合模型等多种方法。K-means通过最小化点到簇质心距离进行聚类,而K-medoids在`cluster`包的`pam`函数中实现,对异常值有较强鲁棒性。层次聚类利用`hclust`函数创建多层次结构,适合解释数据层次。`fpc`包的`dbscan`实现DBSCAN,能处理不均匀分布数据。聚类数量确定可借助轮廓系数、戴维斯-邦丁指数和肘部方法。`clvalid`包提供聚类验证,`ggplot2`用于结果可视化。R语言的聚类工具覆盖广泛,支持数据探索和理解。
108 0
|
10月前
|
自然语言处理 数据可视化 数据挖掘
用R语言进行网站评论文本挖掘聚类
用R语言进行网站评论文本挖掘聚类
应用统计学与R语言实现学习笔记(六)——假设检验
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ESA_DSQ/article/details/71420125 Chapter 6 Hypothesis Test 本篇是第6章,内容是假设检验。
1383 0
|
机器学习/深度学习 数据可视化 大数据
可曾听闻【大话】二字—统计学R语言
# 我为什么要写这篇 &gt; 我们都知道,21世纪是数据科学的时代,而统计学则是数据科学的基础,任正非在一档访谈节目中也着重谈到了统计学在大数据时代的重要性。大数据不能被直接拿来使用,统计学依然是数据分析的灵魂。 ![image-20220608170829223](C:\Users\萧\AppData\Roaming\Typora\typora-user-images\image-20220608170829223.png) # 总论 全章概览图 ![image-20220608170918361](C:\Users\萧\AppData\Roaming\Typora\typora-u
336 0
|
资源调度 数据挖掘 关系型数据库
应用统计学与R语言实现学习笔记(十)——聚类分析
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ESA_DSQ/article/details/73554709 Chapter 10 Cluster Analysis 本篇是第十章,内容是聚类分析。
1229 0
应用统计学与R语言实现学习笔记(九)——线性回归
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ESA_DSQ/article/details/73196594 Chapter 9 Linear Regression 本篇是第九章,内容是回归分析(主要以线性回归为主)。
1865 0