def test_cross_validation_folds_return_length(train_size, min_train_size, horizon, step, expected): y_train = np.arange(train_size) cv = ms.rolling_forecast_origin(y_train, min_train_size, horizon, step) result = ms.cross_validation_folds(b.Naive1(), cv) assert len(result) == expected
def test_cross_validation_score_return_length(train_size, min_train_size, horizon, step, expected): y_train = np.arange(train_size) cv = ms.rolling_forecast_origin(y_train, min_train_size, horizon, step) metric = metrics.mean_error result = ms.cross_validation_score(b.Naive1(), cv, metric=metric, n_jobs=1) assert len(result) == expected
def test_rfo_test_length(train_size, horizon, expected): ''' test the length of test is correct in the rolling origin generator ''' train = np.arange(train_size) cv = ms.rolling_forecast_origin(train, min_train_size=1, horizon=horizon) _, test_cv = next(cv) assert expected == len(test_cv)
def test_rfo_min_train_length(train_size, min_train_size, horizon, expected): ''' check that the minimum training size is correct ''' train = np.arange(train_size) cv = ms.rolling_forecast_origin(train, min_train_size=min_train_size, horizon=horizon) train_cv, _ = next(cv) assert expected == len(train_cv)
def test_forecast_accuracy_length(n_horizons, expected): model = b.Naive1() train = np.arange(10000) metric = metrics.mean_absolute_error horizons = np.arange(1, n_horizons + 1).tolist() cv = ms.rolling_forecast_origin(train, min_train_size=100, horizon=100) train_cv, test_cv = next(cv) result_h = ms.forecast_accuracy(model, train_cv, test_cv, horizons=horizons, metric=metric) assert len(result_h) == expected
def test_rfo_second_fold_train_size(train_size, min_train_size, horizon, step, expected): ''' check that the second fold size = minimum training size + step ''' train = np.arange(train_size) cv = ms.rolling_forecast_origin(train, min_train_size=min_train_size, horizon=horizon, step=step) train_cv, _ = next(cv) # second fold min_train_size + step == len train_cv, _ = next(cv) assert expected == len(train_cv)
def test_mase_cv_number_of_folds(train_size, min_train_size, horizon, step, expected): ''' check that the number of folds returned from rolling origin is as expected when data source is a pandas.DataFrame ''' train = np.arange(train_size) cv = ms.rolling_forecast_origin(train, min_train_size=min_train_size, horizon=horizon, step=step) scores = ms.scaled_cross_validation_score(b.Naive1(), cv) print(expected, len(scores)) print(scores) assert expected == len(scores)
def test_rfo_number_of_folds_pd(train_size, min_train_size, horizon, step, expected): ''' check that the number of folds returned from rolling origin is as expected when data source is a pandas.DataFrame ''' train = pd.DataFrame(np.arange(train_size)) cv = ms.rolling_forecast_origin(train, min_train_size=min_train_size, horizon=horizon, step=step) actual = 0 # number of folds found for _, _ in cv: actual += 1 assert expected == actual
def test_rfo_number_of_folds(train_size, min_train_size, horizon, step, expected): ''' check that the number of folds returned from rolling origin is as expected ''' train = np.arange(train_size) cv = ms.rolling_forecast_origin(train, min_train_size=min_train_size, horizon=horizon, step=step) actual = 0 # number of folds found for _, _ in cv: actual += 1 assert expected == actual