KMeans对不平衡数据进行聚类

时间:2018-09-10 08:26:05

标签: python cluster-analysis k-means data-science feature-engineering

我有一组具有50个特征(c1,c2,c3 ...)的数据,具有超过8万行。

每行包含归一化的数值(范围为0-1)。它实际上是一个归一化的伪变量,其中某些行只有3-4个很少的特征(即,如果没有值,则分配0)。大多数行具有大约10-20个功能。

我使用KMeans对数据进行聚类,总是导致具有大量成员的聚类。经过分析,我注意到具有少于4个特征的行趋于聚集在一起,这不是我想要的。

反正是集群平衡了吗?

1 个答案:

答案 0 :(得分:1)

产生平衡簇不属于k均值目标的一部分。实际上,具有均衡群集的解决方案可能会很糟糕(只需考虑具有重复项的数据集)。 K-means使平方和最小,并将这些对象放在一个群集中似乎是有益的。

您看到的是在稀疏,非连续数据上使用k均值的典型效果。编码的分类变量,二进制变量和稀疏数据仅不太适合 means 的k均值使用。此外,您可能还需要仔细权重变量。

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