Removing folds with n_splits. Dynamic before and after-data.#

Dynamic before/after-ranges, with removed partitions.

import pandas
from rics import configure_stuff
from rics.ml.time_split import log_split_progress, plot, split

configure_stuff(datefmt="")

data = pandas.date_range("2022", "2022-2", freq="15s")
config = dict(schedule="0 0 * * MON,FRI", before=1, after=2, available=data, n_splits=4)

plot(**config, show_removed=True)
time_split.split(schedule='0 0 * * MON,FRI', before=1, after=2, n_splits=4, available=pandas.DatetimeIndex)
👻 Configured some stuff just the way I like it!

<Axes: title={'center': "time_split.split(schedule='0 0 * * MON,FRI', before=1, after=2, n_splits=4, available=pandas.DatetimeIndex)"}, ylabel='Fold'>

Any non-zero integer before/after-range may be used. Setting show_removed=True forces plotting of folds that would be silently discarded by the split()-function. Later folds are preferred.

for fold in log_split_progress(split(**config), logger="my-logger"):
    print("Doing work..")
[my-logger:INFO] Begin fold 1/4: '2022-01-10' <= [schedule: '2022-01-14' (Friday)] < '2022-01-21'.
Doing work..
[my-logger:INFO] Finished fold 1/4: [schedule: '2022-01-14' (Friday)] after 23μs.
[my-logger:INFO] Begin fold 2/4: '2022-01-14' <= [schedule: '2022-01-17' (Monday)] < '2022-01-24'.
Doing work..
[my-logger:INFO] Finished fold 2/4: [schedule: '2022-01-17' (Monday)] after 23μs.
[my-logger:INFO] Begin fold 3/4: '2022-01-17' <= [schedule: '2022-01-21' (Friday)] < '2022-01-28'.
Doing work..
[my-logger:INFO] Finished fold 3/4: [schedule: '2022-01-21' (Friday)] after 22μs.
[my-logger:INFO] Begin fold 4/4: '2022-01-21' <= [schedule: '2022-01-24' (Monday)] < '2022-01-31'.
Doing work..
[my-logger:INFO] Finished fold 4/4: [schedule: '2022-01-24' (Monday)] after 22μs.

Total running time of the script: (0 minutes 0.426 seconds)

Gallery generated by Sphinx-Gallery