openstef-models 4.1.1.dev0__tar.gz → 4.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/.gitignore +2 -0
  2. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/PKG-INFO +1 -1
  3. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/pyproject.toml +1 -1
  4. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/forecasting/lgbm_forecaster.py +1 -1
  5. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/forecasting/lgbmlinear_forecaster.py +1 -1
  6. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/presets/forecasting_workflow.py +26 -4
  7. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/postprocessing/isotonic_quantile_calibrator.py +2 -2
  8. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/utils/multi_quantile_regressor.py +3 -1
  9. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/utils/test_multi_quantile_regressor.py +4 -3
  10. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/README.md +0 -0
  11. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/__init__.py +0 -0
  12. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/explainability/__init__.py +0 -0
  13. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/explainability/mixins.py +0 -0
  14. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/explainability/plotters/__init__.py +0 -0
  15. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/explainability/plotters/contributions_plotter.py +0 -0
  16. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/explainability/plotters/feature_importance_plotter.py +0 -0
  17. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/integrations/__init__.py +0 -0
  18. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/integrations/joblib/__init__.py +0 -0
  19. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/integrations/joblib/joblib_model_serializer.py +0 -0
  20. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/integrations/mlflow/__init__.py +0 -0
  21. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/integrations/mlflow/mlflow_storage.py +0 -0
  22. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/integrations/mlflow/mlflow_storage_callback.py +0 -0
  23. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/integrations/optuna/__init__.py +0 -0
  24. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/integrations/optuna/tuner.py +0 -0
  25. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/mixins/__init__.py +0 -0
  26. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/mixins/callbacks.py +0 -0
  27. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/mixins/model_serializer.py +0 -0
  28. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/__init__.py +0 -0
  29. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/component_splitting/__init__.py +0 -0
  30. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/component_splitting/component_splitter.py +0 -0
  31. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/component_splitting/constant_component_splitter.py +0 -0
  32. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/component_splitting/linear_component_splitter.py +0 -0
  33. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/component_splitting/linear_component_splitter_model/linear_component_splitter_model.z +0 -0
  34. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/component_splitting/linear_component_splitter_model/linear_component_splitter_model.z.license +0 -0
  35. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/component_splitting_model.py +0 -0
  36. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/forecasting/__init__.py +0 -0
  37. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/forecasting/base_case_forecaster.py +0 -0
  38. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/forecasting/constant_quantile_forecaster.py +0 -0
  39. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/forecasting/flatliner_forecaster.py +0 -0
  40. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/forecasting/forecaster.py +0 -0
  41. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/forecasting/gblinear_forecaster.py +0 -0
  42. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/forecasting/median_forecaster.py +0 -0
  43. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/forecasting/xgboost_forecaster.py +0 -0
  44. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/models/forecasting_model.py +0 -0
  45. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/presets/__init__.py +0 -0
  46. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/testing.py +0 -0
  47. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/__init__.py +0 -0
  48. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/energy_domain/__init__.py +0 -0
  49. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/energy_domain/wind_power_feature_adder.py +0 -0
  50. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/general/__init__.py +0 -0
  51. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/general/dimensionality_reducer.py +0 -0
  52. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/general/empty_feature_remover.py +0 -0
  53. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/general/flagger.py +0 -0
  54. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/general/imputer.py +0 -0
  55. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/general/nan_dropper.py +0 -0
  56. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/general/outlier_handler.py +0 -0
  57. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/general/sample_weighter.py +0 -0
  58. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/general/scaler.py +0 -0
  59. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/general/selector.py +0 -0
  60. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/general/shifter.py +0 -0
  61. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/postprocessing/__init__.py +0 -0
  62. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/postprocessing/confidence_interval_applicator.py +0 -0
  63. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/postprocessing/quantile_sorter.py +0 -0
  64. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/time_domain/__init__.py +0 -0
  65. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/time_domain/cyclic_features_adder.py +0 -0
  66. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/time_domain/datetime_features_adder.py +0 -0
  67. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/time_domain/holiday_features_adder.py +0 -0
  68. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/time_domain/lags_adder.py +0 -0
  69. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/time_domain/rolling_aggregates_adder.py +0 -0
  70. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/time_domain/versioned_lags_adder.py +0 -0
  71. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/validation/__init__.py +0 -0
  72. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/validation/completeness_checker.py +0 -0
  73. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/validation/flatline_checker.py +0 -0
  74. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/validation/input_consistency_checker.py +0 -0
  75. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/weather_domain/__init__.py +0 -0
  76. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/weather_domain/atmosphere_derived_features_adder.py +0 -0
  77. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/weather_domain/daylight_feature_adder.py +0 -0
  78. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/transforms/weather_domain/radiation_derived_features_adder.py +0 -0
  79. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/utils/__init__.py +0 -0
  80. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/utils/data_split.py +0 -0
  81. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/utils/evaluation_functions.py +0 -0
  82. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/utils/feature_selection.py +0 -0
  83. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/utils/loss_functions.py +0 -0
  84. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/utils/xgboost.py +0 -0
  85. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/workflows/__init__.py +0 -0
  86. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/workflows/callbacks/__init__.py +0 -0
  87. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/workflows/callbacks/data_save.py +0 -0
  88. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/workflows/callbacks/model_performance_callback.py +0 -0
  89. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/workflows/custom_component_split_workflow.py +0 -0
  90. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/src/openstef_models/workflows/custom_forecasting_workflow.py +0 -0
  91. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/__init__.py +0 -0
  92. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/integration/__init__.py +0 -0
  93. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/integration/test_integration.py +0 -0
  94. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/__init__.py +0 -0
  95. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/explainability/__init__.py +0 -0
  96. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/explainability/plotters/__init__.py +0 -0
  97. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/explainability/plotters/test_contributions_plotter.py +0 -0
  98. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/integrations/__init__.py +0 -0
  99. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/integrations/joblib/__init__.py +0 -0
  100. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/integrations/joblib/test_joblib_model_serializer.py +0 -0
  101. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/integrations/mlflow/__init__.py +0 -0
  102. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/integrations/mlflow/test_mlflow_storage.py +0 -0
  103. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/integrations/mlflow/test_mlflow_storage_callback.py +0 -0
  104. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/integrations/optuna/__init__.py +0 -0
  105. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/integrations/optuna/test_tuner.py +0 -0
  106. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/__init__.py +0 -0
  107. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/component_splitting/__init__.py +0 -0
  108. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/component_splitting/test_constant_component_splitter.py +0 -0
  109. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/component_splitting/test_linear_component_splitter.py +0 -0
  110. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/forecasting/__init__.py +0 -0
  111. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/forecasting/conftest.py +0 -0
  112. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/forecasting/test_base_case_forecaster.py +0 -0
  113. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/forecasting/test_constant_quantile_forecaster.py +0 -0
  114. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/forecasting/test_flatliner_forecaster.py +0 -0
  115. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/forecasting/test_gblinear_forecaster.py +0 -0
  116. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/forecasting/test_lgbm_forecaster.py +0 -0
  117. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/forecasting/test_lgbmlinear_forecaster.py +0 -0
  118. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/forecasting/test_median_forecaster.py +0 -0
  119. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/forecasting/test_xgboost_forecaster.py +0 -0
  120. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/models/test_forecasting_model.py +0 -0
  121. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/test_example.py +0 -0
  122. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/__init__.py +0 -0
  123. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/energy_domain/__init__.py +0 -0
  124. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/energy_domain/test_wind_power_feature_adder.py +0 -0
  125. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/general/__init__.py +0 -0
  126. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/general/test_dimensionality_reducer.py +0 -0
  127. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/general/test_empty_feature_remover.py +0 -0
  128. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/general/test_flagger.py +0 -0
  129. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/general/test_imputer.py +0 -0
  130. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/general/test_nan_dropper.py +0 -0
  131. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/general/test_outlier_handler.py +0 -0
  132. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/general/test_sample_weighter.py +0 -0
  133. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/general/test_scaler.py +0 -0
  134. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/general/test_selector.py +0 -0
  135. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/general/test_shifter.py +0 -0
  136. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/postprocessing/__init__.py +0 -0
  137. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/postprocessing/test_confidence_interval_applicator.py +0 -0
  138. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/postprocessing/test_isotonic_quantile_calibrator.py +0 -0
  139. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/postprocessing/test_quantile_sorter.py +0 -0
  140. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/time_domain/__init__.py +0 -0
  141. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/time_domain/test_cyclic_features_adder.py +0 -0
  142. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/time_domain/test_datetime_features_adder.py +0 -0
  143. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/time_domain/test_holiday_features_adder.py +0 -0
  144. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/time_domain/test_lags_adder.py +0 -0
  145. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/time_domain/test_rolling_aggregates_adder.py +0 -0
  146. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/time_domain/test_versioned_lags_adder.py +0 -0
  147. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/validation/__init__.py +0 -0
  148. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/validation/test_completeness_checker.py +0 -0
  149. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/validation/test_flatline_checker.py +0 -0
  150. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/validation/test_input_consistency_checker.py +0 -0
  151. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/weather_domain/__init__.py +0 -0
  152. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/weather_domain/test_atmosphere_derived_features_adder.py +0 -0
  153. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/weather_domain/test_daylight_feature_adder.py +0 -0
  154. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/transforms/weather_domain/test_radiation_derived_featuers_adder.py +0 -0
  155. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/utils/__init__.py +0 -0
  156. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/utils/test_data_split.py +0 -0
  157. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/utils/test_feature_selection.py +0 -0
  158. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/utils/test_loss_functions.py +0 -0
  159. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/workflows/__init__.py +0 -0
  160. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/workflows/callbacks/__init__.py +0 -0
  161. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/workflows/callbacks/test_model_performance_callback.py +0 -0
  162. {openstef_models-4.1.1.dev0 → openstef_models-4.1.2}/tests/unit/workflows/test_custom_forecasting_workflow.py +0 -0
