Source code for UQpy.sampling.stratified_sampling.latin_hypercube_criteria.baseclass.Criterion

from abc import ABC, abstractmethod
import numpy as np
import scipy.stats as stats
from beartype import beartype

from UQpy.utilities.ValidationTypes import RandomStateType


[docs]class Criterion(ABC): @beartype def __init__(self): self.a = 0 self.b = 0 self.samples = np.zeros(shape=(0, 0)) def create_bins(self, samples, random_state): samples_number = samples.shape[0] cut = np.linspace(0, 1, samples_number + 1) self.a = cut[:samples_number] self.b = cut[1: samples_number + 1] u = np.zeros(shape=(samples.shape[0], samples.shape[1])) self.samples = np.zeros_like(u) for i in range(samples.shape[1]): u[:, i] = stats.uniform.rvs(size=samples.shape[0], random_state=random_state) self.samples[:, i] = u[:, i] * (self.b - self.a) + self.a
[docs] @abstractmethod def generate_samples(self, random_state): """ Abstract method that must be overriden when generating creating new Latin Hypercube sampling criteria. """ pass