API 参考

Design of Experiment API

Design of Experiment API ​

UQPyL.doe ​

doe 模块从 Problem 或 ModelProblem 的输入空间生成样本。采样器通常先在 [0, 1] 单位空间生成点,再通过 problem.unit_to_space() 映射到真实边界。

导入 ​

python
from UQPyL.doe import LHS, Random, FFD, Sobol

公共对象 ​

对象作用
Sampler大多数采样器的基础接口。
Random均匀随机采样。
LHSLatin hypercube sampling。
FFDFull factorial design。
SobolSobol 低差异序列采样。
SaltelliDesignSobol 敏感性分析专用设计。
FASTDesignFAST 敏感性分析专用设计。
MorrisDesignMorris 轨迹设计。

通用接口 ​

方法返回含义
sample(problem, nSamples=None, seed=None, nt=None)np.ndarray生成问题空间样本。
sampleWithMeta(problem, nSamples=None, seed=None, nt=None)(np.ndarray, dict)生成样本和设计元数据。
参数含义
problemProblem、ModelProblem 或 benchmark problem。
nSamples样本数或基础样本量,具体含义取决于采样器。
seed可选随机种子。
ntnSamples 的旧别名。

常用采样器 ​

采样器构造说明
RandomRandom()随机均匀采样。
LHSLHS(criterion="classic", iterations=5)Latin hypercube;criterion 可为 "classic"、"center"、"maximin" 等。
FFDFFD()全因子网格,使用 levels 而不是 nSamples。
SobolSobol(scramble=True, skipValue=0)Sobol 低差异序列;nSamples 通常建议为 2 的幂。

分析专用设计 ​

设计用途输出行数
SaltelliDesign(secondOrder=False)analysis.Sobol((D + 2) * N, D)
SaltelliDesign(secondOrder=True)带二阶指标的 analysis.Sobol((2 * D + 2) * N, D)
FASTDesign(M=4)analysis.FAST(N * D, D),且 N > 4 * M^2
MorrisDesign(numLevels=4)analysis.Morris(numTrajectory * (D + 1), D)

这些设计必须用 sampleWithMeta(),并把返回的 meta 传给对应分析方法。

元数据 ​

meta 是描述设计结构的字典。普通采样中它用于记录;指定设计分析中它是必需输入。

采样器关键字段
RandomdesignType, seed
LHSdesignType, criterion, iterations, seed
FFDdesignType, levels, seed
SoboldesignType, scramble, skipValue, seed
SaltelliDesigndesignType, N, secondOrder, blockSize, seed
FASTDesigndesignType, N, M, blockSize, seed
MorrisDesigndesignType, numTrajectory, numLevels, trajectorySize, seed

下一步 ​

目标阅读
用户指南Design of Experiment
敏感性分析Analysis API
建模协议Problem API