首页 > 解决方案 > 如何使用 kkmeans(kernlab 包)分配新集群

问题描述

包中的函数kkmeanskernlab特定数据集中执行 Kernl K-Means。但是,当我运行该函数时,它只会返回中心、簇大小和簇内平方和。这是一个例子

library(kernlab)
test<-kkmeans(as.matrix(iris[,-5]),3)
test

但我对每个观察的集群成员分类感兴趣。有人知道如何将这些值存储在向量中吗?

标签: rcluster-computingcluster-analysisk-means

解决方案


如果您查看test变量,您会看到集群成员身份存储在.Data组件中。您可以使用以下方式访问它:

cluster_membership <- test@.Data
print(cluster_membership)

输出:

[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 3 2 2 2 3 2 3 3 2 3 2 3 2 2 3 2 3 2 2 2 2
[75] 2 2 2 2 2 3 3 3 3 2 3 2 2 2 3 3 3 2 3 3 3 3 3 2 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 2 3 3 3 2 3 3 2 2 3 3 3 3 3 2 3 3 3 3 2 3 3 3 3 3 3 3 2 3
[149] 3 2

但是,如果您愿意,可以使用测试变量本身进行绘图,因为它将vector类扩展为specc对象:

plot(iris, col=test)

kkmeans 图


推荐阅读