作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组包含 50 个特征(c1、c2、c3 ...)的数据,超过 80k 行。
每行包含标准化数值(范围 0-1)。它实际上是一个标准化的虚拟变量,其中一些行只有很少的特征,3-4(即如果没有值则分配 0)。大多数行大约有 10-20 个特征。
我使用 KMeans 对数据进行聚类,结果总是产生一个具有大量成员的集群。经过分析,我注意到少于 4 个特征的行往往会聚集在一起,这不是我想要的。
是否有办法平衡集群?
最佳答案
生成平衡簇并不是 k 均值目标的一部分。事实上,具有平衡集群的解决方案可能很糟糕(只需考虑具有重复项的数据集)。 K 均值最小化平方和,将这些对象放入一个簇中似乎是有益的。
您看到的是在稀疏、非连续数据上使用 k 均值的典型效果。编码分类变量、二元变量和稀疏数据不太适合 means 的 k 均值使用。此外,您可能还需要仔细权衡变量。
现在,一个可能会改善您的结果的修补程序(至少是感知质量,因为我认为它不会使它们统计更好)是标准化每个向量到单位长度(欧几里得范数 1)。这将强调具有很少非零条目的行。您可能会更喜欢结果,但它们更难解释。
关于python - KMeans 对不平衡数据进行聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52253787/
我是一名优秀的程序员,十分优秀!