Source code for darts.ad.scorers.nll_cauchy_scorer

"""
NLL Cauchy Scorer
-----------------

Cauchy distribution negative log-likelihood Scorer.

The anomaly score is the negative log likelihood of the actual series values
under a Cauchy distribution estimated from the stochastic prediction.
"""

import numpy as np
from scipy.stats import cauchy

from darts.ad.scorers.scorers import NLLScorer


[docs]class CauchyNLLScorer(NLLScorer): def __init__(self, window: int = 1) -> None: super().__init__(window=window) def __str__(self): return "CauchyNLLScorer" def _score_core_nllikelihood( self, deterministic_values: np.ndarray, probabilistic_estimations: np.ndarray, ) -> np.ndarray: params = np.apply_along_axis(cauchy.fit, axis=1, arr=probabilistic_estimations) return -cauchy.logpdf( deterministic_values, loc=params[:, 0], scale=params[:, 1] )