Como ocurre con cualquier modelo, habría que hacer algunas suposiciones y ver cómo se resuelve la incorporación de esas suposiciones. Estás tratando de modelar los depósitos básicos, por lo que tendría sentido considerarlos cuenta por cuenta, ya que la forma en que cada cliente utiliza su cuenta variará.
Si por núcleo se entienden los depósitos que no se retiran, no veo el problema de considerar el saldo mínimo de ese mes. Para formalizar, para cada cuenta, puedes tener
Depósito_de base = running_min(saldo_de_cuenta, 3 meses)
por ejemplo.
Otras cosas que puedes probar son el saldo medio de los últimos X meses +- la desviación estándar de los cambios de saldo.
No he visto cuánto varían los datos, pero prueba también el equilibrio de la mediana +- la desviación absoluta de la media para reducir el efecto de los valores atípicos.
Cada uno de estos métodos producirá una respuesta, pero lo importante es cómo evaluamos esa respuesta. Tal vez podamos plantear esto como una pregunta de ML.
Así que tiene su conjunto de datos que es esencialmente una serie de tiempo para cada cuenta. Para cada cuenta, para cada punto en el tiempo, calcula la cantidad MÍNIMA en la cuenta durante los próximos, digamos, 6 meses, esa cantidad será la cantidad objetivo que quieres entrenar a tu modelo de aprendizaje automático para aprender. Si tenemos éxito en la construcción de dicho modelo, su modelo debería escupir una cantidad que el cliente debería tener al menos en su cuenta durante los próximos 6 meses.
La siguiente parte, la ingeniería de características, aquí es donde se puede ser creativo en el desarrollo de características como el cálculo de la frecuencia de los cambios de saldo, la magnitud de los cambios, el cambio promedio si el depósito / gasto, etc.