KMeans聚类不平衡数据

3

我有一组包含50个特征(c1,c2,c3...)和超过80k行的数据。

每行都包含归一化的数字值(范围在0-1之间)。实际上,这是一个归一化的虚拟变量,有些行只有少数几个特征,3-4个(即如果没有值,则赋值为0)。大多数行有大约10-20个特征。

我使用KMeans对数据进行聚类,总是得到一个成员数量众多的簇。经分析,我发现少于4个特征的行往往会被聚集在一起,而这并不是我想要的结果。

有没有办法平衡聚类?


1
行数少于4个特征是否具有相同的对应特征。您尝试增加k值了吗? - guroosh
不,它们具有非常不同的特点。我使用肘部法方法对K进行了变化,范围从50-100。 - Ivan
请展示聚类代码部分和输出结果。 - guroosh
1个回答

5

k-means聚类的目标并不是产生平衡的簇。实际上,平衡的簇可能会任意糟糕(考虑一个具有重复数据的数据集)。k-means最小化平方和,将这些对象放入一个簇中似乎是有益的。

在稀疏、非连续数据上使用k-means通常会出现这种情况。编码的分类变量、二元变量和稀疏数据并不适合k-means使用“均值”。此外,您还需要仔细权衡变量。

现在有一个热修补程序,很可能会改善您的结果(至少在“感知”质量方面,因为我认为它并没有使它们在统计上更好)。即将每个向量归一化为单位长度(欧几里得范数1)。这将强调具有少量非零条目的行。您可能会更喜欢结果,但它们甚至更难解释。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接