@@ -71,6 +71,8 @@ docs/source/user_guide/**/quick_start_tutorial.py
71
71
  docs/source/user_guide/**/feature_engineering_tutorial.py
72
72
  docs/source/user_guide/**/datasets_tutorial.py
73
73
  docs/source/user_guide/**/backtesting_tutorial.py
74
+ docs/source/user_guide/**/foundation_model_forecasting_quickstart.py
75
+ docs/source/user_guide/**/foundation_model_forecasting.py
74
76
 
75
77
  # docs/_doctrees/
76
78
  # docs/_static_gen/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openstef-models
3
- Version: 4.1.1.dev0
3
+ Version: 4.1.2
4
4
  Summary: Core models for OpenSTEF
5
5
  Project-URL: Documentation, https://openstef.github.io/openstef/index.html
6
6
  Project-URL: Homepage, https://lfenergy.org/projects/openstef/
@@ -7,7 +7,7 @@ requires = [ "hatchling" ]
7
7
 
8
8
  [project]
9
9
  name = "openstef-models"
10
- version = "4.1.1.dev0"
10
+ version = "4.1.2"
11
11
  description = "Core models for OpenSTEF"
12
12
  readme = "README.md"
13
13
  keywords = [ "energy", "forecasting", "machinelearning" ]
