leaspy.models.noise_models.AbstractOrdinalNoiseModel

class AbstractOrdinalNoiseModel(parameters: DictParamsTorch | None = None, max_levels: Dict[FeatureType, int] | None = None)

Bases: BaseNoiseModel

Base class for Ordinal noise models.

Parameters:
parametersdict [ str, torch.Tensor ] or None

Values for all the free parameters of the distribution family. All of them must have values before using the sampling methods.

max_levelsdict, optional

Maximum levels for ordinal noise.

Attributes:
max_levelsdict, optional

Maximum levels for ordinal noise.

Methods

compute_canonical_loss(data, predictions)

Compute a human-friendly overall loss (independent from instance parameters), useful as a measure of goodness-of-fit after personalization (nll by default - assuming no free parameters).

compute_nll(data, predictions, *[, ...])

Compute negative log-likelihood of data given model predictions (no summation), and its gradient w.r.t.

compute_sufficient_statistics(data, predictions)

Computes the set of noise-related sufficient statistics and metrics (to be extended in child class).

move_to_device(device)

Move all torch tensors stored in this instance to the provided device (parameters & hyperparameters).

raise_if_partially_defined()

Raise an error if some of the free parameters are not defined.

raise_if_unknown_parameters(params)

Raise an error if the provided parameters are not part of the free parameters.

rv_around(loc)

Return the torch distribution centred around values (only if noise is not None).

sample_around(loc)

Realization around loc with respect to partially defined distribution.

sampler_around(loc)

Return the sampling function around input values.

to_dict()

Serialize instance as dictionary.

update_parameters(*[, validate])

(Partial) update of the free parameters of the distribution family.

update_parameters_from_predictions(data, ...)

Updates noise-model parameters in-place (nothing done by default).

update_parameters_from_sufficient_statistics(...)

Updates noise-model parameters in-place (nothing done by default).

validate(**params)

Validation function for parameters (based on 'validate_xxx' methods).

compute_canonical_loss(data: Dataset, predictions: Tensor) Tensor

Compute a human-friendly overall loss (independent from instance parameters), useful as a measure of goodness-of-fit after personalization (nll by default - assuming no free parameters).

Parameters:
dataDataset

The dataset related to the computation of the log likelihood.

predictionstorch.Tensor

The model’s predictions from which to compute the canonical loss.

Returns:
torch.Tensor

The computed loss.

abstract compute_nll(data: Dataset, predictions: Tensor, *, with_gradient: bool = False) Tensor | Tuple[Tensor, Tensor]

Compute negative log-likelihood of data given model predictions (no summation), and its gradient w.r.t. predictions if requested.

Parameters:
dataDataset

The dataset related to the computation of the log likelihood.

predictionstorch.Tensor

The model’s predictions from which to compute the log likelihood.

with_gradientbool, optional

If True, returns also the gradient of the negative log likelihood wrt the predictions. If False, only returns the negative log likelihood. Default=False.

Returns:
torch.Tensor or tuple of torch.Tensor

The negative log likelihood (and its jacobian if requested).

compute_sufficient_statistics(data: Dataset, predictions: Tensor) Dict[str, Tensor]

Computes the set of noise-related sufficient statistics and metrics (to be extended in child class).

Parameters:
dataDataset

The dataset related to the computation of the sufficient statistics.

predictionstorch.Tensor

The model’s predictions from which to compute the sufficient statistics.

Returns:
DictParamsTorch

The sufficient statistics.

move_to_device(device: device) None

Move all torch tensors stored in this instance to the provided device (parameters & hyperparameters).

Parameters:
devicetorch.device

Torch device on which to move the tensors.

raise_if_partially_defined() None

Raise an error if some of the free parameters are not defined.

classmethod raise_if_unknown_parameters(params: Iterable | None) None

Raise an error if the provided parameters are not part of the free parameters.

Parameters:
paramsIterable, optional

The list of parameters to analyze.

rv_around(loc: Tensor) Distribution

Return the torch distribution centred around values (only if noise is not None).

Parameters:
loctorch.Tensor

The loc around which to sample.

Returns:
torch.distributions.distribution.Distribution

The torch distribution centered around the loc.

sample_around(loc: Tensor) Tensor

Realization around loc with respect to partially defined distribution.

Parameters:
loctorch.Tensor

The loc around which to sample.

Returns:
torch.Tensor

The requested sample.

sampler_around(loc: Tensor) Callable[[], Tensor]

Return the sampling function around input values.

Parameters:
loctorch.Tensor

The loc around which to sample.

Returns:
Callable

The sampler.

to_dict() Dict[str, Any]

Serialize instance as dictionary.

Warning

Do NOT export hyper-parameters that are derived (error-prone and boring checks when re-creating).

Returns:
KwargsType

The instance serialized as a dictionary.

update_parameters(*, validate: bool = False, **parameters: Tensor) None

(Partial) update of the free parameters of the distribution family.

Parameters:
validatebool, optional

If True, the provided parameters are validated before being updated. Default=False.

**parameterstorch.Tensor

The new parameters.

update_parameters_from_predictions(data: Dataset, predictions: Tensor) None

Updates noise-model parameters in-place (nothing done by default).

Parameters:
dataDataset

The dataset related to the computation of the log likelihood.

predictionstorch.Tensor

The model’s predictions from which to update the parameters.

update_parameters_from_sufficient_statistics(data: Dataset, sufficient_statistics: Dict[str, Tensor]) None

Updates noise-model parameters in-place (nothing done by default).

Parameters:
dataDataset

The dataset related to the computation of the log likelihood.

sufficient_statisticsDictParamsTorch

The sufficient statistics to use for parameter update.

validate(**params: Any) Dict[str, Tensor]

Validation function for parameters (based on ‘validate_xxx’ methods).

Parameters:
**paramsAny

The parameters to validate.

Returns:
DictParamsTorch

The validated parameters.