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`).