Skip to content

check_search_error_score_handling

yohou.testing.search.check_search_error_score_handling(search_cv, y, X_actual=None, forecasting_horizon=3, X_future=None, X_forecast=None)

Check error_score parameter handles failing fits correctly.

Parameters

Name Type Description Default
search_cv BaseSearchCV

Unfitted search CV instance with error_score=np.nan

required
y DataFrame

Training target data

required
X_actual DataFrame

Training features

None
forecasting_horizon int

Number of steps ahead to forecast

3

Raises

Type Description
AssertionError

If error scores are not handled correctly

Source Code

Show/Hide source
def check_search_error_score_handling(
    search_cv,
    y: pl.DataFrame,
    X_actual: pl.DataFrame | None = None,
    forecasting_horizon: int = 3,
    X_future: pl.DataFrame | None = None,
    X_forecast: pl.DataFrame | None = None,
) -> None:
    """Check error_score parameter handles failing fits correctly.

    Parameters
    ----------
    search_cv : BaseSearchCV
        Unfitted search CV instance with error_score=np.nan
    y : pl.DataFrame
        Training target data
    X_actual : pl.DataFrame, optional
        Training features
    forecasting_horizon : int, default=3
        Number of steps ahead to forecast

    Raises
    ------
    AssertionError
        If error scores are not handled correctly

    """
    search_cv_clone = clone(search_cv)

    # Set error_score to np.nan (don't raise)
    search_cv_clone.error_score = np.nan

    # Note: This check assumes that invalid parameters will be tested
    # If all parameters are valid, this check may pass trivially
    search_cv_clone.fit(y, X_actual, forecasting_horizon=forecasting_horizon, X_future=X_future, X_forecast=X_forecast)

    # Check that fit completed without raising
    assert hasattr(search_cv_clone, "cv_results_"), (
        "fit() should complete with error_score=np.nan even with some failing fits"
    )