Jano¶
Idioma: English | Español
Toolkit de simulación temporal y backtesting para sistemas de machine learning dependientes del tiempo
La capa faltante entre los modelos de ML y la validación temporal en producción.
Políticas explícitas de partición
Definí layouts train/test o train/validation/test con duraciones, filas o proporciones.
Relojes temporales
Avanzá por calendario, filas, batches online o checkpoints de retraining definidos por el usuario.
El drift se vuelve visible
Al mantener los folds anclados en el tiempo, los cambios en resultados y comportamiento quedan expuestos.
Inputs tabulares flexibles
Usá la misma API con pandas, NumPy o Polars manteniendo un único motor temporal.
Resumen visual de cómo Jano organiza particiones temporales, folds y reporting a lo largo del tiempo.
Jano es un toolkit de Python para estructurar, ejecutar y analizar particiones y simulaciones temporales sobre sistemas de machine learning que operan con datos correlacionados en el tiempo. Proporciona un marco explícito para definir políticas de partición temporal, correr evaluaciones walk-forward, ejecutar modelos bajo reglas explícitas de retraining y generar reportes auditables que reflejan cómo se comportan los sistemas bajo dinámicas de producción más realistas. Para escenarios online, también permite avanzar sobre la misma línea temporal por eventos observados, micro-batches o checkpoints de retraining definidos por el usuario.
A diferencia de los splits aleatorios tradicionales, Jano trata la cronología como una restricción de primer nivel. Está pensado para escenarios donde el leakage debe controlarse estrictamente y donde la performance cambia en el tiempo por drift, ciclos de reentrenamiento o cambios en la distribución de los datos.
En la práctica, la superficie recomendada se reparte entre TemporalSimulation y WalkForwardPolicy para simulación de folds, WalkForwardRunner para ejecutar modelos sobre esos folds, y TemporalBacktestSplitter para control manual e iteración low-level. Jano no calcula métricas de drift directamente; expone la estructura temporal de los resultados para que el drift, los cambios de régimen y la degradación sean observables fold por fold.
Casos de uso típicos:
validación walk-forward para forecasting o clasificación temporal
simulación de políticas de retraining y despliegue
ejecución de benchmarks de modelo bajo reglas explícitas de retraining
monitoreo de estabilidad del modelo a lo largo del tiempo
evaluación de políticas de decisión bajo condiciones de datos cambiantes
Backends soportados:
pandas.DataFramecon columnas nombradasnumpy.ndarraycon referencias enteras de columnaspolars.DataFramea través del extra opcionaljano[polars]
Contenidos
- Descripción general
- Splits Aleatorios vs Validación Temporal
- Relojes de Discretización Temporal
- Conceptos
- Simulación y reporting
- Ejemplo
- Correr un modelo con policies de retraining
- Perfiles de evaluación
- Alineación a días calendario
- Elegir el motor de particionado
- Control manual low-level
- Estudios con cutoff fijo
- Policy compuesta: optimizar historia de train dentro de cada iteración walk-forward
- Semántica temporal y control de leakage
- Lookback por grupo de features
- Preview simple de HTML
- Servidor MCP
- Por qué MCP además de la librería Python
- Instalación
- Cómo correr el servidor local
- Tools MCP disponibles
- Workflow recomendado para agentes
- Ejemplo de baseline runner
- Ejemplos de estudios temporales
- Ejemplo de configuración del cliente MCP
- Asistentes de código con IA
- Modelo de privacidad
- Alcance actual
- Uso con IA
- Benchmark
- Datasets externos
- Referencia de API
- Instalación y Release
- Sobre mí