normalize_distribution#

mlquantify.losses.normalize_distribution(x)[source]#

Normalize an array to a valid probability distribution.

Clips all values to a small positive epsilon to avoid zero-probability entries, then divides by the total sum. If the sum is effectively zero after clipping, a uniform distribution is returned instead.

Parameters:
xarray-like of shape (n,)

Input array representing un-normalized prevalences or likelihoods.

Returns:
x_normalizedndarray of shape (n,)

Non-negative array that sums to 1.

Examples

>>> from mlquantify.losses._distances import normalize_distribution
>>> normalize_distribution([0.1, 0.3, 0.6])
array([0.1, 0.3, 0.6])
>>> normalize_distribution([2, 3, 5])
array([0.2, 0.3, 0.5])