假设我有一个范围列表(以下限和上限的形式,包括)ranges = [(lb1, ub1), (lb2, ub2)...]
和一个正数k
。有没有办法从 ranges
给出的 N 维间隔中采样 k
个 N 维向量(N 由 len(ranges)
给出) code> 使得样本尽可能均匀地覆盖间隔?
我没有均匀的定义,这只是直观的(也许“相邻”点之间的距离相似)。我不是在寻找精确的算法(如果没有定义,这是不可能的),而是在寻找如何做到这一点的想法,这在 python/numpy 中很好。
我(可能)不只是寻找随机采样,这很容易创建不需要的样本簇,但该算法绝对可以是随机的。
最佳答案
如果点是独立的,那么应该存在簇。因此,您希望这些点不是独立的。你想要类似 low discrepancy sequence 的东西在N维中。 N 维中低差异序列的一种类型是 Sobol sequence 。这些是为高维数值积分而设计的,适用于许多但不是所有目的。
关于algorithm - NumPy:均匀分布的N维样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29213625/