Example #1
0
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
Example #2
0
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__"])