Python 寻找一种聚类算法,该算法可以通过围绕质心的密度进行聚类,但具有固定的最大距离截止点

Python 寻找一种聚类算法,该算法可以通过围绕质心的密度进行聚类,但具有固定的最大距离截止点,python,machine-learning,coordinates,cluster-analysis,k-means,Python,Machine Learning,Coordinates,Cluster Analysis,K Means,我目前有一个三维坐标的列表,我希望通过密度将其聚类为未知数量的聚类。除此之外,我还想通过人口和到质心的距离对簇进行评分。 我还希望能够设置到某个质心的最大可能距离。理想情况下,质心表示数据集的一个点,但并非绝对必要。我想对大约100到10000个3D坐标的列表执行此操作 例如,假设我有一个点[x,y,z],它可能是我的质心: 最接近x,y,z的点对其得分的贡献最大(即逻辑评分函数,如y=(1+exp(4*(-1.0+x))**-1,其中x表示到点[x,y,z]的欧几里德距离 (**+-1) 由于

我目前有一个三维坐标的列表,我希望通过密度将其聚类为未知数量的聚类。除此之外,我还想通过人口和到质心的距离对簇进行评分。 我还希望能够设置到某个质心的最大可能距离。理想情况下,质心表示数据集的一个点,但并非绝对必要。我想对大约100到10000个3D坐标的列表执行此操作

例如,假设我有一个点[x,y,z],它可能是我的质心: 最接近x,y,z的点对其得分的贡献最大(即逻辑评分函数,如y=(1+exp(4*(-1.0+x))**-1,其中x表示到点[x,y,z]的欧几里德距离 (**+-1)

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

我想这样做,直到没有更多的集群,我只对质心感兴趣,因此它最好是一个真正的数据点,而不是一个插值的,它也有其他属性连接到它

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

目前,我只是计算每个点相对于所有其他点的接近度,并根据每个点的数量和到相邻点的距离对每个点进行评分(使用上面讨论的相同评分函数),然后我取得分最高的一个点,并删除在某个截止距离内的所有其他得分较低的点。它完成了任务,而且准确,但速度太慢


我希望我能清楚地知道我想做什么。

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

那么剩下的部分是否只使用这个预计算的数据