$ cd ../
GNN — Graph Neural Networks — bash

user@devops:~$ cat README.md

GNN — Graph Neural Networks

# Descripción

Graph Neural Networks (GNN) desde cero en PyTorch. Implementación de Graph Convolutional Networks (GCN) según Kipf & Welling (2017) para clasificación de nodos en el dataset clásico Zachary's Karate Club. El modelo construye una capa convolucional de grafos desde cero: normalización simétrica de la matriz de adyacencia (D⁻¹ᐟ²·A·D⁻¹ᐟ²), agregación de vecinos mediante message passing, y transformación lineal con activación ReLU. La arquitectura GCN de 2 capas (34 → 32 → 2, 1,186 parámetros) aprende embeddings de nodos en 500 épocas con early stopping, alcanzando 88.24% de accuracy global (30/34 nodos correctos). Las 4 predicciones erróneas ocurren en nodos fronterizos entre las dos comunidades rivales del club de karate. 7 visualizaciones: grafo original con comunidades reales, curvas de pérdida y accuracy, predicciones vs ground truth, errores de clasificación resaltados, t-SNE de embeddings 32D, matriz de confusión, y diagrama de message passing mostrando cómo el nodo 0 agrega información de sus vecinos.

# Características principales

$ GCN desde cero en PyTorch: capa GraphConv con normalización simétrica de adyacencia

$ Clasificación de nodos en Zachary's Karate Club: 34 nodos, 78 aristas, 2 comunidades

$ Message Passing: agregación ponderada de vecinos con self-loops

$ 88.24% accuracy global (30/34 nodos) — errores solo en nodos fronterizos entre comunidades

$ t-SNE de embeddings 32D muestra separación de comunidades en el espacio latente

$ Normalización simétrica D⁻¹ᐟ²·A·D⁻¹ᐟ² con self-loops para estabilidad numérica

$ 7 visualizaciones educativas: grafo, curvas, matriz de confusión, t-SNE, message passing

$ Implementación minimalista: 1,186 parámetros, entrenamiento completo en CPU en segundos

# Galería

Terminal del proyecto
GNN — Graph Neural Networks - Terminal del proyecto
Grafo original — comunidades ground-truth
GNN — Graph Neural Networks - Grafo original — comunidades ground-truth
Curvas de entrenamiento
GNN — Graph Neural Networks - Curvas de entrenamiento
Predicciones vs ground truth
GNN — Graph Neural Networks - Predicciones vs ground truth
Errores de clasificación
GNN — Graph Neural Networks - Errores de clasificación
t-SNE de embeddings (capa oculta GCN)
GNN — Graph Neural Networks - t-SNE de embeddings (capa oculta GCN)
Matriz de confusión
GNN — Graph Neural Networks - Matriz de confusión
Message Passing — nodo 0 agrega vecinos
GNN — Graph Neural Networks - Message Passing — nodo 0 agrega vecinos

# Tecnologías utilizadas

PyTorch NumPy Matplotlib Seaborn scikit-learn NetworkX