Spaces:
Running
Running
Commit History
-
Limpiar datos rotos de ejes y tracking (outliers falsos tipo Osasuna)
Dos datos rotos hacían que un equipo con muestra chica apareciera como outlier extremo en los gráficos, y de paso aplastaran al resto: - ejes_data: el valor de un eje se calcula sobre n_alto (secuencias). Con muy pocas, explota (|g| hasta 70; visto elaboración=41.7 contra ±0.1 del resto de su liga) o queda acotado pero sin sentido (n_alto=0). Además infla el desvío de la liga y aplasta el z de los demás contra el origen. Se anulan esas celdas (n_alto<3 o |g|>3) y se recomputa el z dentro de (liga, temporada, lado, eje). El z guardado ya era el z-score de g dentro de la liga (corr 0.997), así que recomputarlo es consistente. - team_vars: las métricas de tracking (distancia al centroide, ancho robusto, ancho por posesión, velocidad de progresión, y sus _rival) vienen en 0 cuando no hay datos ópticos. Un 0 es imposible en un partido jugado, así que 0 → NaN. No se tocan conteos ni xG: ahí 0 es válido. La limpieza vive en la librería compartida, así la usan tanto el Spa…c4b9973
-
Previo: fallback a temporada anterior para equipos con muestra chica
Si un equipo jugó ≤2 partidos en la temporada pedida (típico de un recién ascendido: Racing en La Liga 26-27), sus datos salen de su temporada REAL anterior (Segunda 25-26), en las 3 partes del previo: - táctico (zonas/presión): filas de zone-features de la temp. anterior reetiquetadas a la liga/temp mostrada. - ejes previo: la norma del equipo sale de la temp. anterior; predictor y escala z siguen siendo los de la liga mostrada (mismas unidades de eje). - predicción del modelo (NN + LightGBM de cruce): idem, reetiquetando el historial de modelado / features. Resolver en web_meta.effective_league_season (usa matches_catalog, cuenta partidos jugados, cae a la temp. más reciente < actual, cualquier liga). Umbral 3 partidos. Se aplica solo a previos (no a post-partido). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>5f7844b -
Reportes de partido para cualquier liga/temporada en curso
- runner: resolver team IDs desde el preprocessed cuando el dataset del modelo no cubre la temporada (p.ej. La Liga 26-27, donde juega Racing). - pre_match: si falta historial de modelado (temporada en curso) con NN habilitado, degradar la cancha de predicción a placeholder en vez de romper el previo entero — el previo táctico igual se genera. - ejes previo: normas separadas por localía (local vs visitante). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>e149eb4
-
Ejes: redefinir verticalidad y robo alto, fusionar rotura+profundidad (7 ejes)
- Verticalidad: + indice_verticalidad (recta inicio→fin ÷ camino real) y pct_prog_rival (% pases completados ≥10m hacia el arco desde campo rival); − pct_largos. - Robo alto: + PPDA (pases rival en su 60% ÷ acciones defensivas del equipo en zona alta), con z invertido (menos PPDA = más presión = más eje). - Fusión rotura_lineas + profundidad_espalda → "Rotura de líneas / profundidad". - Conducciones progresivas descartadas (sin evento de carry en los datos). - Artefactos regenerados para las 28 ligas (pipeline + build_artifacts) y labels/UI actualizados. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>4e8b295
-
Pool multi-liga + equipos extra + escala de z (secciones 4 y 5)
- Pool: chips de ligas y de equipos sueltos de cualquier liga (ej: Racing y Málaga vs Premier + Serie A); el selector de Liga queda ignorado con pool activo - Escala del z elegible: cada equipo vs su liga / vs todas las ligas / vs la selección (sección 5 suma 'valor absoluto', su default) - Artefacto de ejes con mix_global (variables re-normalizadas globalmente) para las escalas entre ligas; /api/ejes/profiles?league=__all__ (636 equipos) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1184e04
-
Nombres legibles para las variables del reporte de ejes
Mapeo de las 47 variables de secuencia a nombres identificables (estilo diccionario_variables.xlsx; hover muestra el nombre técnico de la columna). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>bca546c -
Ejes de ataque: reportes pre/post partido + scatter equipos + artefactos 28 ligas
- reports/ejes.py: ejes_pre (predicción por eje vs norma, gen propia × concesión rival) y ejes_post (firma del partido: ejes vs norma, esperado-vs-real del modelo, variables que más se movieron) - ejes_data.py: acceso a artefactos (dev dir → bundle vendor/data/ejes → Azure) - API /api/ejes/{options,profiles} + sección 5 'Ejes ataque/defensa' (scatter SVG interactivo) en Equipos y variables - artefactos bundleados: 28 ligas 25-26, modelo global AUC 0.98, validación predictor: acierto direccional 58% (63.8% en flechas grandes) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>a798829