首页 > 解决方案 > 在 R 中用 K-means 标记特定集群

问题描述

如果我只想标记集群 3 中的数据点,需要对代码进行哪些修改?

> library(datasets)
head(iris)
library(ggplot2)
ggplot(iris, aes(Petal.Length, Petal.Width, color = Species)) + geom_point()
set.seed(20)
irisCluster <- kmeans(iris[, 3:4], 3, nstart = 20)
irisCluster

table(irisCluster$cluster, iris$Species)
    setosa versicolor virginica

irisCluster$cluster <- as.factor(irisCluster$cluster)
ggplot(iris, aes(Petal.Length, Petal.Width, color = irisCluster$cluster)) + geom_point()`

标签: rk-meanslabeling

解决方案


您的问题有些模棱两可,但如果您想突出显示特定集群中的点,您可以使用gghighlight包,例如

library(datasets)
library(ggplot2)
#install.packages("gghighlight")
library(gghighlight)

set.seed(20)
irisCluster <- kmeans(iris[, 3:4], 3, nstart = 20)
irisCluster

table(irisCluster$cluster, iris$Species)

iris$cluster <- as.factor(irisCluster$cluster)
  ggplot(iris, aes(Petal.Length, Petal.Width, color = factor(cluster))) +
    geom_point() +
  gghighlight(cluster == 3, keep_scales = TRUE)

例子.png


推荐阅读