in clearbox/metrics/ndcg.py [0:0]
def __init__(self, k: int | None = None, pw_decay_factor: float = 1.0):
"""NDCG constructor.
Args:
k: Number of top docs to take into account when computing the metric for
each query. We take all the docs into account when it's `None`.
pw_decay_factor: Position weighted decay factor to apply to relevance
target, float in (0, 1] range.
"""
super().__init__()
if k is not None and k < 1:
raise ValueError(
f'If provided, `k` should be integer >= 1, received {k}.'
)
if pw_decay_factor <= 0.0 or pw_decay_factor > 1.0:
raise ValueError('`pw_decay_factor` should be in (0, 1] range.')
self._k = k
self._pw_decay_factor = pw_decay_factor