refactor(WalkForward): separate train / test functions to help with inference later (#158)

* refactor(WalkForward): separate train / test functions (draft) to potentially help with inference later

* fix(Training): use the new separate train / test functions

* feat(Training): return and pass in scalers that are necessary for inference

* fix(Project): runtime errors

* fix(WalkForward): use the correct `train_from` value

* fix(Tests): for new walk_forward functions()

* refactor(WalkForward): rename `walk_forward_test()` to `walk_forward_inference()`
This commit is contained in:
Mark Aron Szulyovszky
2022-01-12 14:42:16 +01:00
committed by GitHub
parent 5db2a3b935
commit c611481eb6
7 changed files with 101 additions and 50 deletions
+12 -4
View File
@@ -1,9 +1,10 @@
import numpy as np
import pandas as pd
from training.walk_forward import walk_forward_train_test
from training.walk_forward import walk_forward_train, walk_forward_inference
from models.base import Model
from utils.evaluate import evaluate_predictions
from sklearn.preprocessing import MinMaxScaler
no_of_rows = 100
@@ -67,9 +68,9 @@ def test_evaluation():
window_length = 10
model = EvenOddStubModel(window_length = window_length)
scaler = None
scaler = MinMaxScaler()
models, predictions, probs = walk_forward_train_test(
models, scalers = walk_forward_train(
model_name='test',
model=model,
X=X,
@@ -78,7 +79,14 @@ def test_evaluation():
expanding_window=False,
window_size=window_length,
retrain_every=10,
scaler=scaler
scaler=scaler)
predictions, probs = walk_forward_inference(
model_name='test',
models=models,
scalers=scalers,
X=X,
expanding_window=False,
window_size=window_length
)
# verify if predictions are the same as y
+12 -3
View File
@@ -1,7 +1,8 @@
import numpy as np
import pandas as pd
from training.walk_forward import walk_forward_train_test
from training.walk_forward import walk_forward_train, walk_forward_inference
from models.base import Model
from sklearn.preprocessing import MinMaxScaler
no_of_rows = 100
@@ -65,9 +66,9 @@ def test_walk_forward_train_test():
window_length = 10
model = IncrementingStubModel(window_length = window_length)
scaler = None
scaler = MinMaxScaler()
models, predictions, probs = walk_forward_train_test(
models, scalers = walk_forward_train(
model_name='test',
model=model,
X=X,
@@ -77,6 +78,14 @@ def test_walk_forward_train_test():
window_size=window_length,
retrain_every=10,
scaler=scaler)
predictions, probs = walk_forward_inference(
model_name='test',
models=models,
scalers=scalers,
X=X,
expanding_window=False,
window_size=window_length
)
# verify if predictions are the same as y
for i in range(window_length+2, no_of_rows):