加权空间聚类

机器算法验证 聚类
2022-04-04 09:23:34

我对集群很陌生,所以请耐心等待。

我有一组点,每个点都有一个权重。我需要将这些点分成 N 个簇(定义了 N 个)。

我需要这些集群来满足两个条件:

  • 簇的点必须在空间上连接。
  • 如果一个簇有高权重的点,它必须更小(更少的点)。相反,如果权重之和很小,它必须有更多的点。

我读过另一篇文章,它做了非常相似的事情。

它定义了点之间的距离,将权重作为第四维度插入。然后它定义了几个参数来更加重视距离或权重。我无法定义这些参数(我认为这会因我尝试的每个示例而改变)。

另外,这篇其他帖子没有推荐任何聚类算法……我不知道从哪里开始。

谢谢您的帮助!

PS:顺便说一下,如果算法非常快会有所帮助。

1个回答

对于任何想知道答案的人,这就是我最终所做的:

我实现了一个普通的 K-Means 算法,但做了一些修改:

  • 对于属于该站点的所有点,质心的计算是 site = Sum(p * weight^alpha) / Sum(weight^alpha)。

  • 点 p 和站点 s 之间的平方距离的计算是 squareDistance(p,s)*weight^alpha 其中 alpha 是某个常数 > 0。

唯一的问题是我的实现很慢:(