推土机距离非正式地将每个分布或在这种情况下的直方图视为一堆泥土。然后根据 EMD 找到中心包括找到最小化每个直方图面积单位乘以它必须移动的距离的乘积的点。例如,移动具有 7 个成员的直方图 bin 与移动具有 1 个成员的 7 个单元的直方图 bin 具有相同的 EMD。为简单起见,我假设您的分布只有一个维度,但如果不是,则可以沿每个维度独立找到该中心点。
推土机距离实际上非常类似于物理学或静力学中的概念;第一刻。形状的一阶矩定义为每个面积单位乘以该单位面积到中心点的距离的乘积。找到中心点,使得中心点每一侧(沿任何主要维度)的总面积相同。
静态爱好者会记得,这个中心点实际上只是沿每个维度的区域分布的平均值。EMD 定义产生了类似的结果。因此,要找到直方图组的 EMD 质心,请执行以下操作:
将每个 bin 的每个成员视为一个单元。为每个单元分配与该 bin 关联的值。因此,如果对于给定维度 bin 0-10 有 5 个条目,则您有 5 个单元,每个单元的值为 5(bin 的平均值)。找到所有单位的中值,这是该维度的质心值。如果有多个维度,请重复所有维度,仅此而已!
在这个有 2 个直方图的简单示例中,将每个 bin 元素视为一个单元后,中位数(因此中心)为 4。显然,将中心移动到 4 以上或以下将导致 EMD 增加 5 并减少 4 .
进入问题的核心,您可以做得比对所有直方图元素进行排序以找到中位数略好,而不是使用 QuickSelect 获得平均时间复杂度 O(n),最坏情况为 O(nlogn)。