refactor(Evaluate): print out accuracy, f1, etc. for the final & meta predictions, separated out evaluation step (#228)

* refactor(Evaluate): print out accuracy, f1, etc. for the final & meta predictions, separated out evaluation step

* fix(Linter): ran

* fix(Tests): syntax change

* fix(Inference): runs now again

* fix(Linter): ran
This commit is contained in:
Mark Aron Szulyovszky
2022-03-03 17:40:17 +01:00
committed by GitHub
parent 75157c6285
commit 567cd5e9f0
13 changed files with 153 additions and 118 deletions
+20 -5
View File
@@ -1,6 +1,7 @@
import pandas as pd
from transformations.base import Transformation
from utils.evaluate import evaluate_predictions
from .types import TrainingOutcome
from training.train_model import train_model
@@ -9,6 +10,7 @@ from training.walk_forward import walk_forward_process_transformations
from typing import Optional
from config.types import Config
from models.base import Model
import pprint
def train_directional_model(
@@ -45,17 +47,30 @@ def train_directional_model(
sliding_window_size=config.sliding_window_size,
retrain_every=config.retrain_every,
from_index=from_index,
no_of_classes=config.no_of_classes,
level="primary",
output_stats=config.mode == "training",
transformations_over_time=transformations_over_time,
model_over_time=preloaded_training_step.model_over_time
if preloaded_training_step
else None,
)
if config.mode == "training":
print(training_outcome.stats)
stats = (
evaluate_predictions(
forward_returns=forward_returns,
y_pred=training_outcome.predictions,
y_true=y,
discretize_func=config.labeling.get_discretize_function(),
labels=config.labeling.get_labels(),
transaction_costs=config.transaction_costs,
)
if config.mode == "training"
else None
)
if stats is not None:
pp = pprint.PrettyPrinter(depth=2)
pp.pprint(stats)
return TrainingOutcome(
**vars(training_outcome), transformations=transformations_over_time
**vars(training_outcome), transformations=transformations_over_time, stats=stats
)