openstef 3.4.44__py3-none-any.whl → 3.4.45__py3-none-any.whl
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.
- openstef/data_classes/prediction_job.py +3 -0
- openstef/tasks/train_model.py +32 -1
- {openstef-3.4.44.dist-info → openstef-3.4.45.dist-info}/METADATA +1 -1
- {openstef-3.4.44.dist-info → openstef-3.4.45.dist-info}/RECORD +7 -7
- {openstef-3.4.44.dist-info → openstef-3.4.45.dist-info}/LICENSE +0 -0
- {openstef-3.4.44.dist-info → openstef-3.4.45.dist-info}/WHEEL +0 -0
- {openstef-3.4.44.dist-info → openstef-3.4.45.dist-info}/top_level.txt +0 -0
@@ -79,6 +79,9 @@ class PredictionJobDataClass(BaseModel):
|
|
79
79
|
"""Minimum length (in rows) of the forecast input for making a regular forecast."""
|
80
80
|
flatliner_threshold_minutes: int = 1440
|
81
81
|
"""Number of minutes that the load has to be constant to detect a flatliner. """
|
82
|
+
data_balancing_ratio: Optional[float] = None
|
83
|
+
"""If data balancing is enabled, the data will be balanced with data from 1 year
|
84
|
+
ago in the future."""
|
82
85
|
depends_on: Optional[list[Union[int, str]]]
|
83
86
|
"""Link to another prediction job on which this prediction job might depend."""
|
84
87
|
sid: Optional[str]
|
openstef/tasks/train_model.py
CHANGED
@@ -22,6 +22,8 @@ Example:
|
|
22
22
|
from datetime import datetime, timedelta
|
23
23
|
from pathlib import Path
|
24
24
|
|
25
|
+
import pandas as pd
|
26
|
+
|
25
27
|
from openstef.data_classes.prediction_job import PredictionJobDataClass
|
26
28
|
from openstef.enums import ModelType, PipelineType
|
27
29
|
from openstef.exceptions import (
|
@@ -114,10 +116,16 @@ def train_model_task(
|
|
114
116
|
return
|
115
117
|
|
116
118
|
# Define start and end of the training input data
|
119
|
+
training_period_days_to_fetch = (
|
120
|
+
TRAINING_PERIOD_DAYS
|
121
|
+
if pj.data_balancing_ratio is None
|
122
|
+
else int(pj.data_balancing_ratio * TRAINING_PERIOD_DAYS)
|
123
|
+
)
|
124
|
+
|
117
125
|
if datetime_end is None:
|
118
126
|
datetime_end = datetime.utcnow()
|
119
127
|
if datetime_start is None:
|
120
|
-
datetime_start = datetime_end - timedelta(days=
|
128
|
+
datetime_start = datetime_end - timedelta(days=training_period_days_to_fetch)
|
121
129
|
|
122
130
|
# Get training input data from database
|
123
131
|
input_data = context.database.get_model_input(
|
@@ -127,6 +135,29 @@ def train_model_task(
|
|
127
135
|
datetime_end=datetime_end,
|
128
136
|
)
|
129
137
|
|
138
|
+
# If data balancing is enabled, fetch data from 1 year ago and combine it with the
|
139
|
+
# current data
|
140
|
+
if pj.data_balancing_ratio is not None:
|
141
|
+
# Because the data is from the past, we can use the data from the "future"
|
142
|
+
balanced_datetime_start = datetime_end - timedelta(days=365)
|
143
|
+
balanced_datetime_end = balanced_datetime_start + timedelta(
|
144
|
+
days=training_period_days_to_fetch
|
145
|
+
)
|
146
|
+
|
147
|
+
balanced_input_data = context.database.get_model_input(
|
148
|
+
pid=pj["id"],
|
149
|
+
location=[pj["lat"], pj["lon"]],
|
150
|
+
datetime_start=balanced_datetime_start,
|
151
|
+
datetime_end=balanced_datetime_end,
|
152
|
+
)
|
153
|
+
|
154
|
+
input_data = pd.concat(
|
155
|
+
[
|
156
|
+
balanced_input_data,
|
157
|
+
input_data,
|
158
|
+
]
|
159
|
+
)
|
160
|
+
|
130
161
|
context.perf_meter.checkpoint("Retrieved timeseries input")
|
131
162
|
|
132
163
|
# Excecute the model training pipeline
|
@@ -15,7 +15,7 @@ openstef/data/dazls_model_3.4.24/dazls_stored_3.4.24_model_card.md.license,sha25
|
|
15
15
|
openstef/data_classes/__init__.py,sha256=bIyGTSA4V5VoOLTwdaiJJAnozmpSzvQooVYlsf8H4eU,163
|
16
16
|
openstef/data_classes/data_prep.py,sha256=gRSL7UiHvZis8m8z7VoTCZc0Ccffhef5_hmSyApnqK0,3417
|
17
17
|
openstef/data_classes/model_specifications.py,sha256=Uod1W3QzhRqVLb6zvXwxh9wRL3EHCzSvX0oDNd28cFk,1197
|
18
|
-
openstef/data_classes/prediction_job.py,sha256=
|
18
|
+
openstef/data_classes/prediction_job.py,sha256=_o5_9HYv6ERTIWlcMpUE-mWwe7dRpaiP83dgNpqpa5Y,5657
|
19
19
|
openstef/data_classes/split_function.py,sha256=ljQIQQu1t1Y_CVWGAy25jrM6wG9odIVVQVimrT1n-1s,3358
|
20
20
|
openstef/feature_engineering/__init__.py,sha256=bIyGTSA4V5VoOLTwdaiJJAnozmpSzvQooVYlsf8H4eU,163
|
21
21
|
openstef/feature_engineering/apply_features.py,sha256=9scyEpUZcSWQrhMXV4c7iT1KvmHDk1J_KSZ_qI63lfY,4866
|
@@ -83,15 +83,15 @@ openstef/tasks/create_solar_forecast.py,sha256=cZiIoCVHlLlDrsWeH3ZX4zfcMMrgGgqkG
|
|
83
83
|
openstef/tasks/create_wind_forecast.py,sha256=RhshkmNSyFWx4Y6yQn02GzHjWTREbN5A5GAeWv0JpcE,2907
|
84
84
|
openstef/tasks/optimize_hyperparameters.py,sha256=meiOn5S4yBrk5ANCFwcBCfTZIhm-b1rdh9TFh7KFr3E,4754
|
85
85
|
openstef/tasks/split_forecast.py,sha256=AF_AwFcD6BqOrfvNLhIm_8gb7SpyKxEx60mymoxohPg,9323
|
86
|
-
openstef/tasks/train_model.py,sha256=
|
86
|
+
openstef/tasks/train_model.py,sha256=o8QVPReJ71BZVCOL6Rs3PFD9Zg4LT16dPcbf87xnXpA,8494
|
87
87
|
openstef/tasks/utils/__init__.py,sha256=bIyGTSA4V5VoOLTwdaiJJAnozmpSzvQooVYlsf8H4eU,163
|
88
88
|
openstef/tasks/utils/dependencies.py,sha256=Jy9dtV_G7lTEa5Cdy--wvMxJuAb0adb3R0X4QDjVteM,3077
|
89
89
|
openstef/tasks/utils/predictionjobloop.py,sha256=Ysy3zF5lzPMz_asYDKeF5m0qgVT3tCtwSPihqMjnI5Q,9580
|
90
90
|
openstef/tasks/utils/taskcontext.py,sha256=L9K14ycwgVxbIVUjH2DIn_QWbnu-OfxcGtQ1K9T6sus,5630
|
91
91
|
openstef/validation/__init__.py,sha256=bIyGTSA4V5VoOLTwdaiJJAnozmpSzvQooVYlsf8H4eU,163
|
92
92
|
openstef/validation/validation.py,sha256=HVgreHvcZvPazfwC3NNE8_3lsMsZEd_42osCAg1_6W4,11128
|
93
|
-
openstef-3.4.
|
94
|
-
openstef-3.4.
|
95
|
-
openstef-3.4.
|
96
|
-
openstef-3.4.
|
97
|
-
openstef-3.4.
|
93
|
+
openstef-3.4.45.dist-info/LICENSE,sha256=7Pm2fWFFHHUG5lDHed1vl5CjzxObIXQglnYsEdtjo_k,14907
|
94
|
+
openstef-3.4.45.dist-info/METADATA,sha256=nszNfTz9kFGVZyiXyRL18H4_6WtSIlZDvLuAAleM5wM,8068
|
95
|
+
openstef-3.4.45.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
96
|
+
openstef-3.4.45.dist-info/top_level.txt,sha256=kD0H4PqrQoncZ957FvqwfBxa89kTrun4Z_RAPs_HhLs,9
|
97
|
+
openstef-3.4.45.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|