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:
objectScores for a single partition.
- class nirs4all.controllers.models.components.score_calculator.ScoreCalculator[source]
Bases:
objectCalculates 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