【发布时间】:2014-05-09 17:01:32
【问题描述】:
给定某个二元属性,我想确保由 K-means 生成的簇具有相等数量的数据点,其中所述二元属性的值为 1。
我知道上面的句子很罗嗦,所以我会用一个例子来解释。
假设我有一个属性“Asian”,在我的 100 个数据点中,有 40 个的值为“Asian”=1。对于 k = 10,我希望每个集群恰好有 4 个点,“Asian”=1。
有没有一种简单的方法来实现这一点?我已经绞尽脑汁,但始终无法想出一个。请注意,对于聚类问题,我是初学者。
【问题讨论】:
-
这个怎么样:让
P成为任何符合您价值标准的点。如果一个质心聚集超过nPs;开始将Ps 从其当前集群移动到最佳匹配集群(由点与集群质心之间的距离定义)小于nPs? -
它肯定不再是 k-means...k-means 在二进制属性上没有多大意义。
-
@Michael 这听起来很有趣。但是,这不会使集群在空间上非常不连贯吗?
-
@Anony-Mousse 是对 k-means 的修改。请记住,其他非二进制属性仍然存在。该约束仅适用于二元属性。
-
@Rabee:我自己没有尝试过,所以我不知道它是否会产生有用的结果。这只是一个想法,因此将其作为评论而不是答案。
标签: cluster-analysis data-mining k-means