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

R语言中为K-means聚类结果匹配鸢尾花物种标签的方法咨询

K-means聚类编号映射鸢尾花物种优化方案

K-means输出的聚类编号本身是无顺序的随机标识,硬编码编号和物种的对应关系、固定随机种子的方式适配性极差,你可以用以下更简便的方案实现需求:

  • 方案1:静态映射(替代原有循环,代码极简)

    用命名向量做批量匹配,完全替代多层循环,代码量大幅缩减:

    # 按需调整编号对应的物种名即可
    cluster_map <- c("1" = "versicolor", "2" = "setosa", "3" = "virginica")
    km.out$cluster <- cluster_map[as.character(km.out$cluster)]
    
  • 方案2:自动动态映射(无需固定随机种子)

    不需要提前指定编号对应关系,通过统计每个聚类中占比最高的真实鸢尾花物种,自动完成映射,适配所有运行环境和参数调整场景:

    基础包实现(无需加载第三方库)

    # 生成聚类编号和真实物种的交叉表
    cross_tb <- table(km.out$cluster, iris$Species)
    # 每个聚类匹配出现频次最高的物种
    cluster_map <- colnames(cross_tb)[max.col(cross_tb)]
    names(cluster_map) <- rownames(cross_tb)
    # 批量替换聚类编号
    km.out$cluster <- cluster_map[as.character(km.out$cluster)]
    

    dplyr实现(语法更易读)

    library(dplyr)
    cluster_map <- data.frame(cluster = km.out$cluster, species = iris$Species) %>%
      group_by(cluster) %>%
      count(species, sort = TRUE) %>%
      slice(1) %>%
      pull(species, name = cluster)
    
    km.out$cluster <- cluster_map[as.character(km.out$cluster)]
    

内容的提问来源于stack exchange,提问作者Jason。

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:45:03