聚类分析:K-means算法及R语言实现
聚类分析是一种常用的无监督学习方法,用于将相似的数据点分组成具有内部相似性较高、组间相似性较低的簇。K-means算法是聚类分析中最常用的算法之一,它通过迭代优化的方式将数据点划分到K个簇中。本文将介绍K-means算法的原理,并提供R语言实现的源代码。
K-means算法的原理如下:
- 随机选择K个初始质心(centroid),每个质心代表一个簇的中心点。
- 针对每个数据点,计算其与每个质心之间的距离,将该数据点分配给距离最近的质心所代表的簇。
- 根据新的数据点分配情况,更新每个簇的质心,即将每个簇中所有数据点的均值作为新的质心。
- 重复步骤2和3,直到质心不再发生变化或达到预定的迭代次数。
下面是使用R语言实现K-means算法的源代码:
# 导入必要的包
library(cluster)
# 生成示例数据
set.seed(123)
data <- matrix(rnorm(200), ncol = 2)
# 设置簇的数量
k <- 3
# 使用K-means算法进行聚类
kmeans_result <- kmeans(data, centers = k)
# 打印聚类结果
print(kmeans_result)
# 绘制聚类结果
plot(data, col = kme