energy_fault_detector.anomaly_scores.mahalanobis_score

class MahalanobisScore(pca=True, pca_min_var=0.9, mcd_support_fraction=0.9, scale=False)

Bases: AnomalyScore

Calculate mahalanobis scores using sklearn MinCovDet und optionally a PCA to accelerate calculations.

Parameters:
  • pca (bool) – boolean to indicate whether PCA should be done before determining the covariance. Default true.

  • pca_min_var (float) – parameter for PCA, variance to keep. Default 0.9

  • mcd_support_fraction (float) – parameter for Minimum Covariance Determinant estimation. Default 0.9

  • scale (bool) – If True, std of the training/fit reconstruction errors will be used to scale recon errors before applying MinCovDet. Default: False

Configuration example:

train:
  anomaly_score:
    name: mahalanobis
    params:
      pca: True
      pca_min_var: 0.9
      mcd_support_fraction: 0.9
      scale: False
fit(x, y=None)

Fit MinCovDet object to determine Mahalanobis distance.

Parameters:
  • x (Union[DataFrame, ndarray]) – numpy 2d array or pandas DataFrame with differences between prediction and actual sensor values.

  • y (optional) – not used, labels indicating whether sample is normal (True) or anomalous (False).

Return type:

MahalanobisScore

transform(x)

Calculate Mahalanobis distance from x.

Parameters:

x (Union[DataFrame, ndarray]) – numpy 2d array or pandas Dataframe with differences between prediction and actual sensor values

Return type:

Series

Returns:

Mahalanobis distance for each sample. Output is a pandas Series if input was a pandas DataFrame