def _gen_split_indices()

in fclib/fclib/dataset/ojdata.py [0:0]


def _gen_split_indices(n_splits=12, horizon=2, gap=2, first_week=40, last_week=156):
    """Generate week splits for given parameters"""
    test_start_index = last_week - (horizon * n_splits) + 1
    train_end_index_first = test_start_index - gap
    train_end_index_last = train_end_index_first + (n_splits - 1) * horizon

    assert (
        test_start_index >= first_week
    ), f"Please adjust your parameters, so that testing data (currently week {test_start_index}), \
         starts after the first available week (week {first_week})."

    assert (
        train_end_index_first >= first_week
    ), f"Please adjust your parameters, so that last training data point (currently week {train_end_index_first}) \
        comes after the first available week (week {first_week})."

    test_start_week_list = list(range(test_start_index, (last_week - horizon + 1) + 1, horizon))
    test_end_week_list = list(range(test_start_index + horizon - 1, last_week + 1, horizon))
    train_end_week_list = list(range(train_end_index_first, train_end_index_last + 1, horizon))
    return test_start_week_list, test_end_week_list, train_end_week_list