Releases: opendsm/opendsm
Releases · opendsm/opendsm
v1.2.7
Release v1.2.7
Overview
This release brings significant improvements to OpenDSM's clustering methodology, modernizes the build system, and integrates comparison group functionality although it is not currently documented or exposed cleanly through the API.
New Features
Enhanced Clustering with Multi-Metric Voting System
- Clustering Revision - Introduced a new voting system that evaluates multiple clustering indices to determine optimal cluster configurations (#580)
- Supports voting between various clustering quality metrics
- Improves cluster selection reliability and robustness
- Adds comprehensive tests for the new clustering methodology
Comparison Groups
- Comparison Group Functionality - Integrated Comparison Groups into OpenDSM, providing basic access to comparison groups (#577)
- Consolidates clustering methodology across systems
- Currently undocumented code and we still need to develop API for user ease-of-use
- Includes 176 commits of GRIDmeter codebase integration
Improvements
Build System Modernization
- Migration to pyproject.toml - Replaced deprecated
setup.pywith modernpyproject.tomlconfiguration (#566)- Switched to
uvpackage manager for improved dependency management - Addresses Docker build deprecation warnings (setup.py support ending Oct 2025)
- Updated Dockerfile to use
uv pip compileanduv pip install
- Switched to
Bug Fixes
- Example Data Fix - Corrected temperature values in example data that were accidentally modified (#575)
- Clustering Bug Fixes - Various refinements and bug fixes in clustering implementation
- Dependency Updates - Fixed and updated project dependencies
Testing
- Added new tests for clustering voting system
- Enhanced test coverage for clustering methodology
- Updated test platforms and configurations
Full Changelog: v1.2.6...v1.2.7
v1.2.6
What's Changed
- Fixed bug in
from_seriesinstantiation of daily data class by @travis-recurve in #565
Full Changelog: v1.2.5...v1.2.6
v1.2.5
What's Changed
- Expose SpectralClustering's assign_labels options.
discretizeandcluster_qrare not always deterministic with seed so for regression testingkmeansis suggested by @travis-recurve in #564 - Added more metrics to BaselineMetrics by @travis-recurve in #564
Full Changelog: v1.2.4...v1.2.5
v1.2.4
What's Changed
- Added seeding to spectral clustering by @travis-recurve in #560
- Fixed bug where seed was not being propagated to clustering settings by @travis-recurve in #560
- New model metrics by @travis-recurve in #561
- Changed failed model metrics to be nan rather than None by @travis-recurve in #561
Full Changelog: v1.2.2...v1.2.3
v1.2.2
What's Changed
- Fixed daily model not using adjusted normalized metrics by @travis-recurve in #559
- Ensure the autocorrelation function usage is consistent by @travis-recurve in #559
Full Changelog: v1.2.1...v1.2.2
v1.2.1
What's Changed
- Revert how autocorr is calculated by @canchola-recurve in #558
New Contributors
- @canchola-recurve made their first contribution in #558
Full Changelog: v1.2.0...v1.2.1
v1.2.0
What's Changed
- Add hourly model uncertainty by @travis-recurve in #553
- Daily and billing models now use BaselineMetrics natively by @travis-recurve in #554
- Data sufficiency can now be modified using a settings dictionary for R&D purposes by @travis-recurve in #555
- Migrate to modern logger interface by @emmanuel-ferdman in #551
New Contributors
- @emmanuel-ferdman made their first contribution in #551
Full Changelog: v1.1.0...v1.2.0
v1.1.0
What's Changed
Hourly Model
- disallow negative cvrmse in hourly model
- added temp_bin/cluster/temp interaction
- updating clustering
- updating hourly settings and adding clustering
- clustering sort update
- adaptive robust elasticnet
- added fixed temperature bins
- extreme temperature bin settings update
- modified temporal_cluster code
Daily Model
- added daily CVRMSE >= 0 and PNRMSE pass for sufficiency
- fixing broken tests and making daily model use baseline_metrics
- updating daily model settings to no longer use model_fields on instantiated class
Miscellaneous
- revised adaptive loss penalization
- modified extreme value flag to be based on IQR rule
- ignores numpy warnings when dividing by zero and returns a NaN instead by @ssuffian in #549
- fixes the warning data to only inculde invalid temperature rows by @ssuffian in #548
- update README.md by @travis-recurve in #546
Full Changelog: v1.0.0...v1.1.0
v1.0.0
Initial release of OpenDSM