Releases: AEFDI/EnergyFaultDetector
Releases · AEFDI/EnergyFaultDetector
PreDist notebook, refactor DataPreprocessor to steps-based pipeline and add counter handling
Immutable
release. Only release title and notes can be modified.
Added:
- PreDist example & dataset helper
notebooks/PreDist/PreDist.ipynb: end-to-end example showing how to applyEnergyFaultDetectorto the PreDist dataset.evaluation.PreDistDataset: helper class to (down)load and prepare PreDist data.
- Counter handling:
CounterDiffTransformer: converts monotonically increasing counters to per-sample diffs or per-second rates. Can handle resets/rollovers (zero,rollover,nan,auto), small-negative tolerance, first-sample fill. - Quickstart configuration generator:
generate_quickstart_config(...): creates a minimal, ready-to-train config dict (and can optionally dump it to YAML) so you can get started faster. FaultDetectionResult(the output ofFaultDetector.predict) can now be easily saved and loaded from disk and provides acriticality()helper to quickly calculate the criticality from the prediction.
Changed:
- Step-based
DataPreprocessorconfigurationDataPreprocessornow uses a flexible, ordered, step-based API:python DataPreprocessor(steps: Optional[List[Dict]] = None, **legacy_params), making it easier to customize and extend preprocessing.
Example configuration:
train: ... data_preprocessor: steps: - name: column_selector params: max_nan_frac_per_col: 0.2 - name: low_unique_value_filter - name: simple_imputer - name: standard_scaler ...
- Legacy parameters are still supported for backwards compatibility. If both
stepsand legacy parameters are provided,stepstake precedence (with a warning).
ColumnSelector: You can now use eitherfeatures_to_excludeorfeatures_to_select.DataClipper: You can now use eitherfeatures_to_excludeorfeatures_to_clip.- After preprocessing,
FaultDetectornow casts DataFrames tofloat32by default to reduce memory usage. The dtype can be configured viaConfig.dtypeiffloat64is required. - Path handling: All relevant classes now accept
pathlib.Pathin addition to string paths. Internally, file handling is being migrated fromos.pathtopathlibfor more robust and consistent path operations.
Fixed:
- The notebook
Example - Hyperparameter Optimization.ipynbhas been updated and improved to match the current API and recommended workflows.
Docs:
- README updated with:
- A quickstart example using the new config generator and step-based
DataPreprocessor. - A short mention of the CLI to make entry points clearer.
- A quickstart example using the new config generator and step-based
- Configuration guide extended with a table of preprocessing steps, examples and defaults.
- Documentation build and structure improved so that the API docs and examples stay in sync with the code.
CAREScore and CARE2Compare: new features, changes, and fixes
Immutable
release. Only release title and notes can be modified.
Added:
- CAREScore: separate methods to compute subscores.
- CAREScore.get_final_score: option to reset the anomaly-detection threshold to quickly test different decision boundaries.
- CAREScore.evaluate_event: option to evaluate only up to event_end.
- CARE2Compare: ability to download results.
- CARE2Compare: human-readable columns based on feature descriptions.
- Visualisation: option to plot criticality alongside the anomaly score in visualisation.plot_score_with_threshold.
Changed:
- FaultDetectionResult simplified: single-column DataFrames are now returned as Series (anomaly_score, predicted_anomalies).
- Breaking: changes the output type/shape of FaultDetector.predict; update downstream code that assumes a DataFrame.
Fixed:
- Visualisation: corrected the y-axis limits in ARCANA bias and ARCANA correction animations. Determination of the maximum value of the y-axis is now based on absolute values of the provided bias data.
Docs:
- Revised docstrings for CAREScore and CARE2Compare for clarity.
- Improved “Example - FaultDetector Usage.ipynb” with expanded explanations.
Conditional Autoencoder Added; ARCANA Updated; Save/Load Enhancements
Immutable
release. Only release title and notes can be modified.
This release adds a conditional autoencoder, updates ARCANA to support conditional architectures, and improves the model save/load workflow.
Added
- Conditional autoencoder.
Changed
- Update ARCANA to support conditional autoencoders.
- Simplify
FaultDetector.save_models. - Pass
verbositytoAutoencoder.get_reconstruction_error.
Fixed
- Prevent overwriting submodels (
ThresholdSelector,AnomalyScore,DataPreprocessor). - Fix
FaultDetector.tune;normal_indexcan now be safely ignored.
Deprecated
model_subdirargument of theFaultDetectorconstructor.
Docs
- Update CARE to Compare references to the latest version.
- Replace
AnomalyDetectorreferences withFaultDetector.
v0.1.1 - FaultDetectionResult.save method fixes; supports to_csv kwargs
- Fixed:
FaultDetectionResult.save()now also persists the index of predicted anomalies. - Fixed:
FaultDetectionResult..save()checks for the existence of tracked ARCANA bias values before saving. - Added:
FaultDetectionResult.save()supports passthrough kwargs to pandas.DataFrame.to_csv.
No breaking changes.
Initial release
Initial Energy Fault Detector release. A simple framework for the automated detection of anomalies in operational data from renewable energy systems as well as power grids. It uses autoencoder-based normal behaviour models to identify irregularities in operational data. In addition to the classic anomaly detection, the package includes the unique “ARCANA” approach for root cause analysis and thus allows interpretable early fault detection.