def test_score_function_null(daily_data): """Tests fit and its compatibility with predict/score. Checks score function accuracy with null model """ model = SilverkiteEstimator( null_model_params={"strategy": "mean"}, fit_algorithm_dict={ "fit_algorithm_params": {"fit_intercept": False} } ) assert model.fit_algorithm_dict == { "fit_algorithm_params": {"fit_intercept": False} } train_df = daily_data["train_df"] model.fit( train_df, time_col=cst.TIME_COL, value_col=cst.VALUE_COL) assert model.fit_algorithm_dict == { "fit_algorithm": "linear", "fit_algorithm_params": {"fit_intercept": False} } score = model.score( daily_data["test_df"], daily_data["test_df"][cst.VALUE_COL]) assert score == pytest.approx(0.90, rel=1e-2)
def test_score_function(daily_data_with_reg): """Tests fit and its compatibility with predict/score. Checks score function accuracy without null model """ model = SilverkiteEstimator( extra_pred_cols=["ct1", "regressor1", "regressor2"], impute_dict={ "func": impute_with_lags, "params": {"orders": [7]}} ) train_df = daily_data_with_reg["train_df"] test_df = daily_data_with_reg["test_df"] model.fit( X=train_df, time_col=cst.TIME_COL, value_col=cst.VALUE_COL) score = model.score(test_df, test_df[cst.VALUE_COL]) pred_df = model.predict(test_df) assert list(pred_df.columns) == [cst.TIME_COL, cst.PREDICTED_COL] assert score == pytest.approx(mean_squared_error( pred_df[cst.PREDICTED_COL], test_df[cst.VALUE_COL])) assert score == pytest.approx(4.6, rel=1e-2)