/ Proyectos / Industria / Clasificación de fallas eléctricas
Clasificación de fallas en redes eléctricas: combinando texto y datos tabulares con BERT
Predicción de la causa de una interrupción eléctrica fusionando comentarios de campo en texto libre con datos tabulares del circuito, en una arquitectura tipo TabBERT.
El objetivo era predecir la causa de una interrupción eléctrica a partir de datos tabulares del evento, como circuito, municipio y duración, junto con el comentario de campo que escribe el operador al atender la falla. El problema real: las causas originales venían repartidas en más de una decena de categorías desordenadas, y el comentario de texto libre era la señal más rica del dataset, justo la más difícil de aprovechar.
Se diseñó una arquitectura multimodal tipo TabBERT: una rama tabular con embeddings de las categóricas y la duración escalada, fusionada con un embedding de DistilBERT sobre el comentario. El hallazgo más importante no fue de modelo, fue de datos. Agrupar las causas en 3 clases con significado de negocio, antes de tocar cualquier arquitectura, resultó más determinante para el desempeño que cualquier ajuste posterior.
Mapa del casoContenido
- Diagrama de la solución. Los bloques del pipeline, de las fuentes tabular y de texto a la predicción final
- Construcción de la solución. Cómo el desorden real de los datos dirigió cada decisión
- Condiciones del proyecto. Restricciones reales y opciones descartadas antes de construir
- Pasos. Qué se dejó al agente y qué criterio se aplicó en cada uno
- Proceso de iteración. El ajuste documentado entre versiones del modelo
- Descargables. Notebook, diagrama y repositorio del proyecto
- Lecciones importantes. La lección concreta que deja este caso
Estructura de alto nivelDiagrama de la solución
Pasa el cursor sobre cada bloque para ver qué hace ese paso.
Las dos ramas, tabular y texto, se mantuvieron separadas hasta el punto de concatenación, porque fusionarlas antes habría diluido la señal semántica del comentario de campo dentro de los embeddings tabulares.
Cómo se construyóConstrucción de la solución
Condiciones del proyecto
| Restricción | Dato |
|---|---|
| Objetivo inicial | No exigía llevar el modelo a producción, con margen para explorar un enfoque más disruptivo |
| Categorías originales de causa de falla | Más de una decena, muchas con pocos registros |
| Señal más rica del dataset | Comentario de campo en texto libre, sin estructura fija |
| Variables de alta cardinalidad | Circuito y municipio, no tratables como categóricas simples |
| Opción | Por qué se descartó |
|---|---|
| Modelar directamente con las categorías originales de causa | Demasiado ruidosas y desbalanceadas: ningún modelo encontraría un patrón limpio |
| Ignorar el comentario de texto por ser "difícil de procesar" | Era la variable con más señal real del dataset |
| Agrupar causas en 3 clases con significado de negocio + fusión tabular-texto con BERT | Reduce el ruido de la variable objetivo y aprovecha la señal del texto sin descartarla |
Pasos
Agrupación de causas de falla en clases con significado de negocio
Agente: propuso mantener las categorías originales tal cual venían en los datos.
Criterio aplicado: colapsarlas en 3 clases con significado de negocio, Natural, Interna/Accidente y Otros, antes de tocar cualquier modelo, para concentrar señal en vez de diluirla.
Diseño de la rama tabular
Agente: sugirió one-hot encoding para todas las categóricas.
Criterio aplicado: usar embeddings entrenables para circuito y municipio por su alta cardinalidad, en vez de disparar la dimensionalidad con one-hot.
Fusión con la rama de texto usando DistilBERT
Agente: generó el pipeline estándar de tokenización y fine-tuning de BERT.
Criterio aplicado: tomar el embedding del token [CLS] y concatenarlo con la rama tabular en vez de promediar todos los tokens, para preservar el resumen semántico del comentario completo.
Balanceo y loss ponderado
Agente: propuso solo oversampling como solución al desbalance.
Criterio aplicado: combinar oversampling con un loss ponderado por clase durante el entrenamiento, porque el desbalance real no desaparece solo con más copias de la clase minoritaria.
Proceso de iteración
Ajuste documentado, no forzado
Las primeras corridas del modelo multimodal, con un learning rate más alto y menos dimensiones de embedding, sobreajustaban rápido al ruido del comentario. También se probaron modelos clásicos como Random Forest, Gradient Boosting y Regresión Logística, solo con la parte tabular, como punto de comparación. Ninguno aprovechaba la señal del texto, lo que confirmó que la complejidad extra del enfoque multimodal sí se justificaba.
CierreLecciones importantes
El trabajo de mayor impacto ocurrió antes de escribir una sola línea de PyTorch. Agrupar categorías ruidosas en clases con significado fue más determinante que cualquier ajuste fino de hiperparámetros. El texto libre casi nunca es "extra": a veces es la variable predictora más fuerte que tienes, y se descarta por default porque es más difícil de procesar.
Si quieres ver un enfoque publicado con una idea similar, texto y datos estructurados aplicados a infraestructura eléctrica, este paper es una buena referencia del nivel de la contribución: Enhancing reliability in power grid fault management via multi-task learning-based knowledge graph completion.
Termina ya tu proyecto
¿Tienes un proyecto similar y no sabes por dónde empezar? Yo te ayudo a diseñarlo.
El 92% de los profesionales de datos desbloquea sus proyectos al ver ejemplos completos resueltos.
Sin registro. Acceso inmediato