组内点间距离计算公式及簇内节点紧密度度量选型
不等规模点位分组的空间紧密度度量选型方案
你的场景核心约束是不同分组的点位数量不固定,需要跨组横向比较空间聚拢程度,选指标的核心原则是必须做样本量归一化,避免分组大小本身干扰结果,按适配优先级从高到低推荐如下:
- 首选:平均成对距离
计算逻辑:统计当前分组内所有不重复两点组合的空间距离(平面坐标用欧氏距离,经纬度用Haversine球面距离),取算术平均值,公式如下:C_mpd = (2 / (m*(m-1))) * Σ_{1≤i<j≤m} d(p_i, p_j)
公式里m是当前分组的点位总数,d(p_i,p_j)是两点间的空间距离,i<j是为了避免重复计算同一对点的双向距离。
适配性:这个指标完全不受分组点位数量差异影响,做了对数归一化后结果是组内任意两点的平均间隔,数值越小代表分布越紧密,是跨组比较最公平的基准指标,只要你的点位数据没有明显的录入错误离群点,直接用这个就行。 - 次选:中位数成对距离
计算逻辑:和上面的计算步骤一致,只是把所有点对距离的算术平均换成取中位数。
适配性:如果你的数据可能混有少量错标位置的离群点(比如某组10个点里9个聚在100米范围,1个点错标到3公里外),中位数不会被极端值拉偏,抗噪性远好于平均值,同样不受分组规模差异影响,数值越小紧密度越高。 - 场景特化选项:平均最近邻距离
计算逻辑:对分组内每个点位,先找到它到同组其他点位的最小距离,再把所有点的最近邻距离取平均值,公式如下:C_mnnd = (1/m) * Σ_{i=1到m} min_{j≠i} d(p_i, p_j)
适配性:如果你的业务定义的“紧密”更偏向「每个点周边都有邻近点位、组内没有孤立点」,而不是要求所有点全局聚拢,就选这个。要注意这个指标的缺陷:如果一个组里存在两个离得很远的小点位堆,每个堆内部点挨得很近,这个指标会误判为紧密度很高,不如前两个全局距离指标稳健。
避坑提醒:不要直接用组内点对总距离、组直径(组内最远两点的距离)这类指标跨组比较,这类指标会随分组点位数量增加单调变大,分组大小不一样的时候结果完全没有参考价值。
快速选型参考:
- 数据质量高、无明显离群值,要通用公平的跨组排序:选平均成对距离
- 数据可能存在错标离群点:选中位数成对距离
- 业务重点考察点位局部邻接性、不要求全局聚拢:选平均最近邻距离
内容的提问来源于stack exchange,提问作者Zoya Ahmad
相关产品推荐
相关产品推荐

