我在R中创建了一个k均值集群。任何人都可以帮我确定如果集群形成并且我想访问属于特定集群的数据点,我究竟能做到什么?
答案 0 :(得分:2)
以下是一个简单的示例:使用三个中心,基于iris
和Petal.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
还有几种方法可视化群集。但是,鉴于目前提出问题的一般形式,进一步详细说明似乎不合适。
希望这有帮助。