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

如何解读R语言中fviz_cluster()结果及聚类的实际含义?

如何解读K-Means聚类结果,明确聚类实际含义?

针对你用K-Means分析地缘政治下企业税率、财政收支平衡、税收收入占GDP比重的场景,以下是直接落地的解读方法,附R代码实现:


1. 还原聚类的原始变量均值,获取实际业务含义

你当前的K-Means是基于标准化后的数据运行的,标准化值无法直接对应实际指标的量级,必须转回原始尺度计算每个聚类的特征均值:

# 将聚类标签合并到原始数据
data$cluster <- kmeans_vis$cluster

# 按聚类分组,计算原始变量的均值(替换为你的实际变量名:企业税率、财政收支平衡、税收GDP占比等)
cluster_profiles <- aggregate(data[, c("corporate_tax", "fiscal_balance", "tax_gdp_ratio")], 
                              by = list(Cluster = data$cluster), 
                              FUN = mean)

# 打印聚类特征概览
print(cluster_profiles)

通过这个结果,你能直接看到每个聚类在核心指标上的实际水平,比如“聚类1的企业税率均值25%,财政收支平衡为正,税收GDP占比30%”。

2. 可视化聚类间的特征差异,定位核心区分点

用箱线图或分组柱状图直观展示每个变量在不同聚类的分布,快速找到聚类的核心特征:

# 箱线图:展示单个变量在各聚类的分布(以企业税率为例)
ggplot(data, aes(x = factor(cluster), y = corporate_tax, fill = factor(cluster))) +
  geom_boxplot() +
  labs(title = "各聚类的企业税率分布", x = "聚类", y = "企业税率(%)") +
  theme(plot.title = element_text(hjust = 0.5))

# 分组柱状图:展示所有核心变量的聚类均值
library(tidyr)
cluster_profiles_long <- pivot_longer(cluster_profiles, 
                                      cols = -Cluster, 
                                      names_to = "Indicator", 
                                      values_to = "Mean")

ggplot(cluster_profiles_long, aes(x = factor(Cluster), y = Mean, fill = Indicator)) +
  geom_col(position = "dodge") +
  labs(title = "各聚类核心指标均值对比", x = "聚类", y = "指标均值") +
  theme(plot.title = element_text(hjust = 0.5))

通过这类图,你能快速识别:比如聚类2的财政收支平衡显著低于其他聚类,聚类3的税收GDP占比最高。

3. 结合地缘政治标签(Region)关联聚类含义

你已经有Region变量,可以交叉分析聚类与地区的对应关系,结合地缘政治背景赋予聚类实际意义:

# 计算各地区在每个聚类中的占比
cluster_region_dist <- table(data$Region, data$cluster) %>% 
  prop.table(margin = 1) %>%  # 按地区计算占比
  as.data.frame() %>%
  rename(Region = Var1, Cluster = Var2, Proportion = Freq)

# 可视化地区-聚类的分布
ggplot(cluster_region_dist, aes(x = Region, y = Proportion, fill = factor(Cluster))) +
  geom_col(position = "stack") +
  labs(title = "各地区的聚类分布占比", x = "地区", y = "占比") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        plot.title = element_text(hjust = 0.5))

比如如果聚类4主要由欧盟国家组成,且该聚类的企业税率高、财政收支平衡稳定,就可以命名为“欧盟高税收稳健型经济体”。

4. 验证聚类稳定性(可选)

如果想确保聚类结果不是随机的,可以用bootstrap重采样或换用不同聚类算法(比如层次聚类)验证:

# 层次聚类验证
hc <- hclust(dist(scale(data[,3:6])), method = "ward.D2")
hc_clusters <- cutree(hc, k = 4)

# 对比K-Means和层次聚类的一致性
table(kmeans_vis$cluster, hc_clusters)

如果两种算法的聚类结果高度重合,说明你的聚类特征是稳定的,含义更可信。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:57:34