PrecisionRecallCurveVisualization#

class openstef_beam.analysis.visualizations.PrecisionRecallCurveVisualization(**data: Any) None[source]

Bases: VisualizationProvider

Creates precision-recall curves for evaluating binary classification performance.

Displays the classic precision-recall trade-off as a curve where each point represents performance at a different probability threshold. The closer the curve to the top-right corner, the better the model performs across all thresholds.

Two evaluation modes:

  • Standard: Traditional precision/recall based on binary classification accuracy

  • Effective: Specialized for congestion management, evaluating whether forecasts provide actionable insights for grid operators (correct direction + sufficient magnitude)

What you’ll see:

  • Curve plotting precision (Y-axis) vs recall (X-axis)

  • Each point represents a different probability threshold

  • Area under curve (AUC-PR) as overall performance metric

  • Multiple curves when comparing models or targets

  • Reference lines showing random classifier performance

Interpretation guide:

  • High precision: Few false alarms when predicting events

  • High recall: Catches most actual events that occur

  • Effective mode: Focuses on operationally useful predictions for grid management

Example

>>> from openstef_beam.analysis import AnalysisConfig
>>> from openstef_beam.analysis.visualizations import PrecisionRecallCurveVisualization
>>>
>>> analysis_config = AnalysisConfig(
...     visualization_providers=[
...         PrecisionRecallCurveVisualization(
...             name="precision_recall",
...             effective_precision_recall=True,  # For congestion management
...         ),
...     ]
... )
Parameters:

data (Any)

effective_precision_recall: bool
property supported_aggregations: set[AnalysisAggregation]

Returns the set of aggregation types supported by this provider.

Returns:

Set of supported VisualizationAggregation values.

create_by_none(report: EvaluationSubsetReport, metadata: TargetMetadata) VisualizationOutput[source]

Creates visualization for a single target from a single run.

Generates detailed analysis for individual target performance, typically showing time series, detailed metrics, or target-specific insights.

Returns:

Visualization focused on the specific target’s performance.

Parameters:
Return type:

VisualizationOutput

create_by_run_and_none(reports: dict[RunName, list[tuple[TargetMetadata, EvaluationSubsetReport]]]) VisualizationOutput[source]

Creates visualization comparing multiple runs on the same target group.

Groups reports by run_name and creates comparative visualizations showing how different models or configurations perform on the same targets.

Parameters:
  • reports (dict[TypeAliasType, list[tuple[TargetMetadata, EvaluationSubsetReport]]]) – Dictionary mapping run names to lists of (metadata, report) tuples for that run.

  • reports

Returns:

Visualization comparing different model runs on the same targets.

Return type:

VisualizationOutput

create_by_target(reports: list[tuple[TargetMetadata, EvaluationSubsetReport]]) VisualizationOutput[source]

Creates visualization comparing multiple targets from the same run.

Groups reports by target metadata and creates visualizations showing performance differences across individual targets within the same model run.

Parameters:
Returns:

Visualization comparing performance across different targets.

Return type:

VisualizationOutput

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': False, 'extra': 'ignore', 'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].