寻找一种聚类算法,它可以围绕质心聚类,但具有固定的最大距离截止值

问题描述 投票:-1回答:1

我目前有一个带有3D坐标的列表,我希望按密度聚类成未知数量的聚类。除此之外,我想按人口和距质心的距离对群集进行评分。我还希望能够设置与某个质心的最大可能距离。理想情况下,质心代表数据集的一个点,但并非绝对必要。我想这样做的列表范围从大约100到10000 3D坐标。

例如,假设我有一个点[x,y,z]可能是我的质心:最接近x,y,z的点应该对其得分贡献最大(即逻辑评分函数,如y =(1) + exp(4 *( - 1.0 + x)))** -1,其中x表示到点[x,y,z]的欧几里德距离(https://www.wolframalpha.com/input/?i=(1+%2B+exp(4(-1.0%2Bx))) ** + - 1)

由于此功能从未达到0,因此需要设置最大距离,例如, 2个距离单位,用于设置群集的限制。

我想这样做直到不再能够制作簇,我只对质心感兴趣,因此它最好是一个真正的数据点,而不是插值的,它还有其他属性连接到它。

我已经尝试过sklearn的DBSCAN,它比我的代码快了几个数量级,但它显然没有完成我想做的事情

目前我只计算相对于所有其他点的每个点的接近度,并且通过与其邻居的数量和距离(使用上面讨论的相同评分函数)对每个点进行评分,然后我获得最高得分点并移除所有其他点,得分较低,在一定截止距离内的点数。它完成工作并且准确,但速度太慢。

我希望我可以对自己想做的事情有所了解。

python machine-learning coordinates cluster-analysis k-means
1个回答
0
投票

使用sklearn的邻居搜索功能快速查找最大距离2内的点。只有一次计算逻辑权重一次才能执行此操作。

然后使用这个预先计算的数据来完成其余的工作?

© www.soinside.com 2019 - 2024. All rights reserved.