利用R语言进行数据聚类分析的实战案例
利用R语言进行数据聚类分析通常涉及以下几个步骤:数据准备、选择合适的聚类算法、执行聚类分析和结果可视化。以下是一个简单的实战案例,以“鸢尾花数据集(Iris Dataset)”为例,这是一个经典的聚类分析案例。
第一步:加载数据和必要的包
首先,确保安装并加载必要的包:
# 如果没有安装必要的包,先安装
# install.packages("datasets")
# 加载必要的包
library(datasets)
第二步:数据准备
加载并查看数据:
# 加载鸢尾花数据集
data(iris)
# 查看数据
head(iris)
第三步:选择聚类算法
常用的聚类算法包括K均值(K-Means)和层次聚类等。这里我们以K均值聚类为例。
# 提取特征列进行聚类分析,不包括种类标签
iris_features <- iris[, -5]
# 选择聚类的数量,一般通过观察数据或者使用肘部法则等确定k值
set.seed(123) # 设置随机种子防止结果不一致
k <- 3 # 已知鸢尾花数据集分为三类
第四步:执行聚类分析
# 执行K均值聚类
iris_kmeans <- kmeans(iris_features, centers = k, nstart = 20)
# 查看聚类结果
iris_kmeans$cluster
第五步:结果可视化
我们可以使用散点图来可视化聚类结果,这里使用ggplot2
包:
# 安装和加载ggplot2包
# install.packages("ggplot2")
library(ggplot2)
# 将聚类结果添加到原数据中
iris_clustered <- iris
iris_clustered$Cluster <- as.factor(iris_kmeans$cluster)
# 可视化结果
ggplot(iris_clustered, aes(x = Sepal.Length, y = Sepal.Width, color = Cluster)) +
geom_point(size = 3) +
labs(title = "K-Means Clustering of Iris Dataset", x = "Sepal Length", y = "Sepal Width") +
theme_minimal()
第六步:评估聚类效果
通过查看轮廓系数或与真实标签(如果已知)进行对比来评估聚类的效果:
# 表示实际类别与聚类结果的对比
table(iris$Species, iris_kmeans$cluster)
总结
这个案例提供了一个基本的聚类分析流程。实际操作中可以根据数据特点使用不同的算法和参数调整以获得更好的结果。对于更复杂的数据,可能需要进行数据预处理和特征工程以提高聚类的效果。