Plataforma Full-Stack de Machine Learning Meta-Ensemble para la predicción de eventos deportivos (Liga MX, Leagues Cup 2026, NBA, MLB, WNBA, KBO, NFL Pretemporada), integración de cuotas en tiempo real vía The Odds API, visualización interactiva con Recharts y optimización de apuestas combinadas (Parleys) con detección de valor +EV en tiempo real.
🚀 Demostración en vivo disponible en: https://pronosticos-ia.netlify.app/
🌐 Accede a la aplicación en producción: https://pronosticos-ia.netlify.app/
- 🌟 Aspectos Destacados
- 🤖 Arquitectura del Meta-Ensemble de IA
- ⚽ Ligas Soportadas y Datos en Vivo (ESPN API & TheSportsDB API)
- 🛠️ Tecnologías Utilizadas
- 📂 Estructura del Proyecto
- 🚀 Instalación y Ejecución Local
- 🌐 Despliegue en la Nube (Vercel, Netlify, Railway)
- 📡 API Endpoints
- 👤 Autor
- 🧠 Meta-Ensemble Ponderado: Combina 5 modelos de IA avanzados para maximizar la precisión de predicción en probabilidad de victoria, hándicap, totales Over/Under y córners.
- 💰 Integración con The Odds API: Compara las probabilidades predichas por la IA contra cuotas reales del mercado deportivo en EE.UU. (sportsbooks en tiempo real via the-odds-api.com v4) para encontrar verdadero valor esperado (+EV).
- 📊 Gráficas Interactivas con Recharts: Visualización avanzada de datos mediante gráficos de área, barras, líneas y radar para la evolución de bankroll, precisión real de predicciones y comparación multidimensional entre modelos.
- 📈 Detección de Apuestas con Valor (+EV) & Reconciliación Real: Algoritmo automatizado que calcula el Expected Value y registra predicciones para reconciliarlas automáticamente al día siguiente contra resultados reales de ESPN.
- 🌐 Integración Multifuente (ESPN API + TheSportsDB API + The Odds API): Descarga partidos en vivo, resultados históricos, horarios UTC, cuotas reales de mercado y logotipos oficiales de equipos para todas las ligas.
- 🇲🇽 Soporte Especializado para Fútbol (Liga MX y Leagues Cup 2026): Incluye modelo dedicado de regresión para predicción de Córners Totales en partidos de fútbol.
- 🏈 NFL Pretemporada con Datos Históricos Reales: Integración completa de la Pretemporada NFL descargando datos históricos de partidos jugados desde ESPN API (temporadas 2021-2025) y logos oficiales de equipos vía TheSportsDB API.
- 🧮 Calculadora e Creador de Parleys: Genera apuestas combinadas personalizadas calculando cuotas compuestas, rendimiento estimado y evaluación de riesgo.
- 📊 Backtester & Batalla de Modelos: Módulo visual e interactivo para comparar el rendimiento histórico y métricas de cada modelo individual (SVM vs Red Neuronal vs Random Forest vs XGBoost vs LightGBM).
- 🎨 Diseño Moderno & Glassmorphism: Interfaz futurista optimizada en modo oscuro con respuestas dinámicas de estado e iconos interactivos.
El motor predictivo no depende de una sola métrica, sino de una arquitectura de Meta-Ensemble Ponderado:
graph TD
A[Datos del Partido + ESPN API & TheSportsDB] --> B[Feature Engineering Engine]
B --> C[SVM Classifier & Regressor]
B --> D[Multi-Layer Perceptron Neural Net]
B --> E[Random Forest Ensemble]
B --> F[XGBoost Gradient Boosting]
B --> G[LightGBM Gradient Boosting]
C -->|Peso: 15%| H[Meta-Ensemble Engine]
D -->|Peso: 20%| H
E -->|Peso: 15%| H
F -->|Peso: 25%| H
G -->|Peso: 25%| H
H --> I[Predicción Final: Ganador, Margin, Total & Córners]
H --> J[Detección de Valor +EV]
| Modelo | Algoritmo | Propósito Principal | Peso Ensemble |
|---|---|---|---|
| XGBoost | Extreme Gradient Boosting | Margen y Spread | 25% |
| LightGBM | Light Gradient Boosting Machine | Totales Over/Under | 25% |
| Neural Network | Multi-Layer Perceptron (MLP) | Probabilidad de victoria | 20% |
| SVM | Support Vector Machines (Kernel RBF) | Clasificación de límites rígidos | 15% |
| Random Forest | Bagging Ensemble Trees & Corners Regressor | Control de varianza y Córners | 15% |
El sistema procesa información en tiempo real combinando las APIs de ESPN y TheSportsDB:
| Liga | Deporte | Cobertura / APIs | Targets Predichos |
|---|---|---|---|
🇲🇽 Liga MX (MX) |
Fútbol | ESPN API + TheSportsDB | Ganador, Margen, Goles Totales, Córners Totales |
🏆 Leagues Cup 2026 (LCUP) |
Fútbol | ESPN API + TheSportsDB | Ganador, Margen, Goles Totales |
⚾ MLB (MLB) |
Béisbol | ESPN API + TheSportsDB (30 Equipos) | Ganador, Runline, Carreras Totales, ERA Pitcher |
⛹️♀️ WNBA (WNBA) |
Baloncesto | ESPN API (Incluye expansión 2026) | Ganador, Hándicap/Spread, Puntos Totales |
⚾ KBO (KBO) |
Béisbol | TheSportsDB + Fallback Simulado | Ganador, Runline, Carreras Totales |
🏈 NFL Pretemporada (NFL) |
Fútbol Americano | ESPN API (histórico real 2021–2025) + TheSportsDB (logos) | Ganador, Spread/Hándicap, Puntos Totales |
La liga NFL usa un pipeline de datos históricos real basado en ESPN API y TheSportsDB:
ESPN API (football/nfl/scoreboard)
└── seasontype=1 → Pretemporada (agosto)
└── seasontype=2 → Temporada Regular (sep-ene)
└── seasontype=3 → Playoffs / Super Bowl
| Fuente | Uso |
|---|---|
| ESPN Scoreboard API | Partidos en vivo y próximos (pretemporada y regular). Consulta automática por dates sin parámetro extra de seasontype — ESPN resuelve la temporada activa. |
| ESPN Historical API | Resultados terminados de temporadas 2021–2025 (preseason + regular) para entrenar el Meta-Ensemble con datos reales de puntos y márgenes NFL. |
| TheSportsDB API | Logos oficiales de los 32 equipos NFL (badge transparent PNG), badge de la liga y mapeo de nombres de equipos entre fuentes. |
Equipos cubiertos (32 franquicias): Arizona Cardinals, Atlanta Falcons, Baltimore Ravens, Buffalo Bills, Carolina Panthers, Chicago Bears, Cincinnati Bengals, Cleveland Browns, Dallas Cowboys, Denver Broncos, Detroit Lions, Green Bay Packers, Houston Texans, Indianapolis Colts, Jacksonville Jaguars, Kansas City Chiefs, Las Vegas Raiders, Los Angeles Chargers, Los Angeles Rams, Miami Dolphins, Minnesota Vikings, New England Patriots, New Orleans Saints, New York Giants, New York Jets, Philadelphia Eagles, Pittsburgh Steelers, San Francisco 49ers, Seattle Seahawks, Tampa Bay Buccaneers, Tennessee Titans, Washington Commanders.
- FastAPI 0.111 — Framework web asíncrono de alto rendimiento.
- Scikit-Learn 1.5 — Preprocesamiento, escalado y modelos SVM / Random Forest / MLP.
- Pandas & NumPy — Manipulación matricial y feature engineering de vectores deportivos.
- HTTPX — Cliente HTTP asíncrono para consumo de ESPN API, TheSportsDB API y The Odds API.
- APScheduler — Programador de tareas en segundo plano para re-entrenamiento diario y reconciliación automática de predicciones.
- Mangum — Adaptador ASGI a AWS Lambda / Netlify Serverless Functions.
- Uvicorn — Servidor ASGI ultrarrápido para entorno local.
- React 19 — Interfaz declarativa basada en componentes funcionales y Hooks.
- Vite 6 — Empaquetador y entorno de desarrollo ultra veloz.
- Recharts — Librería de gráficos interactivos y responsivos (Area, Bar, Line, Radar Charts).
- Lucide React — Colección de iconos vectoriales modernos.
- Vanilla CSS3 — Sistema de diseño personalizado con Glassmorphism y temas Neón.
parleys/
├── 📄 README.md # Documentación principal del proyecto
├── 📄 netlify.toml # Configuración de despliegue Frontend en Netlify
├── 📄 deploy.bat # Script automatizado de despliegue local/cloud
├── 📄 run_app.bat # Lanzador rápido de servidores local (Backend + Frontend)
│
├── 📂 backend/ # Core del Servidor API y Motor ML
│ ├── 📄 requirements.txt # Dependencias de Python para Serverless/Cloud
│ ├── 📄 vercel.json # Configuración Serverless para Vercel (@vercel/python)
│ ├── 📄 netlify.toml # Configuración Serverless para Netlify Functions
│ ├── 📂 api/
│ │ └── 📄 index.py # Punto de entrada Vercel Serverless Function
│ ├── 📂 netlify/
│ │ └── 📂 functions/
│ │ └── 📄 api.py # Handler Mangum para Netlify Functions
│ └── 📂 app/
│ ├── 📄 main.py # Aplicación principal FastAPI, Endpoints & Scheduler
│ └── 📂 ml/
│ ├── 📄 odds_api.py # Conector con The Odds API (cuotas reales de sportsbooks)
│ ├── 📄 prediction_log.py # Observabilidad, registro y reconciliación de acierto/bankroll
│ ├── 📄 sports_api.py # Conector ESPN API + TheSportsDB API + mapeo de logos
│ ├── 📄 kbo_thesportsdb.py # Módulo especializado para datos TheSportsDB
│ ├── 📄 ensemble_model.py # Meta-Ensemble ML (XGB, LGBM, SVM, NN, RF)
│ ├── 📄 feature_engineering.py # Extracción de vectores de características
│ ├── 📄 data_generator.py # Perfiles de equipos y fallback simulado
│ ├── 📄 backtester.py # Motor de simulación histórica
│ └── 📄 svm_model.py # Sub-modelo SVM
│
└── 📂 frontend/ # Interfaz de Usuario React + Vite
├── 📄 package.json # Dependencias del Frontend
├── 📄 vite.config.js # Configuración del empaquetador Vite
├── 📄 vercel.json # Configuración SPA Routing para Vercel
├── 📄 .env.production # URL base para conectar con el backend en la nube
└── 📂 src/
├── 📄 App.jsx # Contenedor principal y enrutado de pestañas
├── 📄 index.css # Tokens de diseño, gradientes y animaciones
├── 📂 components/
│ ├── 📄 Header.jsx # Selector de liga (MX, LCUP, MLB, WNBA, KBO, NFL)
│ ├── 📄 DailyFixtures.jsx # Tarjetas de partidos en vivo y cuotas +EV reales
│ ├── 📄 AccuracyWidget.jsx # Gráfica interactiva de precisión real reconciliada (LineChart)
│ ├── 📄 BankrollChart.jsx # Gráfica interactiva de evolución de Bankroll (AreaChart)
│ ├── 📄 BankrollWidget.jsx # Sparkline y resumen de rendimiento financiero acumulado
│ ├── 📄 TeamIcon.jsx # Renderizador inteligente de logos ESPN / TheSportsDB
│ ├── 📄 MatchPredictor.jsx # Simulador de partidos 1v1 personalizado
│ ├── 📄 ParlayBuilder.jsx # Creador y calculadora de apuestas combinadas
│ ├── 📄 ModelComparison.jsx # Comparador visual e interactivo de modelos (Bar & Radar Charts)
│ ├── 📄 BacktestSimulator.jsx # Rendimiento histórico y simulación ROI (AreaChart)
│ └── 📄 ModelTrainerUI.jsx # Interfaz para re-entrenar modelos
└── 📂 services/
└── 📄 api.js # Cliente HTTP para comunicación con FastAPI
git clone https://github.com/Jalorh85/Parleys.git
cd ParleysEjecuta el script incluido en la raíz:
run_app.batcd backend
py -3 -m venv .venv
# En Windows activar: .venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --port 8000 --reloadcd frontend
npm install
npm run dev🌐 Abrir en el navegador:
http://localhost:5173
El proyecto está 100% preparado con archivos de configuración serverless independientes:
- Backend: Conecta tu repo en Vercel y establece el Root Directory en
backend. Utilizarábackend/vercel.jsonautomáticamente. - Frontend: Crea un proyecto en Vercel estableciendo el Root Directory en
frontend.
- Backend: Importa el proyecto en Netlify configurando el Base Directory en
backend. Procesarábackend/netlify.tomlybackend/netlify/functions/api.py. - Frontend: El archivo raíz
netlify.tomlcompilará automáticamente la app desde la carpetafrontend.
- El directorio
backendincluyeProcfileyrailway.tomlpara despliegue en contenedor Docker continuo.
| Método | Endpoint | Descripción |
|---|---|---|
GET |
/api/leagues |
Obtiene la lista de ligas soportadas (MX, LCUP, MLB, WNBA, KBO, NFL) |
GET |
/api/fixtures?league=MX&date=YYYY-MM-DD |
Devuelve partidos del día con predicciones del Meta-Ensemble y cuotas reales (The Odds API / ESPN) |
GET |
/api/fixtures?league=NFL&date=YYYY-MM-DD |
Partidos de Pretemporada NFL con predicciones de spread y total (datos reales ESPN) |
POST |
/api/predict |
Realiza una predicción personalizada 1v1 entre dos equipos |
GET |
/api/accuracy |
Obtiene resumen de precisión real reconciliada contra marcadores oficiales ESPN por liga y día |
GET |
/api/bankroll |
Simulación interactiva de bankroll y P&L acumulado basado en predicciones reconciliadas |
GET |
/api/backtest?league=NFL |
Simulación histórica de rendimiento en backtest con datos reales de pretemporada |
POST |
/api/train?league=NFL |
Re-entrena el Meta-Ensemble NFL con datos históricos reales de ESPN + TheSportsDB |
Desarrollado con pasión por los datos y el deporte:
MSC. Juan Antonio Alor Hernández
Especialista en IA & Arquitectura de Software
© 2026 Todos los derechos reservados.
