Objective๏
Objective: the metric a problem ranks on, with a direction.
Metrics are pure functions (see emflow.problems.metrics); an Objective
is the one a leaderboard sorts by โ it adds direction (lower_is_better)
and comparison helpers. This is what rebase-hillclimbโs val_score: line
ultimately reports.
- class emflow.problems.objective.Objective(metric: 'Metric', lower_is_better: 'bool' = True)[source]๏
Bases:
object- lower_is_better: bool = True๏
- property name: str๏
- class emflow.problems.objective.Metric[source]๏
Bases:
ABCBase class for metrics. Stateless; safe to share across problems.
- aggregate: str = 'mean'๏
How per-origin scores combine into an overall score: โmeanโ (pooled by scored timestamps โ error metrics) or โsumโ (revenue-type metrics).
- property name: str๏
- class emflow.problems.objective.MeanAbsoluteError[source]๏
Bases:
Metric- aggregate: str = 'mean'๏
How per-origin scores combine into an overall score: โmeanโ (pooled by scored timestamps โ error metrics) or โsumโ (revenue-type metrics).
- calculate(y_true, y_pred) float๏
- property name: str๏
- class emflow.problems.objective.MeanSquaredError(squared: bool = True)[source]๏
Bases:
Metric- property name๏
- aggregate: str = 'mean'๏
How per-origin scores combine into an overall score: โmeanโ (pooled by scored timestamps โ error metrics) or โsumโ (revenue-type metrics).
- class emflow.problems.objective.RootMeanSquaredError[source]๏
Bases:
MeanSquaredError- aggregate: str = 'mean'๏
How per-origin scores combine into an overall score: โmeanโ (pooled by scored timestamps โ error metrics) or โsumโ (revenue-type metrics).
- calculate(y_true, y_pred) float๏
- elementwise(y_true, y_pred)๏
Per-timestamp scores (NaN where either side is missing).
- property name๏
- class emflow.problems.objective.MeanAbsolutePercentageError[source]๏
Bases:
Metric- aggregate: str = 'mean'๏
How per-origin scores combine into an overall score: โmeanโ (pooled by scored timestamps โ error metrics) or โsumโ (revenue-type metrics).
- calculate(y_true, y_pred) float๏
- property name: str๏
- class emflow.problems.objective.PinballLoss(quantiles: Sequence[float] | None = None)[source]๏
Bases:
MetricAverage pinball (quantile) loss over the predictionโs quantile columns.
y_predmust carry quantile levels as float column names. If the metric was constructed with explicitquantiles, the prediction must provide exactly those columns (competition contract); otherwise whatever quantile columns are present are scored.- aggregate: str = 'mean'๏
How per-origin scores combine into an overall score: โmeanโ (pooled by scored timestamps โ error metrics) or โsumโ (revenue-type metrics).
- calculate(y_true, y_pred) float๏
- property name: str๏
- class emflow.problems.objective.PeakTimingError[source]๏
Bases:
MetricBigDEAL-2022-style peak-timing score: per day, the absolute distance (in hours) between the true and predicted peak hour of
y.Both series are grouped by calendar day on their index; days missing from either side are skipped.
- aggregate: str = 'mean'๏
How per-origin scores combine into an overall score: โmeanโ (pooled by scored timestamps โ error metrics) or โsumโ (revenue-type metrics).
- calculate(y_true, y_pred) float๏
- property name: str๏