$ cd ../
Tabular Deep Learning — embeddings categóricos + FT-Transformer — bash

user@devops:~$ cat README.md

Tabular Deep Learning — embeddings categóricos + FT-Transformer

# Descripción

FT-Transformer (Gorishniy, Rubachev, Khrulkov & Babenko, 2021) y embeddings categóricos implementados desde cero en PyTorch sobre Adult Income (UCI/OpenML, 48.842 filas x 14 features; submuestra estratificada de 20.000 para presupuesto CPU; split 70/15/15 → 14.000 train / 3.000 val / 3.000 test; seed 42). La pregunta: ¿puede el deep learning competir con los árboles en datos tabulares? Tres enfoques sobre los MISMOS datos: (1) HistGradientBoosting de sklearn (400 árboles) — el rey clásico de tabulares; (2) Embedding MLP — un embedding aprendido por categoría (dim = min(50, (card+1)//2): trabajo 5, educación 8, estado civil 4, ocupación 8, relación 3, raza 3, sexo 2, país 21; total 54d) concatenado con los 6 numéricos estandarizados → MLP 60→128→64→1 con Dropout 0.3/0.2, 17.369 params, AdamW, batch 512; (3) FT-Transformer — Feature Tokenizer que proyecta CADA feature a un token de 48d (6 numéricos + 8 categóricos + token [CLS] aprendido) y 3 capas Transformer (4 heads, FFN 96, dropout 0.1), 62.065 params, AdamW lr 5e-4 con cosine annealing, early stopping sobre val-ROC-AUC (patience 8). Resultados en test: GBDT Acc 0.8693 / AUC 0.9258 / F1 0.7066 (0.4 s) vs Embedding MLP 0.8517 / 0.9128 / 0.6730 (7 s) vs FT-Transformer 0.8367 / 0.8966 / 0.6288 (141 s). Hallazgos: GBDT sigue ganando en datasets pequeños/medianos (hallazgo clásico); los embeddings aprendidos cierran la brecha a solo 1.3 pp de AUC — la lección de Entity Embeddings: la representación importa más que la arquitectura; la atención media del token [CLS] del FT-Transformer coincide con la permutation importance del GBDT en los features dominantes (marital-status, capital-gain, education, age); los embeddings aprenden semántica: categorías con tasas de ingreso similares quedan juntas en el espacio 48d (t-SNE de educación y ocupación, coloreado por tasa >50K). 8 visualizaciones.

# Características principales

$ FT-Transformer (Gorishniy et al. 2021) desde cero en PyTorch: Feature Tokenizer que proyecta cada feature a un token de 48d (6 numéricos + 8 categóricos) + 3 capas Transformer (4 heads, FFN 96) + token [CLS] de clasificación

$ Embedding MLP: 1 embedding aprendido por categoría (dim = min(50, (card+1)//2)) concatenado con numéricos estandarizados → MLP 60→128→64→1, 17.369 params

$ Benchmark clásico de tabulares: Adult Income (48.842 filas, OpenML) — GBDT vs Embedding MLP vs FT-Transformer sobre los mismos 14.000 registros de train

$ GBDT (HistGradientBoosting, 400 árboles) sigue al frente: Acc 0.8693 / AUC 0.9258 / F1 0.7066 en 0.4 s — los árboles dominan en datasets pequeños/medianos

$ El Embedding MLP queda a solo 1.3 pp de AUC (0.9128 vs 0.9258) en 7 s — la clave del DL tabular son los embeddings aprendidos, no la profundidad

$ La atención media del token [CLS] del FT-Transformer como importancia de features: coincide con la permutation importance del GBDT (marital-status, capital-gain, education, age)

$ Los embeddings aprenden semántica: t-SNE del espacio 48d agrupa categorías con tasas de ingreso similares (Exec-managerial ≈ Prof-specialty, HS-grad ≈ Some-college)

$ 8 visualizaciones: comparativa de métricas, curvas ROC, confusion matrices, t-SNE de embeddings, curvas de entrenamiento, atención vs importancia y análisis de errores

# Galería

Terminal del proyecto
Tabular Deep Learning — embeddings categóricos + FT-Transformer - Terminal del proyecto
Overview del dataset: clases y cardinalidades
Tabular Deep Learning — embeddings categóricos + FT-Transformer - Overview del dataset: clases y cardinalidades
GBDT vs Embedding MLP vs FT-Transformer
Tabular Deep Learning — embeddings categóricos + FT-Transformer - GBDT vs Embedding MLP vs FT-Transformer
t-SNE de embeddings categóricos
Tabular Deep Learning — embeddings categóricos + FT-Transformer - t-SNE de embeddings categóricos
Curvas ROC
Tabular Deep Learning — embeddings categóricos + FT-Transformer - Curvas ROC
Atención [CLS] vs permutation importance
Tabular Deep Learning — embeddings categóricos + FT-Transformer - Atención [CLS] vs permutation importance
Curvas de entrenamiento
Tabular Deep Learning — embeddings categóricos + FT-Transformer - Curvas de entrenamiento
Errores por nivel educativo
Tabular Deep Learning — embeddings categóricos + FT-Transformer - Errores por nivel educativo
Matrices de confusión
Tabular Deep Learning — embeddings categóricos + FT-Transformer - Matrices de confusión

# Tecnologías utilizadas

Python PyTorch scikit-learn NumPy Matplotlib Pandas