File size: 1,588 Bytes
52b0ede 46cc63a 52b0ede 46cc63a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # 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`).
|