Scaler¶
- class pocomc.scaler.Reparameterize(n_dim: int, bounds: ndarray | list = None, periodic: List[int] = None, reflective: List[int] = None, transform: str = 'probit', scale: bool = True, diagonal: bool = True)¶
Class that reparameterises the model using change-of-variables parameter transformations.
- Parameters:
n_dim (
int) – Dimensionality of sampling problembounds (
np.ndarrayorlistorNone) – Parameter boundsperiodic (
list) – List of indices corresponding to parameters with periodic boundary conditionsreflective (
list) – List of indices corresponding to parameters with reflective boundary conditionstransform (
str) – Type of transform to use for bounded parameters. Options are"probit"(default) and"logit".scale (
bool) – Rescale parameters to zero mean and unit variance (default is true)diagonal (
bool) – Use diagonal transformation (i.e. ignore covariance) (default is true)
Examples
>>> import numpy as np >>> from pocomc.reparameterize import Reparameterize >>> bounds = np.array([[0, 1], [0, 1]]) >>> reparam = Reparameterize(2, bounds) >>> x = np.array([[0.5, 0.5], [0.5, 0.5]]) >>> reparam.forward(x) array([[0., 0.], [0., 0.]]) >>> u = np.array([[0, 0], [0, 0]]) >>> reparam.inverse(u) (array([[0.5, 0.5], [0.5, 0.5]]), array([0., 0.]))
- apply_boundary_conditions_x(x: ndarray)¶
Apply boundary conditions (i.e. periodic or reflective) to input
x. The first kind include phase parameters that might be periodic e.g. on a range[0,2*np.pi]. The latter can arise in cases where parameters are ratios wherea/bandb/aare equivalent.- Parameters:
x (np.ndarray) – Input array
- Return type:
Transformed input
- fit(x: ndarray)¶
Learn mean and standard deviation using for rescaling.
- Parameters:
x (np.ndarray) – Input data used for training.
- forward(x: ndarray, check_input=True)¶
Forward transformation (both logit/probit for bounds and affine for all parameters).
- Parameters:
x (np.ndarray) – Input data
check_input (bool) – Check if input is within bounds (default: True)
- Returns:
u – Transformed input data
- Return type:
np.ndarray
- inverse(u: ndarray)¶
Inverse transformation (both logit^-1/probit^-1 for bounds and affine for all parameters).
- Parameters:
u (np.ndarray) – Input data
- Returns:
x (np.ndarray) – Transformed input data
log_det_J (np.array) – Logarithm of determinant of Jacobian matrix transformation.