推荐答案
在 R 语言中,可以使用 kmeans() 函数进行 K 均值聚类。以下是一个简单的示例代码:
// www.javascriptcn.com code example # 生成示例数据 set.seed(123) data <- matrix(rnorm(100), ncol = 2) # 进行 K 均值聚类 k <- 3 # 设置聚类数量 result <- kmeans(data, centers = k) # 查看聚类结果 print(result$cluster) # 每个样本的聚类标签 print(result$centers) # 每个聚类的中心点
本题详细解读
1. kmeans() 函数简介
kmeans() 是 R 语言中用于执行 K 均值聚类的函数。它通过迭代优化将数据划分为 K 个簇,使得每个数据点都属于离其最近的簇中心。
2. 参数说明
data: 输入的数据矩阵或数据框,每一行代表一个样本,每一列代表一个特征。centers: 聚类的数量 K,或者是一个包含初始聚类中心的矩阵。iter.max: 最大迭代次数,默认为 10。nstart: 随机初始化的次数,默认为 1。通常建议设置为较大的值(如 25)以获得更稳定的结果。
3. 返回值
kmeans() 函数返回一个包含多个组件的列表,其中最重要的组件包括:
cluster: 每个样本的聚类标签。centers: 每个聚类的中心点。totss: 总平方和。withinss: 每个簇内的平方和。tot.withinss: 所有簇内的平方和之和。betweenss: 簇间的平方和。
4. 示例代码解析
set.seed(123): 设置随机种子以确保结果可重复。data <- matrix(rnorm(100), ncol = 2): 生成一个 50 行 2 列的随机数据矩阵。k <- 3: 设置聚类数量为 3。result <- kmeans(data, centers = k): 执行 K 均值聚类。print(result$cluster): 输出每个样本的聚类标签。print(result$centers): 输出每个聚类的中心点。
通过以上步骤,你可以在 R 语言中轻松实现 K 均值聚类。