You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用kernlab包的kkmeans获取样本聚类归属并存储为向量?

获取kkmeans的样本聚类归属

嘿,这个问题我之前也碰到过!其实kernlab包的kkmeans函数返回的结果里已经包含了所有样本的聚类标签,只是需要用正确的方式提取出来就行,下面给你两种靠谱的方法:

方法1:使用predict()函数(推荐)

这是最符合R语言惯用逻辑的方式,直接对kkmeans的结果调用predict()就能得到每个样本的聚类归属向量:

library(kernlab)
# 运行核K-Means
test <- kkmeans(as.matrix(iris[,-5]), 3)
# 提取聚类标签
cluster_assignments <- predict(test)

方法2:直接访问对象的内部属性

kkmeans返回的是一个kkmeans类的S4对象,你也可以直接访问它的@.Data属性来获取标签:

cluster_assignments <- test@.Data

不管用哪种方法,cluster_assignments都是一个和原数据集样本顺序完全对应的向量,每个元素代表对应样本的聚类编号。你可以用length(cluster_assignments)验证一下,它的长度应该等于原数据集的行数(比如这里nrow(iris))。

如果需要把聚类标签和原数据集绑定在一起,还可以这么做:

# 合并标签到iris数据集
iris_with_clusters <- cbind(iris, cluster = cluster_assignments)

内容的提问来源于stack exchange,提问作者Mateus Maia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:41:36