bundles / scipy 1.17.1 / scipy / stats / _qmc / Halton
ABCMeta
scipy.stats._qmc:Halton
source: /scipy/stats/_qmc.py :1117
Signature
def Halton ( d : int | numpy.integer , * , scramble : bool = True , optimization : Literal['random-cd', 'lloyd'] | None = None , rng : int | numpy.integer | numpy.random._generator.Generator | numpy.random.mtrand.RandomState | None = None , seed = None ) → None Members
Summary
Halton sequence.
Extended Summary
Pseudo-random number generator that generalize the Van der Corput sequence for multiple dimensions. The Halton sequence uses the base-two Van der Corput sequence for the first dimension, base-three for its second and base- for its -dimension, with the 'th prime.
Parameters
d: intDimension of the parameter space.
scramble: bool, optionalIf True, use random scrambling from [2]. Otherwise no scrambling is done. Default is True.
optimization: {None, "random-cd", "lloyd"}, optionalWhether to use an optimization scheme to improve the quality after sampling. Note that this is a post-processing step that does not guarantee that all properties of the sample will be conserved. Default is None.
random-cd: random permutations of coordinates to lower the centered discrepancy. The best sample based on the centered discrepancy is constantly updated. Centered discrepancy-based sampling shows better space-filling robustness toward 2D and 3D subprojections compared to using other discrepancy measures.lloyd: Perturb samples using a modified Lloyd-Max algorithm. The process converges to equally spaced samples.
rng: `numpy.random.Generator`, optionalPseudorandom number generator state. When
rngis None, a new numpy.random.Generator is created using entropy from the operating system. Types other than numpy.random.Generator are passed to numpy.random.default_rng to instantiate aGenerator.
Notes
The Halton sequence has severe striping artifacts for even modestly large dimensions. These can be ameliorated by scrambling. Scrambling also supports replication-based error estimates and extends applicability to unbounded integrands.
Examples
Generate samples from a low discrepancy sequence of Halton.from scipy.stats import qmc sampler = qmc.Halton(d=2, scramble=False) sample = sampler.random(n=5)✓
sample
✗qmc.discrepancy(sample)
✗_ = sampler.fast_forward(5) sample_continued = sampler.random(n=5)✓
sample_continued
✗l_bounds = [0, 2] u_bounds = [10, 5]✓
qmc.scale(sample_continued, l_bounds, u_bounds)
✗Aliases
-
scipy.stats._qmc.Halton