Skip to content

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ PARLEYS AI & ALOR 2026 ⚡

Motor Inteligente de Pronósticos Deportivos y Análisis de Apuestas (+EV)

Python FastAPI React Vite Scikit-Learn XGBoost Deploy Live Demo

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/


🖥️ Demostración en Vivo & Vista Previa

PARLEYS ALOR 2026 Preview

🌐 Accede a la aplicación en producción: https://pronosticos-ia.netlify.app/


📋 Contenido


🌟 Aspectos Destacados

  • 🧠 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.

🤖 Arquitectura del Meta-Ensemble de IA

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]
Loading

Modelos Integrados y Pesos:

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%

⚽🏈 Ligas Soportadas y Datos en Vivo (ESPN API & TheSportsDB API)

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

🏈 NFL Pretemporada — Integración de Datos Históricos Reales

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.


🛠️ Tecnologías Utilizadas

Backend (Python / FastAPI)

  • 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.

Frontend (React / Vite)

  • 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.

📂 Estructura del Proyecto

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

🚀 Instalación y Ejecución Local

1. Clonar el repositorio

git clone https://github.com/Jalorh85/Parleys.git
cd Parleys

2. Iniciar Backend y Frontend automáticamente (Windows)

Ejecuta el script incluido en la raíz:

run_app.bat

3. Iniciar manualmente (Opción Alternativa)

Backend:

cd backend
py -3 -m venv .venv
# En Windows activar: .venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --port 8000 --reload

Frontend:

cd frontend
npm install
npm run dev

🌐 Abrir en el navegador: http://localhost:5173


🌐 Despliegue en la Nube (Vercel, Netlify, Railway)

El proyecto está 100% preparado con archivos de configuración serverless independientes:

🔺 Despliegue en Vercel

  • Backend: Conecta tu repo en Vercel y establece el Root Directory en backend. Utilizará backend/vercel.json automáticamente.
  • Frontend: Crea un proyecto en Vercel estableciendo el Root Directory en frontend.

🌐 Despliegue en Netlify

  • Backend: Importa el proyecto en Netlify configurando el Base Directory en backend. Procesará backend/netlify.toml y backend/netlify/functions/api.py.
  • Frontend: El archivo raíz netlify.toml compilará automáticamente la app desde la carpeta frontend.

🚂 Despliegue en Railway

  • El directorio backend incluye Procfile y railway.toml para despliegue en contenedor Docker continuo.

📡 API Endpoints

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

👤 Autor

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.


Construido con ❤️ usando FastAPI, React 19, ESPN API, TheSportsDB API y Machine Learning.

Releases

Packages

Contributors

Languages