寻找一种聚类算法,它可以按密度围绕一个质心进行聚类,但具有固定的最大距离cu

2024-04-20 02:10:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在有一个三维坐标的列表,我想按密度聚类成一个未知数量的聚类。除此之外,我还想通过总体和到质心的距离对簇进行评分。 我也想能够设置一个最大可能的距离,从某个质心。理想情况下,质心表示数据集的一个点,但这不是绝对必要的。我想为一个从大约100到10000个三维坐标的列表这样做

例如,假设我有一个点[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,它比我的代码快几个数量级,但是它显然不能完成我想要做的事情

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

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


Tags: 数据函数https距离列表数量情况聚类