R中行向量K-means聚类:fviz_nbclust报错及聚类图解读
行向量聚类问题解决与结果解读
一、修复fviz_nbclust()报错
你的B1是行向量,直接用c(B1)会生成一维向量,不符合fviz_nbclust()对矩阵/数据框的输入要求。只需把行向量转置为列矩阵(或数据框)即可:
# 转置为列矩阵 B1_matrix <- t(B1) # 运行fviz_nbclust fviz_nbclust(B1_matrix, kmeans, method = "wss")
这是因为聚类算法要求数据结构为样本行、特征列,转置后的矩阵才满足这个格式。
二、K-means聚类结果解读
你得到的10类聚类结果可以从两部分拆解:
- 聚类规模(sizes):每个数字对应该类包含的样本数。比如第9类有918820个样本,占总样本(919296)的绝大多数,说明数据里绝大多数数值处于极低区间;剩余9类样本量都很小,是少数高值点。
- 聚类均值(Cluster means):每一类的中心数值,代表该类样本的典型值:
- 第9类均值约为0.0015,和它的超大样本量匹配,说明大部分数据都是接近0的极小值。
- 其他类均值从13.1到196.4不等,代表这些是数值较高的少数样本,各自聚成不同组:比如第3类是均值最高的组(196.4),仅10个样本;第2类是小分组里均值最低的(13.1),有200个样本。
本质上你的数据分布极度倾斜:绝大多数是接近0的数值,少数高值被分成9个小簇,每个簇对应不同的高值区间。
内容的提问来源于stack exchange,提问作者Yogesh Selvakumar
相关产品推荐
相关产品推荐

