R语言kmeans聚类clusplot()图Component含义与簇重叠问题咨询
问题解答
1. Component 1与Component 2的含义
clusplot() 来自cluster包,面对维度超过2的数据集时,会默认先对输入的数值型数据做主成分分析(PCA)降维,把原本高维空间的样本投影到能最大程度保留原始数据差异的二维平面上,这两个轴的含义如下:
- Component 1(第一主成分):是原始所有特征的线性组合,能解释原始数据最多的方差比例,在你使用的小麦种子数据集里,它一般对应籽粒整体大小相关的综合指标(整合了面积、周长、粒长、千粒重等变量的信息)。
- Component 2(第二主成分):是和第一主成分完全不相关的第二个线性组合,能解释剩余方差里的最大比例,一般对应籽粒形状相关的综合指标(整合了紧凑度、粒宽、沟槽长度等变量的信息)。
你可以自己运行下面的代码查看两个主成分的具体构成、以及累计解释的方差占比:
pca_res <- prcomp(newseeds, scale. = TRUE) summary(pca_res) # 查看方差解释率 pca_res$rotation # 查看每个原始变量对主成分的贡献权重(载荷)
注意:这两个成分不是你原始数据里的某一个单独列,是降维后生成的综合维度,图上一般会标注两个成分累计解释了原始数据多少比例的信息,通常超过75%就说明这个二维图能比较好地反映原始数据的分布规律。
2. 聚类簇椭圆重叠的原因
图里的阴影椭圆是每个簇的分布范围椭圆(默认覆盖簇内约95%的样本),出现重叠主要有3个原因:
- 降维带来的信息损失:你的
newseeds一共有7个数值特征,kmeans是在7维空间里做的聚类,很可能3个簇在7维空间里是完全可分的,但投影到2个主成分平面时,剩下5个维度上的簇间差异被丢弃了,投影后的二维分布就会出现重叠。 - 数据本身存在边界模糊的样本:小麦种子数据集里3个品种的籽粒形态本身就存在连续过渡的特征,没有绝对清晰的分界,部分样本的特征本来就处在两个类别的中间地带,kmeans是按距离最近的簇中心做硬分配,这些边界样本的存在自然会让簇的分布范围出现交叠。
- 椭圆不是聚类的硬边界:这个椭圆只是对簇内样本分布的统计描述(假设簇内样本服从正态分布时的覆盖范围),不是kmeans判定簇归属的边界,重叠只代表重叠区域的样本在这两个主成分维度上特征相似度高,不代表聚类结果错误。
参数补充说明
你绘图代码里的参数可以按需调整验证效果:
lines=0是不绘制样本到对应簇中心的连线,改成lines=1就会显示连线labels=2是同时显示簇编号和样本点标签,改成labels=0就不会显示任何点标签color=TRUE, shade=TRUE是给不同簇的椭圆上色、加阴影,方便区分
内容的提问来源于stack exchange,提问作者WaffleCat
相关产品推荐
相关产品推荐

