Пример #1
0
def scalar_function_of_normal(
    store_name: str,
    N: int,
    M: int,
    X_std: float,
    noise_std: float,
    CDF_scale: NP.Array = None,
    CDF_loc: NP.Array = None,
    pre_function_with_parameters: function.CallableWithParameters = None,
    function_with_parameters: function.CallableWithParameters = None
) -> data.Store:
    X_marginal = distribution.Univariate('norm', loc=0, scale=X_std)
    X_dist = distribution.Multivariate.Independent(M=M, marginals=X_marginal)
    noise_dist = (distribution.Multivariate.Normal(mean=zeros(1, dtype=float),
                                                   covariance=noise_std**2 *
                                                   eye(1, dtype=float))
                  if noise_std > EFFECTIVELY_ZERO else None)
    return function.sample(
        store_dir=store_dir(store_name, noise_std, CDF_scale),
        N=N,
        X_distribution=X_dist,
        X_sample_design=distribution.SampleDesign.LATIN_HYPERCUBE,
        CDF_scale=CDF_scale,
        CDF_loc=CDF_loc,
        pre_function_with_parameters=pre_function_with_parameters,
        functions_with_parameters=function_with_parameters,
        noise_distribution=noise_dist,
        noise_sample_design=distribution.SampleDesign.LATIN_HYPERCUBE)
Пример #2
0
def scalar_function_of_normal(
    store_name: str,
    N: int,
    M: int,
    X_std: float,
    noise_std: float,
    CDF_scale: NP.Array = None,
    CDF_loc: NP.Array = None,
    pre_function_with_parameters: function.CallableWithParameters = None,
    function_with_parameters: function.CallableWithParameters = None
) -> data.Store:
    X_marginal = distribution.Univariate('norm', loc=0, scale=X_std)
    X_dist = distribution.Multivariate.Independent(M=M, marginals=X_marginal)
    noise_dist = (distribution.Multivariate.Normal(mean=zeros(1, dtype=float),
                                                   covariance=noise_std**2 *
                                                   eye(1, dtype=float))
                  if noise_std > EFFECTIVELY_ZERO else None)
    df, meta = function.sample(
        N=N,
        X_distribution=X_dist,
        X_sample_design=distribution.SampleDesign.LATIN_HYPERCUBE,
        CDF_scale=CDF_scale,
        CDF_loc=CDF_loc,
        pre_function_with_parameters=pre_function_with_parameters,
        functions_with_parameters=function_with_parameters,
        noise_distribution=noise_dist,
        noise_sample_design=distribution.SampleDesign.LATIN_HYPERCUBE)
    if noise_dist is None:
        dir_ = BASE_PATH / NOISELESS_DIR / store_name
    elif CDF_scale is None:
        dir_ = BASE_PATH / NORMAL_DIR / store_name
    else:
        dir_ = BASE_PATH / NORMAL_CDF_DIR / store_name
    return data.Store.from_df(dir_=dir_, df=df, meta=meta)