nirs4all.controllers.models.components.score_calculator module

Score Calculator - Calculate evaluation scores consistently

This component centralizes score calculation logic using ModelUtils and Evaluator. Extracted from launch_training() lines 449-461 and various controller methods.

class nirs4all.controllers.models.components.score_calculator.PartitionScores(train: float, val: float, test: float, metric: str, higher_is_better: bool, detailed_scores: Dict[str, float] | None = None)[source]

Bases: object

Scores for a single partition.

detailed_scores: Dict[str, float] | None = None
higher_is_better: bool
metric: str
test: float
train: float
val: float
class nirs4all.controllers.models.components.score_calculator.ScoreCalculator[source]

Bases: object

Calculates evaluation scores for models.

Uses ModelUtils to select appropriate metrics based on task type, and Evaluator to compute scores.

Example

>>> calculator = ScoreCalculator()
>>> scores = calculator.calculate(
...     y_true={'train': y_train, 'val': y_val, 'test': y_test},
...     y_pred={'train': y_train_pred, 'val': y_val_pred, 'test': y_test_pred},
...     task_type='regression'
... )
>>> scores.test
0.88
calculate(y_true: Dict[str, ndarray], y_pred: Dict[str, ndarray], task_type: str) PartitionScores[source]

Calculate scores for all partitions.

Parameters:
  • y_true – Dictionary of true values per partition

  • y_pred – Dictionary of predictions per partition

  • task_type – Task type string (e.g., ‘regression’, ‘classification’)

Returns:

PartitionScores with scores for train, val, test

calculate_single(y_true: ndarray, y_pred: ndarray, task_type: str, metric: str | None = None) float[source]

Calculate score for a single partition.

Parameters:
  • y_true – True values

  • y_pred – Predictions

  • task_type – Task type string

  • metric – Optional metric name (if None, uses best metric for task)

Returns:

Score value

format_scores(scores: PartitionScores) str[source]

Format scores as a readable string.

Parameters:

scores – PartitionScores instance

Returns:

0.95 | Val: 0.90 | Test: 0.88 (R2)”

Return type:

Formatted string like “Train