是否可以将 2D 数据划分为 bin 以使每个 bin 包含相同数量的样本?

计算科学 Python scipy 麻木的
2021-11-30 16:18:26

我正在尝试将遵循双变量分布的数据排序为 numpy histogramdd,其中每个 bin 应包含相同数量的数据点(到最近的整个样本)。

我希望某种分位数方法是必需的,并且已经尝试过scipy.stats.mstats.mquantiles,根据文档,它最多需要 2D 数据。但是,它似乎独立地获取维度,将每个维度拆分为相等的边际概率,这并没有达到二维等概率箱的预期结果。

scipy/numpy 或其他包中是否有内置方法来实现这一点(2D 或更高版本)?如果没有,是否有旨在实现这一目标的算法,我可以直接自己实现?

2个回答

分隔箱,您显然不能这样做。这很容易看出您是否想要拥有 4 个 bin 并在处拥有 10 个数据点,在处拥有 10 个数据点。xiyi(0,0)(1,1)

但是您可以使用树数据结构,在其中递归地细分每个 bin,使其包含相同数量的点。kd