k-means聚类算法r语言
时间: 2023-09-29 08:10:07 浏览: 84
在R语言中,可以使用`kmeans`函数来实现k-means聚类算法。下面是一个简单的例子:
假设有一组数据,存储在一个数据框`df`中,其中有两个变量`x`和`y`,我们想将其分为两类。
```R
# 创建数据
x <- c(1, 1.5, 3, 5, 3.5, 4.5, 3.5)
y <- c(1, 2, 4, 7, 5, 5, 4)
df <- data.frame(x, y)
# 进行k-means聚类
set.seed(123) # 设置种子,以便结果可以重复
kmeans_result <- kmeans(df, centers = 2)
# 查看聚类结果
kmeans_result$cluster # 返回每个观测所属的聚类
kmeans_result$centers # 返回聚类中心的坐标
```
在上面的代码中,`kmeans`函数的第一个参数是数据框,第二个参数`centers`是需要聚类的数量。`set.seed`函数用来设置种子,以便结果可以重复。
运行上面的代码后,可以得到聚类结果。`kmeans_result$cluster`返回每个观测所属的聚类,`kmeans_result$centers`返回聚类中心的坐标。
此外,还可以使用`ggplot2`包来将聚类结果可视化:
```R
library(ggplot2)
# 绘制散点图
ggplot(df, aes(x, y, color = factor(kmeans_result$cluster))) +
geom_point() +
scale_color_discrete(name = "Cluster")
```
上面的代码将数据框`df`中的`x`和`y`作为x轴和y轴,根据聚类结果着色。运行上面的代码后,可以得到可视化后的聚类结果。
阅读全文