Классификация — определение K-кратного разбиения с учетом переменной

#scikit-learn #pycaret

Вопрос:

Предположим, у меня есть набор данных, в котором:

 YearMonth  Client_ID   Label   [More variables]
2021-05            1       1    Any relevant data
2021-05            2       1    Any relevant data
2021-04            3       0    Any relevant data
 

У нас есть 20 уникальных значений для YearMonth , и размер набора данных равен Client_ID уникальным значениям.

У меня есть набор данных о несбалансированности около 5%, что составляет 5% Label=1 и 95% Label=0 , поэтому моя модель классификации должна учитывать это. Мне нужно спрогнозировать Label на следующий месяц, поэтому я оставил один месяц (последний) как test , так что у меня будет 19 месяцев для тренировок.

Можно ли определить 19 кратных значений, чтобы каждая проверка процесса обучения проводилась ВСЕГО за один месяц? В частности, алгоритм тренируется 18 месяцев и проходит проверку в течение следующего месяца, и эта итерация будет выполняться 19 раз (обязательно ли это должно быть 19 раз?). Как только модель пройдет обучение, я протестирую ее в последний месяц из 20 месяцев, которые я изначально разделил.

Если это возможно, возможно ли это в PyCaret пакете? Я ничего не могу найти по этому поводу (возможно, я ищу неправильные теги)