def test_loader(): df = pd.read_csv(PEYTON_FILE, nrows=100) df["A"] = np.arange(len(df)) df["B"] = np.arange(len(df)) * 0.1 df1 = df[:50] df2 = df[50:] m = NeuralProphet( yearly_seasonality=True, weekly_seasonality=True, daily_seasonality=True, n_lags=3, n_forecasts=2, ) m.add_future_regressor("A") m.add_lagged_regressor("B") config_normalization = configure.Normalization("auto", False, True, False) df_dict = {"df1": df1.copy(), "df2": df2.copy()} config_normalization.init_data_params(df_dict, m.config_covar, m.regressors_config, m.events_config) m.config_normalization = config_normalization df_dict = m._normalize(df_dict) dataset = m._create_dataset(df_dict, predict_mode=False) loader = DataLoader(dataset, batch_size=min(1024, len(df)), shuffle=True, drop_last=False) for inputs, targets, meta in loader: assert set(meta["df_name"]) == set(df_dict.keys()) break
def test_normalize(): length = 100 days = pd.date_range(start="2017-01-01", periods=length) y = np.ones(length) y[1] = 0 y[2] = 2 y[3] = 3.3 df = pd.DataFrame({"ds": days, "y": y}) m = NeuralProphet(normalize="soft", ) # with config m.config_normalization.init_data_params( df_utils.prep_copy_df_dict(df)[0], m.config_covar, m.regressors_config, m.events_config) df_norm = m._normalize(df_utils.prep_copy_df_dict(df)[0]) m.config_normalization.unknown_data_normalization = True df_norm = m._normalize(df_utils.prep_copy_df_dict(df)[0]) m.config_normalization.unknown_data_normalization = False # using config for utils df_norm = df_utils.normalize(df.copy(deep=True), m.config_normalization.global_data_params) df_norm = df_utils.normalize( df_utils.prep_copy_df_dict(df)[0]["__df__"], m.config_normalization.local_data_params["__df__"]) # with utils local_data_params, global_data_params = df_utils.init_data_params( df_dict=df_utils.prep_copy_df_dict(df)[0], normalize=m.config_normalization.normalize, covariates_config=m.config_covar, regressor_config=m.regressors_config, events_config=m.events_config, global_normalization=m.config_normalization.global_normalization, global_time_normalization=m.config_normalization. global_time_normalization, ) df_norm = df_utils.normalize(df.copy(deep=True), global_data_params) df_norm = df_utils.normalize( df_utils.prep_copy_df_dict(df)[0]["__df__"], local_data_params["__df__"])