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

R语言完成k-means无监督聚类后如何按综合表现对簇排序

R中K-means聚类后按综合表现给簇排序的实现方法

K-means输出的簇标签本身是无序的,要按综合表现排名核心是先将你定义的「综合表现」转化为可对比的单维度量化值,再按簇聚合计算得分排序,没有特殊的专用模型,按以下流程实现即可:

  • 第一步:统一指标量纲与方向
    先把所有和「综合表现」相关的预测变量做标准化处理(Z-score或0-1归一化都可),避免数值范围大的指标不合理地主导结果;如果存在负向指标(比如缺勤次数、扣分记录),要提前做正向化转换(比如取倒数、用最大值减原始值),保证所有指标数值越高代表表现越好。
  • 第二步:计算单样本综合表现得分
    分两种情况选计算方式:
    • 有明确业务权重规则:比如学生数据里考试分数占70%、课外活动分占30%,直接按权重对标准化后的指标加权求和,得到每个样本的综合得分即可,解释性最强。
    • 无预设权重:对标准化后的表现相关变量做主成分分析(PCA),取第一主成分的得分作为综合得分即可——第一主成分是所有变量的线性组合,能捕获最大比例的变量方差,不需要手动设定权重,适合无明确规则的场景。
  • 第三步:簇级聚合排序
    将每个样本的综合得分和K-means输出的簇标签绑定,按簇分组计算每个簇的平均综合得分,按得分从高到低排序就得到簇的排名,你也可以直接给簇重命名为对应排名的标签(比如排名1的簇命名为「高表现组」)方便后续分析。

可直接运行的R代码示例

假设你已经完成K-means聚类,结果存在kmeans_result对象中,原始分析数据集为stu_data,其中exam列为考试分数、extra_act列为课外活动得分:

library(dplyr)

# 提取表现相关指标并标准化
perf_data <- stu_data %>% 
  select(exam, extra_act) %>% 
  scale()

# 无预设权重时用PCA计算综合得分,有权重直接替换为加权求和逻辑即可
pca_fit <- prcomp(perf_data, center = FALSE, scale. = FALSE)
stu_data$composite_perf <- pca_fit$x[, 1]

# 绑定簇标签,计算簇级平均得分并排序
stu_data$cluster_label <- kmeans_result$cluster
cluster_ranking <- stu_data %>%
  group_by(cluster_label) %>%
  summarise(avg_composite_perf = mean(composite_perf), .groups = "drop") %>%
  arrange(desc(avg_composite_perf)) %>%
  mutate(rank = row_number())

# 查看最终排名结果
print(cluster_ranking)

注意:如果你的业务场景对指标权重有明确共识,不要强行使用PCA计算得分,手动按业务规则加权的结果可解释性远高于无监督生成的权重,更符合实际分析需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:27:35