本文簡要介紹 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。