本文简要介绍 python 语言中 scipy.stats.qmc.Halton
的用法。
用法:
class scipy.stats.qmc.Halton(d, *, scramble=True, optimization=None, seed=None)#
霍尔顿序列。
将范德科普特序列推广到多维的伪随机数生成器。 Halton 序列使用base-two Van der Corput 序列作为第一个维度,base-three 作为第二个维度, 作为其n-dimension。
- d: int
参数空间的维度。
- scramble: 布尔型,可选
如果为真,请使用欧文加扰。否则不进行加扰。默认为真。
- optimization: {无,“random-cd”,“lloyd”},可选
是否使用优化方案来提高采样后的质量。请注意,这是一个后处理步骤,不能保证样品的所有属性都得到保留。默认为“无”。
random-cd
:坐标的随机排列以降低中心差异。基于中心差异的最佳样本不断更新。与使用其他差异度量相比,基于中心差异的采样对 2D 和 3D 子投影显示出更好的 space-filling 鲁棒性。lloyd
:使用修改后的Lloyd-Max 算法扰动样本。该过程收敛到等间隔的样本。
- seed: {无,整数,
numpy.random.Generator
},可选 如果种子是 int 或 None,一个新的
numpy.random.Generator
是使用创建的np.random.default_rng(seed)
.如果种子已经是一个Generator
实例,然后使用提供的实例。
参数 ::
注意:
Halton 序列对于即使是适度大的维度也有严重的条带伪影。这些可以通过加扰来改善。加扰还支持基于复制的错误估计并将适用性扩展到无界被积函数。
参考:
[1]Halton,“关于某些 quasi-random 点序列在评估多维积分中的效率”,Numerische Mathematik,1960 年。
[2]A. B.欧文。 “R 中的随机 Halton 算法”,arXiv:1706.02808,2017 年。
例子:
从 Halton 的低差异序列中生成样本。
>>> from scipy.stats import qmc >>> sampler = qmc.Halton(d=2, scramble=False) >>> sample = sampler.random(n=5) >>> sample array([[0. , 0. ], [0.5 , 0.33333333], [0.25 , 0.66666667], [0.75 , 0.11111111], [0.125 , 0.44444444]])
使用差异标准计算样本的质量。
>>> qmc.discrepancy(sample) 0.088893711419753
如果有人想继续现有的设计,可以通过再次调用
random
来获得加分。或者,您可以跳过一些要点,例如:>>> _ = sampler.fast_forward(5) >>> sample_continued = sampler.random(n=5) >>> sample_continued array([[0.3125 , 0.37037037], [0.8125 , 0.7037037 ], [0.1875 , 0.14814815], [0.6875 , 0.48148148], [0.4375 , 0.81481481]])
最后,样本可以缩放到边界。
>>> l_bounds = [0, 2] >>> u_bounds = [10, 5] >>> qmc.scale(sample_continued, l_bounds, u_bounds) array([[3.125 , 3.11111111], [8.125 , 4.11111111], [1.875 , 2.44444444], [6.875 , 3.44444444], [4.375 , 4.44444444]])
相关用法
- Python SciPy qmc.Sobol用法及代码示例
- Python SciPy qmc.QMCEngine用法及代码示例
- Python SciPy qmc.LatinHypercube用法及代码示例
- Python SciPy qmc.update_discrepancy用法及代码示例
- Python SciPy qmc.discrepancy用法及代码示例
- Python SciPy qmc.MultinomialQMC用法及代码示例
- Python SciPy qmc.MultivariateNormalQMC用法及代码示例
- Python SciPy qmc.geometric_discrepancy用法及代码示例
- Python SciPy qmc.scale用法及代码示例
- Python SciPy qmc.PoissonDisk用法及代码示例
- Python SciPy interpolate.make_interp_spline用法及代码示例
- Python SciPy stats.anderson用法及代码示例
- Python SciPy ClusterNode.pre_order用法及代码示例
- Python SciPy stats.iqr用法及代码示例
- Python SciPy FortranFile.read_record用法及代码示例
- Python SciPy ndimage.correlate用法及代码示例
- Python SciPy special.exp1用法及代码示例
- Python SciPy special.expn用法及代码示例
- Python SciPy signal.czt_points用法及代码示例
- Python SciPy interpolate.krogh_interpolate用法及代码示例
- Python SciPy ndimage.morphological_gradient用法及代码示例
- Python SciPy distance.sokalmichener用法及代码示例
- Python SciPy linalg.eigvalsh_tridiagonal用法及代码示例
- Python SciPy linalg.cdf2rdf用法及代码示例
- Python SciPy csc_array.diagonal用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.qmc.Halton。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。