从非均匀数据创建均匀分布的样本

Sample to Create Uniform Distribution from Non-Uniform Data

给定一个具有非均匀分布(高峰值)的数据集,我想重新采样以创建一个具有近似均匀分布的新数据集。我的做法:

  1. 将数据分成 bin。
  2. 目标 bin 级别 = 所有 bin 中每个 bin 的最小样本数。
  3. 随机删除样本,直到每个 bin 计数 = 目标 bin 级别。

有没有更好的技术?

我们知道对于均匀分布我们有

均值 = (a+b) / 2

方差 = (b-a)^2 / 12

所以你可以构造这些并从具有这些参数的均匀分布中采样,你可以设置 a = min(data) 和 b = max(data) 或者 a = mean(lowest_bin)和 b = mean(highest_bin) 或类似的东西。你想如何设置 a 和 b 取决于你的数据和你想要完成的事情