| # Pipeline de entrenamiento |
|
|
| Punto de entrada: [`src/pipeline/run_pipeline.py`](../src/pipeline/run_pipeline.py) |
|
|
| ## Comando |
|
|
| ```bash |
| 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 |
|
|
| 1. **Carga** — CSV en `data/raw/youtoxic_english_1000.csv` |
| 2. **Split** — train/test estratificado |
| 3. **Preprocesado** — `TextPreprocessor` (spaCy + NLTK) |
| 4. **Entrenamiento** — `build_model()` |
| 5. **Validación cruzada** — 5 folds |
| 6. **Evaluación** — `Evaluator.evaluate_and_report()` en test |
| 7. **Guardado** — `models/experiments/{model}/` |
| 8. **MLflow** — `mlruns/` |
| 9. **Informes** — `reports/summary.csv` y `reports/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`](../configs/model_catalog.yaml): **Meta-Feature Stacking** (producción), **LR + TF-IDF** y **Frozen Toxic-BERT** (baselines en `models/baseline/manifest.json`). |
|
|