nessai.utils.rescaling

Utilities related to rescaling.

Module Contents

Functions

rescale_zero_to_one(x, xmin, xmax)

Rescale a value to 0 to 1

inverse_rescale_zero_to_one(x, xmin, xmax)

Rescale from 0 to 1 to xmin to xmax

rescale_minus_one_to_one(x, xmin, xmax)

Rescale a value to -1 to 1

inverse_rescale_minus_one_to_one(x, xmin, xmax)

Rescale from -1 to 1 to xmin to xmax

detect_edge(x[, x_range, percent, cutoff, nbins, ...])

Detect edges in input distributions based on the density.

configure_edge_detection(d, detect_edges)

Configure parameters for edge detection

determine_rescaled_bounds(prior_min, prior_max, x_min, ...)

Determine the values of the prior min and max in the rescaled

logit(x[, eps])

Logit function that also returns log Jacobian determinant.

sigmoid(x)

Sigmoid function that also returns log Jacobian determinant.

logistic_function(x[, x0, k])

Logistic function with configurable midpoint and gradient.

log_with_log_jacobian(x)

Natural log and log-Jacobian determinant.

exp_with_log_jacobian(x)

Exponential and log-Jacobian determinant.

nessai.utils.rescaling.rescale_zero_to_one(x, xmin, xmax)

Rescale a value to 0 to 1

Parameters:
xndarray

Array of values to rescale

xmin, xmaxfloats

Minimum and maximum values to use for rescaling

Returns:
ndarray

Array of rescaled values

ndarray

Array of log determinants of Jacobians for each sample

nessai.utils.rescaling.inverse_rescale_zero_to_one(x, xmin, xmax)

Rescale from 0 to 1 to xmin to xmax

Parameters:
xndarray

Array of values to rescale

xmin, xmaxfloats

Minimum and maximum values to use for rescaling

Returns:
ndarray

Array of rescaled values

ndarray

Array of log determinants of Jacobians for each sample

nessai.utils.rescaling.rescale_minus_one_to_one(x, xmin, xmax)

Rescale a value to -1 to 1

Parameters:
xndarray

Array of values to rescale

xmin, xmaxfloats

Minimum and maximum values to use for rescaling

Returns:
ndarray

Array of rescaled values

ndarray

Array of log determinants of Jacobians for each sample

nessai.utils.rescaling.inverse_rescale_minus_one_to_one(x, xmin, xmax)

Rescale from -1 to 1 to xmin to xmax

Parameters:
xndarray

Array of values to rescale

xmin, xmaxfloats

Minimum and maximum values to use for rescaling

Returns:
ndarray

Array of rescaled values

ndarray

Array of log determinants of Jacobians for each sample

nessai.utils.rescaling.detect_edge(x, x_range=None, percent=0.1, cutoff=0.5, nbins='auto', allow_both=False, allow_none=False, allowed_bounds=['lower', 'upper'], test=None)

Detect edges in input distributions based on the density.

Parameters:
x: array_like

Samples

x_rangearray_like, optional

Lower and upper bounds used to check inversion, if not specified min and max of data are used.

percent: float (0.1)

Percentage of interval used to check edges

cutoff: float (0.1)

Minimum fraction of the maximum density contained within the percentage of the interval specified

nbinsfloat or ‘auto’

Number of bins used for histogram.

allow_both: bool

Allow function to return both instead of force either upper or lower

allow_none: bool

Allow for neither lower or upper bound to be returned

allowed_boundslist

List of alloweds bounds.

teststr or None

If not None this skips the process and just returns the value of test. This is used to verify the inversion in all possible scenarios.

Returns:
str or False, {‘lower’, ‘upper’, ‘both’, False}

Returns the boundary to apply the inversion or False is no inversion is to be applied

nessai.utils.rescaling.configure_edge_detection(d, detect_edges)

Configure parameters for edge detection

Parameters:
ddict

Dictionary of kwargs passed to detect_edge.

detect_edgesbool

If true allows for no inversion to be applied.

Returns:
dict

Updated kwargs

nessai.utils.rescaling.determine_rescaled_bounds(prior_min, prior_max, x_min, x_max, invert=None, inversion=False, offset=0, rescale_bounds=[-1, 1])

Determine the values of the prior min and max in the rescaled space.

Parameters:
prior_minfloat

Minimum of the prior.

prior_maxfloat

Maximum of the prior.

x_minfloat

New minimum.

x_maxfloat

New maximum.

invertFalse or {‘upper’, ‘lower’, ‘both’}, optional

Type of inversion. inversion must also be set to True.

inversionbool, optional

Indicate if the rescaling bounds have been set for inversion. If True and invert is None or False, then the rescale bounds are assumed to be [-1, 1] rather than [0, 1] (the default for inverted parameters.)

offsetfloat, optional

Offset to subtract from the values prior to rescaling.

rescaled_boundslist or tuple

Lower and upper bound which x has been rescaled to. In inversion=True, these values are ignored to match behaviour in the RescaleToBounds.

nessai.utils.rescaling.logit(x, eps=None)

Logit function that also returns log Jacobian determinant.

See nessai.utils.rescaling.sigmoid() for the inverse.

Parameters:
xfloat or ndarray

Array of values

epsfloat, optional

Epsilon value used to clamp inputs to [eps, 1 - eps]. If None, then inputs are not clamped.

Returns:
float or ndarray

Rescaled values.

float or ndarray

Log Jacobian determinant.

nessai.utils.rescaling.sigmoid(x)

Sigmoid function that also returns log Jacobian determinant.

See nessai.utils.rescaling.logit() for the inverse.

Parameters:
xfloat or ndarray

Array of values

Returns:
float or ndarray

Rescaled values.

float or ndarray

Log Jacobian determinant.

nessai.utils.rescaling.logistic_function(x, x0=0.0, k=1.0)

Logistic function with configurable midpoint and gradient.

Parameters:
xnp.ndarray

Samples to apply function to

x0float

Midpoint

k: float

Gradient

Returns:
np.ndarrary

Value of logistic function for each x.

nessai.utils.rescaling.log_with_log_jacobian(x)

Natural log and log-Jacobian determinant.

Parameters:
xUnion[float, np.ndarray]

Array of values

Returns:
Union[float, numpy.ndarray]

Rescaled values.

Union[float, numpy.ndarray]

Log Jacobian determinant.

nessai.utils.rescaling.exp_with_log_jacobian(x)

Exponential and log-Jacobian determinant.

Parameters:
xUnion[float, np.ndarray]

Array of values

Returns:
Union[float, numpy.ndarray]

Rescaled values.

Union[float, numpy.ndarray]

Log Jacobian determinant.