Result๏ƒ

Result: what a run returns โ€” predictions, settlements, and diagnostics.

The vectorbt lesson: a backtest should hand back a rich object you can interrogate (.stats(), .score, .rank_against(problem)), not a dict of floats. The leaderboard and rebase-hillclimbโ€™s val_score: line both read from here.

class emflow.run.result.Result(problem: 'str', model: 'str', objective: 'str', lower_is_better: 'bool', split: 'str', mode: 'str', predictions: 'pd.DataFrame', settlements: 'pd.DataFrame', analysis: 't.Dict[str, dict]' = <factory>, aggregate: 'str' = 'mean')[source]๏ƒ

Bases: object

problem: str๏ƒ
model: str๏ƒ
objective: str๏ƒ
lower_is_better: bool๏ƒ
split: str๏ƒ
mode: str๏ƒ
predictions: DataFrame๏ƒ
settlements: DataFrame๏ƒ
analysis: Dict[str, dict]๏ƒ
aggregate: str = 'mean'๏ƒ
property score: float๏ƒ

Overall objective score: per-origin scores pooled by the number of scored timestamps for mean-type metrics, summed for sum-type ones (e.g. trading revenue).

property n_scored: int๏ƒ
property n_origins: int๏ƒ
stats() dict[source]๏ƒ
to_leaderboard_row() dict[source]๏ƒ
rank_against(problem: Problem) t.Optional[int][source]๏ƒ

Position this score would have taken on the problemโ€™s published leaderboard (None if the problem has no reference scores).