@@ -238,7 +238,7 @@ class LGBMForecaster(Forecaster, ExplainableForecaster, ContributionsMixin):
238
238
  base_learner=LGBMRegressor,
239
239
  quantile_param="alpha",
240
240
  hyperparams=lgbm_params,
241
- quantiles=[float(q) for q in self.quantiles],
241
+ quantiles=self.quantiles,
242
242
  )
243
243
 
244
244
  @property
@@ -239,7 +239,7 @@ class LGBMLinearForecaster(Forecaster, ExplainableForecaster, ContributionsMixin
239
239
  base_learner=LGBMRegressor,
240
240
  quantile_param="alpha",
241
241
  hyperparams=lgbmlinear_params,
242
- quantiles=[float(q) for q in self.quantiles],
242
+ quantiles=self.quantiles,
243
243
  )
244
244
 
245
245
  @property
@@ -453,7 +453,13 @@ def create_forecasting_workflow(
453
453
  horizons=config.horizons,
454
454
  hyperparams=config.lgbmlinear_hyperparams,
455
455
  )
456
- postprocessing = [QuantileSorter()]
456
+ postprocessing = [
457
+ QuantileSorter(),
458
+ ConfidenceIntervalApplicator(
459
+ quantiles=config.quantiles,
460
+ add_quantiles_from_std=False,
461
+ ),
462
+ ]
457
463
  elif config.model == "lgbm":
