如何使用 kkmeans(kernlab 包)分配新集群

How to assign the new clusters using kkmeans (kernlab package)

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

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

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

如果您查看 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 class 扩展为 specc 对象:

plot(iris, col=test)