识别集群中的数据点

时间:2016-05-26 06:33:04

标签: r cluster-analysis k-means

我在R中创建了一个k均值集群。任何人都可以帮我确定如果集群形成并且我想访问属于特定集群的数据点,我究竟能做到什么?

1 个答案:

答案 0 :(得分:2)

以下是一个简单的示例:使用三个中心,基于irisPetal.Length的值,使用k-means对Petal.Width集合进行聚类:

k_cluster <- kmeans(iris[c("Petal.Length","Petal.Width")], 3)
#>k_cluster
#K-means clustering with 3 clusters of sizes 50, 54, 46
#
#Cluster means:
#  Petal.Length Petal.Width
#1     1.462000    0.246000
#2     4.292593    1.359259
#3     5.626087    2.047826

#Clustering vector:
#  [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2
# [56] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 2 3 3 3
#[111] 3 3 3 3 3 3 3 3 3 2 3 3 3 2 3 3 2 2 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3

#Within cluster sum of squares by cluster:
#[1]  2.02200 14.22741 15.16348
# (between_SS / total_SS =  94.3 %)

将条目(iris集的行)分配给三个集群之一存储在集群向量k_cluster$cluster中。因此,要访问属于第3集群的条目,可以使用

iris[k_cluster$cluster==3,]
#> head(iris[k_cluster$cluster==3,])
#   Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
#51          7.0         3.2          4.7         1.4 versicolor
#52          6.4         3.2          4.5         1.5 versicolor
#54          5.5         2.3          4.0         1.3 versicolor
#55          6.5         2.8          4.6         1.5 versicolor
#56          5.7         2.8          4.5         1.3 versicolor
#57          6.3         3.3          4.7         1.6 versicolor

还有几种方法可视化群集。但是,鉴于目前提出问题的一般形式,进一步详细说明似乎不合适。

希望这有帮助。