458
464
  preprocessing = [
459
465
  *checks,
@@ -468,7 +474,13 @@ def create_forecasting_workflow(
468
474
  horizons=config.horizons,
469
475
  hyperparams=config.lgbm_hyperparams,
470
476
  )
471
- postprocessing = [QuantileSorter()]
477
+ postprocessing = [
478
+ QuantileSorter(),
479
+ ConfidenceIntervalApplicator(
480
+ quantiles=config.quantiles,
481
+ add_quantiles_from_std=False,
482
+ ),
483
+ ]
472
484
  elif config.model == "gblinear":
473
485
  preprocessing = [
474
486
  *checks,
@@ -510,7 +522,12 @@ def create_forecasting_workflow(
510
522
  quantiles=config.quantiles,
511
523
  horizons=config.horizons,
512
524
  )
513
- postprocessing = []
525
+ postprocessing = [
526
+ ConfidenceIntervalApplicator(
527
+ quantiles=config.quantiles,
528
+ add_quantiles_from_std=False,
529
+ ),
530
+ ]
514
531
  elif config.model == "constant_quantile":
515
532
  preprocessing = [
516
533
  CompletenessChecker(
@@ -522,7 +539,12 @@ def create_forecasting_workflow(
522
539
  quantiles=config.quantiles,
523
540
  horizons=config.horizons,
524
541
  )
525
- postprocessing = []
542
+ postprocessing = [
543
+ ConfidenceIntervalApplicator(
544
+ quantiles=config.quantiles,
545
+ add_quantiles_from_std=False,
546
+ ),
547
+ ]
526
548
  elif config.model == "flatliner":
527
549
  preprocessing = []
528
550
  forecaster = FlatlinerForecaster(
@@ -161,7 +161,7 @@ class IsotonicQuantileCalibrator(BaseModel, Transform[ForecastDataset, ForecastD
161
161
  continue # Skip this quantile
162
162
 
163
163
  if self.use_local_quantile_estimation:
164
- actuals_clean = self._estimate_local_quantiles(predictions_clean, actuals_clean, float(quantile))
164
+ actuals_clean = self._estimate_local_quantiles(predictions_clean, actuals_clean, quantile)
165
165
 
166
166
  # Fit isotonic regression
167
167
  calibrator = IsotonicRegression(
@@ -184,7 +184,7 @@ class IsotonicQuantileCalibrator(BaseModel, Transform[ForecastDataset, ForecastD
184
184
  self._is_fitted = True
185
185
 
186
186
  def _estimate_local_quantiles(
187
- self, predictions: np.ndarray, actuals: np.ndarray, quantile_level: float
187
+ self, predictions: np.ndarray, actuals: np.ndarray, quantile_level: Quantile
188
188
  ) -> np.ndarray:
189
189
  """Estimate local quantiles using adaptive windowing.
190
190
 
@@ -13,6 +13,8 @@ import numpy.typing as npt
13
13
  import pandas as pd
14
14
  from sklearn.base import BaseEstimator, RegressorMixin
15
15
 
16
+ from openstef_core.types import Quantile
17
+
16
18
  logger = logging.getLogger(__name__)
17
19
 
18
20
  ParamType = float | int | str | bool | None
@@ -29,7 +31,7 @@ class MultiQuantileRegressor(BaseEstimator, RegressorMixin):
29
31
  self,
30
32
  base_learner: type[BaseEstimator],
31
33
  quantile_param: str,
32
- quantiles: list[float],
34
+ quantiles: list[Quantile],
33
35
  hyperparams: dict[str, ParamType],
34
36
  ):
35
37
  """Initialize MultiQuantileRegressor.
@@ -10,6 +10,7 @@ from sklearn.base import BaseEstimator
10
10
  from sklearn.linear_model import QuantileRegressor
11
11
  from xgboost import XGBRegressor
12
12
 
13
+ from openstef_core.types import Quantile
13
14
  from openstef_models.utils.multi_quantile_regressor import MultiQuantileRegressor, ParamType
14
15
 
15
16
  ParamDict = dict[str, ParamType]
@@ -66,7 +67,7 @@ def baselearner_config(request: pytest.FixtureRequest) -> BaseLearnerConfig:
66
67
 
67
68
  def test_init_sets_quantiles_and_models(baselearner_config: BaseLearnerConfig):
68
69
  # Arrange
69
- quantiles = [0.1, 0.5, 0.9]
70
+ quantiles = [Quantile(0.1), Quantile(0.5), Quantile(0.9)]
70
71
 
71
72
  # Act
72
73
  model = MultiQuantileRegressor(
@@ -83,7 +84,7 @@ def test_init_sets_quantiles_and_models(baselearner_config: BaseLearnerConfig):
83
84
 
84
85
  def test_fit_and_predict_shape(dataset: tuple[pd.DataFrame, pd.Series], baselearner_config: BaseLearnerConfig):
85
86
  # Arrange
86
- quantiles = [0.1, 0.5, 0.9]
87
+ quantiles = [Quantile(0.1), Quantile(0.5), Quantile(0.9)]
87
88
  X, y = dataset[0], dataset[1]
88
89
  model = MultiQuantileRegressor(
89
90
  base_learner=baselearner_config.base_learner,
@@ -102,7 +103,7 @@ def test_fit_and_predict_shape(dataset: tuple[pd.DataFrame, pd.Series], baselear
102
103
 
103
104
  def test_is_fitted_true_after_fit(dataset: tuple[pd.DataFrame, pd.Series], baselearner_config: BaseLearnerConfig):
104
105
  # Arrange
105
- quantiles = [0.1, 0.5, 0.9]
106
+ quantiles = [Quantile(0.1), Quantile(0.5), Quantile(0.9)]
106
107
  X, y = dataset[0], dataset[1]
107
108
  model = MultiQuantileRegressor(
108
109
  base_learner=baselearner_config.base_learner,