这里有already a question,但答案包含一个断开的链接,并且已经超过两年了,我希望现在有一个更好的解决方案:)
低差异准随机序列,例如, Sobol序列比均匀随机序列更均匀地填充空间。有没有一种好的/简单的方法在python中生成它们?
答案 0 :(得分:8)
我认为Python中低差异序列的最佳替代方案是灵敏度分析库(SALib):
https://github.com/SALib/SALib
我认为这是一个活跃的项目,您可以联系作者,检查您所需的功能是否已经实施。如果这不能解决您的问题,Corrado Chisari将Matlab(由John Burkardt制作)制作的SOBOL版本移植到Python,您可以在此处访问它:
http://people.sc.fsu.edu/~jburkardt/py_src/sobol/sobol.html
有人清理了这些来源中的评论,并将其放在docstrings的格式中。它更具可读性,你可以在这里访问它:
答案 1 :(得分:1)
Scipy 现在有这个选项http://scipy.github.io/devdocs/generated/scipy.stats.qmc.Sobol.html
PyTorch 还证明了生成 sobol 随机数的选项。它允许高达 ~1k 的维度,并且可以选择开启加扰。 https://pytorch.org/docs/stable/generated/torch.quasirandom.SobolEngine.html
答案 2 :(得分:0)
Chaospy也是有效的选项。人们可以选择几种低差异采样方法(包括'Sobol,拉丁超立方体等)-有关更多详细信息,请参见the documentation。