Pipeline de entrenamiento
Punto de entrada: src/pipeline/run_pipeline.py
Comando
python -m src.pipeline.run_pipeline --model lr
| Flag | Valores | Por defecto |
|---|---|---|
--model |
lr, rf, xgboost |
lr |
Ejecutar desde la raíz del repositorio.
Fases
- Carga — CSV en
data/raw/youtoxic_english_1000.csv - Split — train/test estratificado
- Preprocesado —
TextPreprocessor(spaCy + NLTK) - Entrenamiento —
build_model() - Validación cruzada — 5 folds
- Evaluación —
Evaluator.evaluate_and_report()en test - Guardado —
models/experiments/{model}/ - MLflow —
mlruns/ - Informes —
reports/summary.csvyreports/pipeline/{model}/
Configuración
| Archivo | Uso |
|---|---|
configs/pipeline.yaml |
Rutas, IsToxic, split, CV |
configs/features.yaml |
TF-IDF y preprocesado |
configs/models.yaml |
Hiperparámetros de clasificadores |
configs/best_params.yaml |
Ganador Optuna (LR) |
Salidas
| Ruta | Contenido |
|---|---|
reports/summary.csv |
Tabla comparativa de modelos |
reports/pipeline/lr/cm_lr.png |
Matriz de confusión |
reports/pipeline/lr/roc_lr.png |
Curva ROC |
reports/pipeline/lr/errors_lr.csv |
FP / FN |
Inferencia del demo
Catálogo en configs/model_catalog.yaml: Meta-Feature Stacking (producción), LR + TF-IDF y Frozen Toxic-BERT (baselines en models/baseline/manifest.json).