def check_simple(df): m = NeuralProphet() folds = m.crossvalidation_split_df(df, freq="D", k=5, fold_pct=0.1, fold_overlap_pct=0.5) assert all( [70 + i * 5 == len(train) for i, (train, val) in enumerate(folds)]) assert all([10 == len(val) for (train, val) in folds])
def check_cv(df, freq, n_lags, n_forecasts, k, fold_pct, fold_overlap_pct): m = NeuralProphet( n_lags=n_lags, n_forecasts=n_forecasts, ) folds = m.crossvalidation_split_df(df, freq=freq, k=k, fold_pct=fold_pct, fold_overlap_pct=fold_overlap_pct) total_samples = len(df) - m.n_lags + 2 - (2 * m.n_forecasts) per_fold = int(fold_pct * total_samples) not_overlap = per_fold - int(fold_overlap_pct * per_fold) assert all([per_fold == len(val) - m.n_lags + 1 - m.n_forecasts for (train, val) in folds]) assert all( [ total_samples - per_fold - (k - i - 1) * not_overlap == len(train) - m.n_lags + 1 - m.n_forecasts for i, (train, val) in enumerate(folds) ] )