Files
drift/training/types.py
T
Mark Aron Szulyovszky 567cd5e9f0 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
2022-03-03 17:40:17 +01:00

43 lines
954 B
Python

import pandas as pd
from dataclasses import dataclass
from typing import Optional, Dict
PredictionsSeries = pd.Series
WeightsSeries = pd.Series
ProbabilitiesDataFrame = pd.DataFrame
Stats = Dict[str, float]
ModelOverTime = pd.Series
TransformationsOverTime = list[pd.Series]
@dataclass
class BaseTrainingOutcome:
model_id: str
predictions: PredictionsSeries
probabilities: ProbabilitiesDataFrame
model_over_time: ModelOverTime
@dataclass
class TrainingOutcome(BaseTrainingOutcome):
transformations: TransformationsOverTime
stats: Optional[Stats]
@dataclass
class BetSizingWithMetaOutcome(TrainingOutcome):
weights: WeightsSeries
@dataclass
class PipelineOutcome:
directional_training: TrainingOutcome
bet_sizing: BetSizingWithMetaOutcome
def get_output_weights(self) -> WeightsSeries:
return self.bet_sizing.weights
def get_output_stats(self) -> Stats:
return self.bet_sizing.stats