本文簡要介紹 python 語言中 scipy.stats.qmc.discrepancy
的用法。
用法:
scipy.stats.qmc.discrepancy(sample, *, iterative=False, method='CD', workers=1)#
給定樣本的差異。
- sample: 數組 (n, d)
計算差異的樣本。
- iterative: 布爾型,可選
如果不使用它來更新差異,則必須為 False。默認為假。有關詳細信息,請參閱注釋。
- method: str,可選
差異類型,可以是
CD
、WD
、MD
或L2-star
。有關詳細信息,請參閱注釋。默認為CD
。- workers: 整數,可選
用於並行處理的工作人員數量。如果給定 -1,則使用所有 CPU 線程。默認值為 1。
- discrepancy: 浮點數
差異。
參數 ::
返回 ::
注意:
差異是用於評估超立方體中多個樣本的空間填充的均勻性標準。差異量化了超立方體上的連續均勻分布與 不同樣本點上的離散均勻分布之間的距離。
該值越低,參數空間的覆蓋率越好。
對於超立方體的一組子集,差異是其中一個子集中的樣本點分數與該子集的體積之間的差異。對應於不同的子集集合,存在不同的差異定義。某些版本對子集采用均方根差異而不是最大值。
如果滿足以下標準 [1],則均勻性度量是合理的:
它在置換因子和/或運行下是不變的。
它在坐標旋轉下是不變的。
它不僅可以測量樣本在超立方體上的均勻性,還可以測量樣本在低維超立方體的非空子集上的投影均勻性。
有一些合理的幾何意義。
它很容易計算。
它滿足Koksma-Hlawka-like 不等式。
它與實驗設計中的其他標準一致。
有四種方法可用:
CD
:居中差異 - 子空間涉及超立方體的一個角WD
: Wrap-around 差異 - 子空間可以環繞邊界MD
:混合差異 - 覆蓋更多標準的 CD/WD 之間的混合L2-star
:L2 星差異 - 類似於 CD 但旋轉變體
有關每種方法的精確定義,請參見 [2]。
最後,使用
iterative=True
,可以像我們有 樣本一樣計算差異。如果我們想在采樣中添加一個點並檢查差異最小的候選者,這很有用。然後,您可以使用update_discrepancy
更新與每個候選人的差異。這種方法比計算大量候選的差異要快。參考:
[1]方等人。 “計算機實驗的設計和建模”。計算機科學與數據分析係列,2006 年。
[2]周Y.-D.等。 “quasi-random 點集的混合差異。”複雜性雜誌,29 (3-4),第 283-301 頁,2013 年。
[3]T. T. 沃諾克。 “低差異點集的計算研究。”數論在數值分析中的應用,學術出版社,第 319-343 頁,1972 年。
例子:
使用差異計算樣本的質量:
>>> import numpy as np >>> from scipy.stats import qmc >>> space = np.array([[1, 3], [2, 6], [3, 2], [4, 5], [5, 1], [6, 4]]) >>> l_bounds = [0.5, 0.5] >>> u_bounds = [6.5, 6.5] >>> space = qmc.scale(space, l_bounds, u_bounds, reverse=True) >>> space array([[0.08333333, 0.41666667], [0.25 , 0.91666667], [0.41666667, 0.25 ], [0.58333333, 0.75 ], [0.75 , 0.08333333], [0.91666667, 0.58333333]]) >>> qmc.discrepancy(space) 0.008142039609053464
我們還可以使用
iterative=True
迭代計算CD
差異。>>> disc_init = qmc.discrepancy(space[:-1], iterative=True) >>> disc_init 0.04769081147119336 >>> qmc.update_discrepancy(space[-1], space[:-1], disc_init) 0.008142039609053513
相關用法
- Python SciPy qmc.Sobol用法及代碼示例
- Python SciPy qmc.QMCEngine用法及代碼示例
- Python SciPy qmc.LatinHypercube用法及代碼示例
- Python SciPy qmc.update_discrepancy用法及代碼示例
- Python SciPy qmc.MultinomialQMC用法及代碼示例
- Python SciPy qmc.MultivariateNormalQMC用法及代碼示例
- Python SciPy qmc.geometric_discrepancy用法及代碼示例
- Python SciPy qmc.Halton用法及代碼示例
- 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.discrepancy。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。