本文简要介绍 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。