Gran pregunta, esto es lo que se conoce en el paradigma de Machine Learning como "Covariable Shift", o "Model Drift" o "Nonstationarity" y así sucesivamente.
¡Una de las suposiciones críticas que se haría para construir un modelo de aprendizaje automático para predicciones futuras es que los datos no vistos (prueba) provienen de la misma distribución que los datos de entrenamiento! Sin embargo, en realidad, esta suposición bastante simple se rompe fácilmente y los datos próximos (su distribución) cambian con el tiempo por muchas razones. Para aquellos que no estén familiarizados con este problema tan importante, ¡les recomiendo mirar aquí o publicar !
Para mí, su pregunta cae en la misma categoría. Aunque no tengo la solución perfecta (una implementación que ofrecer), creo que puedes buscar:
- ¡Esta publicación de blog le brinda una manera simple de manejar el submuestreo de datos de entrenamiento con el código proporcionado en Python!
- Mira este trabajo de investigación . Proponen para resolver el problema volviendo a ponderar los datos de entrenamiento para que la distribución de la formación está más cerca de la distribución de prueba usando Kullback-Leibler Importancia Procedimiento de Estimación de base en " Kullback-Leibler divergencia " teorema. No sé si proporcionan una implementación o si se puede implementar fácilmente, pero creo que valdría la pena excavar, ya que parece una forma profesional de solucionar el desajuste de distribución.
Actualización RÁPIDA (una buena solución) : encontré una implementación de Python del algoritmo KLIEP de ese trabajo de investigación (último punto) para encontrar esos pesos. ¡Parece bastante fácil de usar! Básicamente, vuelve a muestrear el entrenamiento poniendo pesos (a través del algoritmo KLIEP) para que la suposición de tener una distribución similar de entrenamiento y prueba sea cierta tanto como sea posible.