Spaces:
Running
Las features de train, listadas de verdad en cada modelo
Browse filesLos cuadros de "Features" decían solo "self_* (forma del equipo)". Ahora traen
la lista completa, leída de los artefactos reales:
- cruce: las 328 de matchup_feat_cols.json, separadas por prefijo — self_ (53),
opp_ (157), selfH_ (52) y selfA_ (52) que son el split local/visitante, y 14
de contexto (elo, is_*, form*)
- ptiro: las 72 de datasets_variables.json
- los dos GNN: leídas del bundle .pt (global_bundle.global_feature_columns)
De paso, los .pt traen el summary con los tamaños reales del split, que estaban
sin documentar: ataque 8.506/962/1.108 (validación desde el 16-nov-2025, 5
semillas) y peligro 7.395/842/981 (desde el 17-nov-2025).
CORRECCIÓN: pv_distribution_gnn NO poda features — usa las 1.069 globales,
mientras que el de ataque se queda con 200. Estaba documentado como si
compartieran el criterio. Con el mismo dataset (~10.900 filas) eso le deja una
proporción features/filas mucho más exigente; queda anotado como candidato a
aplicarle la misma poda y medir.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- docs/diccionarios/_referencia_db.json +0 -0
- docs/diccionarios/_reportes_categorias.json +1696 -37
- docs/diccionarios/modelos/attack_matchup_gnn.md +3 -1
- docs/diccionarios/modelos/pv_distribution_gnn.md +10 -2
- scripts/build_team_stats_agg.py +17 -5
- scripts/build_var_dict.py +35 -2
- scripts/feature_groups.json +726 -0
- scripts/gen_diccionario_variables.py +279 -0
- scripts/push_data_to_hf.py +42 -0
- scripts/var_labels_extra.json +97 -0
- src/racing_reports/web/templates/referencia.html +0 -0
|
The diff for this file is too large to render.
See raw diff
|
|
|
|
@@ -113,18 +113,6 @@
|
|
| 113 |
"Target": [
|
| 114 |
"target_shot (la jugada termina en tiro)"
|
| 115 |
],
|
| 116 |
-
"Features - métricas de secuencia (65)": [
|
| 117 |
-
"todas las numéricas de sequences.parquet"
|
| 118 |
-
],
|
| 119 |
-
"Features - ejes z global (7)": [
|
| 120 |
-
"ejeg_verticalidad",
|
| 121 |
-
"ejeg_elaboracion",
|
| 122 |
-
"ejeg_individual",
|
| 123 |
-
"ejeg_rotura_profundidad",
|
| 124 |
-
"ejeg_amplitud_centro",
|
| 125 |
-
"ejeg_robo_alto",
|
| 126 |
-
"ejeg_aereo_segunda"
|
| 127 |
-
],
|
| 128 |
"Excluidas - metadatos": [
|
| 129 |
"liga",
|
| 130 |
"temporada",
|
|
@@ -145,6 +133,80 @@
|
|
| 145 |
],
|
| 146 |
"Test": [
|
| 147 |
"predicción out-of-fold (AUC ~ 0.980)"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 148 |
]
|
| 149 |
},
|
| 150 |
"modelos/cruce": {
|
|
@@ -207,20 +269,352 @@
|
|
| 207 |
"xt_lane_Centro",
|
| 208 |
"xt_lane_Der"
|
| 209 |
],
|
| 210 |
-
"Features - equipo": [
|
| 211 |
-
"self_* (forma a-la-fecha del equipo)"
|
| 212 |
-
],
|
| 213 |
-
"Features - rival": [
|
| 214 |
-
"opp_* (forma a-la-fecha del rival)"
|
| 215 |
-
],
|
| 216 |
"Train": [
|
| 217 |
-
"80% aleatorio",
|
| 218 |
"12% del train como eval_set",
|
| 219 |
"early stopping paciencia 50"
|
| 220 |
],
|
| 221 |
"Test": [
|
| 222 |
"20% aleatorio",
|
| 223 |
"MAE vs baseline (self_* normalizada)"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 224 |
]
|
| 225 |
},
|
| 226 |
"analisis/choque-de-estilos": {
|
|
@@ -351,15 +745,6 @@
|
|
| 351 |
"Cut_Back__Der_ (int der área)",
|
| 352 |
"Cross__Der_ (ext der área)"
|
| 353 |
],
|
| 354 |
-
"Features - globales": [
|
| 355 |
-
"200 columnas podadas desde ~950 candidatas (mf__* y rolling)",
|
| 356 |
-
"filtro 1: descarta >60% NaN (NAN_FRAC_MAX=0.60)",
|
| 357 |
-
"filtro 2: descarta varianza <=1e-9 (VAR_EPS)",
|
| 358 |
-
"filtro 3: descarta |corr|>0.97 con una ya elegida (CORR_PRUNE_THRESHOLD)",
|
| 359 |
-
"filtro 4: top 200 por señal (DEFAULT_TOP_K)",
|
| 360 |
-
"señal = max |corr| de la feature contra los 10 targets",
|
| 361 |
-
"TODO calculado solo sobre filas de train (evita fuga al test)"
|
| 362 |
-
],
|
| 363 |
"Features - de nodo": [
|
| 364 |
"ataque y PV propios por zona",
|
| 365 |
"concedidos por zona",
|
|
@@ -371,16 +756,218 @@
|
|
| 371 |
],
|
| 372 |
"Train": [
|
| 373 |
"split TEMPORAL",
|
| 374 |
-
"
|
| 375 |
-
"
|
| 376 |
-
"weight decay + dropout",
|
| 377 |
-
"ensemble de semillas"
|
| 378 |
],
|
| 379 |
"Test": [
|
| 380 |
-
"
|
| 381 |
-
"MAE vs
|
| 382 |
"intervalos bootstrap",
|
| 383 |
"mejora ~3.6%"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 384 |
]
|
| 385 |
},
|
| 386 |
"modelos/pv_distribution_gnn": {
|
|
@@ -417,13 +1004,1085 @@
|
|
| 417 |
],
|
| 418 |
"Train": [
|
| 419 |
"split TEMPORAL",
|
| 420 |
-
"
|
| 421 |
-
"
|
|
|
|
| 422 |
"RANDOM_SEED=42"
|
| 423 |
],
|
| 424 |
"Test": [
|
| 425 |
-
"
|
| 426 |
"MAE contra los dos baselines"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 427 |
]
|
| 428 |
}
|
| 429 |
}
|
|
|
|
| 113 |
"Target": [
|
| 114 |
"target_shot (la jugada termina en tiro)"
|
| 115 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 116 |
"Excluidas - metadatos": [
|
| 117 |
"liga",
|
| 118 |
"temporada",
|
|
|
|
| 133 |
],
|
| 134 |
"Test": [
|
| 135 |
"predicción out-of-fold (AUC ~ 0.980)"
|
| 136 |
+
],
|
| 137 |
+
"Features (72)": [
|
| 138 |
+
"start_x",
|
| 139 |
+
"max_x",
|
| 140 |
+
"n_events",
|
| 141 |
+
"n_passes",
|
| 142 |
+
"duration_s",
|
| 143 |
+
"ball_distance",
|
| 144 |
+
"pct_largos",
|
| 145 |
+
"pct_medios",
|
| 146 |
+
"pct_cortos",
|
| 147 |
+
"ratio_largo_corto",
|
| 148 |
+
"ratio_medio_corto",
|
| 149 |
+
"verticalidad_media",
|
| 150 |
+
"pct_verticales",
|
| 151 |
+
"pct_afuera",
|
| 152 |
+
"pct_adentro",
|
| 153 |
+
"pct_through",
|
| 154 |
+
"pct_headpass",
|
| 155 |
+
"pct_layoff",
|
| 156 |
+
"pct_launch",
|
| 157 |
+
"pct_switch",
|
| 158 |
+
"n_centros",
|
| 159 |
+
"cross_pvadded_max",
|
| 160 |
+
"press_media",
|
| 161 |
+
"press_max",
|
| 162 |
+
"press_own",
|
| 163 |
+
"press_mid",
|
| 164 |
+
"press_final",
|
| 165 |
+
"fast_break",
|
| 166 |
+
"hold_mean",
|
| 167 |
+
"hold_max",
|
| 168 |
+
"hold_min",
|
| 169 |
+
"def_h",
|
| 170 |
+
"def_w",
|
| 171 |
+
"def_l",
|
| 172 |
+
"atk_w",
|
| 173 |
+
"atk_l",
|
| 174 |
+
"atk_h",
|
| 175 |
+
"n_involved",
|
| 176 |
+
"dang_runs",
|
| 177 |
+
"line_breaks",
|
| 178 |
+
"pass_options_mean",
|
| 179 |
+
"opt_quality_mean",
|
| 180 |
+
"n_takeons",
|
| 181 |
+
"takeons_ok",
|
| 182 |
+
"dribbles_last_third",
|
| 183 |
+
"dribbles_box",
|
| 184 |
+
"paredes",
|
| 185 |
+
"broke_last_line",
|
| 186 |
+
"broke_second_last",
|
| 187 |
+
"passes_behind_line",
|
| 188 |
+
"behind_line_ok",
|
| 189 |
+
"pelotazos_espalda",
|
| 190 |
+
"deep_completions",
|
| 191 |
+
"starts_from_dispossess",
|
| 192 |
+
"cross_inswinger",
|
| 193 |
+
"cross_outswinger",
|
| 194 |
+
"cross_floatedcross",
|
| 195 |
+
"cross_drivencross",
|
| 196 |
+
"cross_pullback",
|
| 197 |
+
"prog_x",
|
| 198 |
+
"transition_speed",
|
| 199 |
+
"tempo",
|
| 200 |
+
"indice_verticalidad",
|
| 201 |
+
"pct_prog_rival",
|
| 202 |
+
"ppda",
|
| 203 |
+
"ejeg_verticalidad",
|
| 204 |
+
"ejeg_elaboracion",
|
| 205 |
+
"ejeg_individual",
|
| 206 |
+
"ejeg_rotura_profundidad",
|
| 207 |
+
"ejeg_amplitud_centro",
|
| 208 |
+
"ejeg_robo_alto",
|
| 209 |
+
"ejeg_aereo_segunda"
|
| 210 |
]
|
| 211 |
},
|
| 212 |
"modelos/cruce": {
|
|
|
|
| 269 |
"xt_lane_Centro",
|
| 270 |
"xt_lane_Der"
|
| 271 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 272 |
"Train": [
|
| 273 |
+
"80% aleatorio (RNG.permutation)",
|
| 274 |
"12% del train como eval_set",
|
| 275 |
"early stopping paciencia 50"
|
| 276 |
],
|
| 277 |
"Test": [
|
| 278 |
"20% aleatorio",
|
| 279 |
"MAE vs baseline (self_* normalizada)"
|
| 280 |
+
],
|
| 281 |
+
"Features - equipo (self_*)": [
|
| 282 |
+
"self_elo",
|
| 283 |
+
"self_def_H",
|
| 284 |
+
"self_def_M",
|
| 285 |
+
"self_def_L",
|
| 286 |
+
"self_atk_Der",
|
| 287 |
+
"self_atk_Centro",
|
| 288 |
+
"self_atk_Izq",
|
| 289 |
+
"self_offxt_H_Der",
|
| 290 |
+
"self_offxt_H_Centro",
|
| 291 |
+
"self_offxt_H_Izq",
|
| 292 |
+
"self_offxt_M_Der",
|
| 293 |
+
"self_offxt_M_Centro",
|
| 294 |
+
"self_offxt_M_Izq",
|
| 295 |
+
"self_offxt_L_Der",
|
| 296 |
+
"self_offxt_L_Centro",
|
| 297 |
+
"self_offxt_L_Izq",
|
| 298 |
+
"self_defxt_H_Der",
|
| 299 |
+
"self_defxt_H_Centro",
|
| 300 |
+
"self_defxt_H_Izq",
|
| 301 |
+
"self_defxt_M_Der",
|
| 302 |
+
"self_defxt_M_Centro",
|
| 303 |
+
"self_defxt_M_Izq",
|
| 304 |
+
"self_defxt_L_Der",
|
| 305 |
+
"self_defxt_L_Centro",
|
| 306 |
+
"self_defxt_L_Izq",
|
| 307 |
+
"self_sh_buildup",
|
| 308 |
+
"self_sh_counter",
|
| 309 |
+
"self_sh_direct",
|
| 310 |
+
"self_sh_setpiece",
|
| 311 |
+
"self_sh_recovery",
|
| 312 |
+
"self_sh_progr",
|
| 313 |
+
"self_cross_pct",
|
| 314 |
+
"self_pct_long",
|
| 315 |
+
"self_pct_short",
|
| 316 |
+
"self_pct_pass_ok",
|
| 317 |
+
"self_n_attacks",
|
| 318 |
+
"self_xt_total",
|
| 319 |
+
"self_xg_total",
|
| 320 |
+
"self_xt_per_attack",
|
| 321 |
+
"self_n_seq",
|
| 322 |
+
"self_n_pass",
|
| 323 |
+
"self_n_shots",
|
| 324 |
+
"self_avg_x",
|
| 325 |
+
"self_avg_y",
|
| 326 |
+
"self_share_opp_half",
|
| 327 |
+
"self_recovery_height",
|
| 328 |
+
"self_n_progr",
|
| 329 |
+
"self_goals_for",
|
| 330 |
+
"self_goals_against",
|
| 331 |
+
"self_win",
|
| 332 |
+
"self_xt_lane_Der",
|
| 333 |
+
"self_xt_lane_Centro",
|
| 334 |
+
"self_xt_lane_Izq"
|
| 335 |
+
],
|
| 336 |
+
"Features - rival (opp_*)": [
|
| 337 |
+
"opp_self_elo",
|
| 338 |
+
"opp_self_def_H",
|
| 339 |
+
"opp_self_def_M",
|
| 340 |
+
"opp_self_def_L",
|
| 341 |
+
"opp_self_atk_Der",
|
| 342 |
+
"opp_self_atk_Centro",
|
| 343 |
+
"opp_self_atk_Izq",
|
| 344 |
+
"opp_self_offxt_H_Der",
|
| 345 |
+
"opp_self_offxt_H_Centro",
|
| 346 |
+
"opp_self_offxt_H_Izq",
|
| 347 |
+
"opp_self_offxt_M_Der",
|
| 348 |
+
"opp_self_offxt_M_Centro",
|
| 349 |
+
"opp_self_offxt_M_Izq",
|
| 350 |
+
"opp_self_offxt_L_Der",
|
| 351 |
+
"opp_self_offxt_L_Centro",
|
| 352 |
+
"opp_self_offxt_L_Izq",
|
| 353 |
+
"opp_self_defxt_H_Der",
|
| 354 |
+
"opp_self_defxt_H_Centro",
|
| 355 |
+
"opp_self_defxt_H_Izq",
|
| 356 |
+
"opp_self_defxt_M_Der",
|
| 357 |
+
"opp_self_defxt_M_Centro",
|
| 358 |
+
"opp_self_defxt_M_Izq",
|
| 359 |
+
"opp_self_defxt_L_Der",
|
| 360 |
+
"opp_self_defxt_L_Centro",
|
| 361 |
+
"opp_self_defxt_L_Izq",
|
| 362 |
+
"opp_self_sh_buildup",
|
| 363 |
+
"opp_self_sh_counter",
|
| 364 |
+
"opp_self_sh_direct",
|
| 365 |
+
"opp_self_sh_setpiece",
|
| 366 |
+
"opp_self_sh_recovery",
|
| 367 |
+
"opp_self_sh_progr",
|
| 368 |
+
"opp_self_cross_pct",
|
| 369 |
+
"opp_self_pct_long",
|
| 370 |
+
"opp_self_pct_short",
|
| 371 |
+
"opp_self_pct_pass_ok",
|
| 372 |
+
"opp_self_n_attacks",
|
| 373 |
+
"opp_self_xt_total",
|
| 374 |
+
"opp_self_xg_total",
|
| 375 |
+
"opp_self_xt_per_attack",
|
| 376 |
+
"opp_self_n_seq",
|
| 377 |
+
"opp_self_n_pass",
|
| 378 |
+
"opp_self_n_shots",
|
| 379 |
+
"opp_self_avg_x",
|
| 380 |
+
"opp_self_avg_y",
|
| 381 |
+
"opp_self_share_opp_half",
|
| 382 |
+
"opp_self_recovery_height",
|
| 383 |
+
"opp_self_n_progr",
|
| 384 |
+
"opp_self_goals_for",
|
| 385 |
+
"opp_self_goals_against",
|
| 386 |
+
"opp_self_win",
|
| 387 |
+
"opp_self_xt_lane_Der",
|
| 388 |
+
"opp_self_xt_lane_Centro",
|
| 389 |
+
"opp_self_xt_lane_Izq",
|
| 390 |
+
"opp_selfH_def_H",
|
| 391 |
+
"opp_selfH_def_M",
|
| 392 |
+
"opp_selfH_def_L",
|
| 393 |
+
"opp_selfH_atk_Der",
|
| 394 |
+
"opp_selfH_atk_Centro",
|
| 395 |
+
"opp_selfH_atk_Izq",
|
| 396 |
+
"opp_selfH_offxt_H_Der",
|
| 397 |
+
"opp_selfH_offxt_H_Centro",
|
| 398 |
+
"opp_selfH_offxt_H_Izq",
|
| 399 |
+
"opp_selfH_offxt_M_Der",
|
| 400 |
+
"opp_selfH_offxt_M_Centro",
|
| 401 |
+
"opp_selfH_offxt_M_Izq",
|
| 402 |
+
"opp_selfH_offxt_L_Der",
|
| 403 |
+
"opp_selfH_offxt_L_Centro",
|
| 404 |
+
"opp_selfH_offxt_L_Izq",
|
| 405 |
+
"opp_selfH_defxt_H_Der",
|
| 406 |
+
"opp_selfH_defxt_H_Centro",
|
| 407 |
+
"opp_selfH_defxt_H_Izq",
|
| 408 |
+
"opp_selfH_defxt_M_Der",
|
| 409 |
+
"opp_selfH_defxt_M_Centro",
|
| 410 |
+
"opp_selfH_defxt_M_Izq",
|
| 411 |
+
"opp_selfH_defxt_L_Der",
|
| 412 |
+
"opp_selfH_defxt_L_Centro",
|
| 413 |
+
"opp_selfH_defxt_L_Izq",
|
| 414 |
+
"opp_selfH_sh_buildup",
|
| 415 |
+
"opp_selfH_sh_counter",
|
| 416 |
+
"opp_selfH_sh_direct",
|
| 417 |
+
"opp_selfH_sh_setpiece",
|
| 418 |
+
"opp_selfH_sh_recovery",
|
| 419 |
+
"opp_selfH_sh_progr",
|
| 420 |
+
"opp_selfH_cross_pct",
|
| 421 |
+
"opp_selfH_pct_long",
|
| 422 |
+
"opp_selfH_pct_short",
|
| 423 |
+
"opp_selfH_pct_pass_ok",
|
| 424 |
+
"opp_selfH_n_attacks",
|
| 425 |
+
"opp_selfH_xt_total",
|
| 426 |
+
"opp_selfH_xg_total",
|
| 427 |
+
"opp_selfH_xt_per_attack",
|
| 428 |
+
"opp_selfH_n_seq",
|
| 429 |
+
"opp_selfH_n_pass",
|
| 430 |
+
"opp_selfH_n_shots",
|
| 431 |
+
"opp_selfH_avg_x",
|
| 432 |
+
"opp_selfH_avg_y",
|
| 433 |
+
"opp_selfH_share_opp_half",
|
| 434 |
+
"opp_selfH_recovery_height",
|
| 435 |
+
"opp_selfH_n_progr",
|
| 436 |
+
"opp_selfH_goals_for",
|
| 437 |
+
"opp_selfH_goals_against",
|
| 438 |
+
"opp_selfH_win",
|
| 439 |
+
"opp_selfH_xt_lane_Der",
|
| 440 |
+
"opp_selfH_xt_lane_Centro",
|
| 441 |
+
"opp_selfH_xt_lane_Izq",
|
| 442 |
+
"opp_selfA_def_H",
|
| 443 |
+
"opp_selfA_def_M",
|
| 444 |
+
"opp_selfA_def_L",
|
| 445 |
+
"opp_selfA_atk_Der",
|
| 446 |
+
"opp_selfA_atk_Centro",
|
| 447 |
+
"opp_selfA_atk_Izq",
|
| 448 |
+
"opp_selfA_offxt_H_Der",
|
| 449 |
+
"opp_selfA_offxt_H_Centro",
|
| 450 |
+
"opp_selfA_offxt_H_Izq",
|
| 451 |
+
"opp_selfA_offxt_M_Der",
|
| 452 |
+
"opp_selfA_offxt_M_Centro",
|
| 453 |
+
"opp_selfA_offxt_M_Izq",
|
| 454 |
+
"opp_selfA_offxt_L_Der",
|
| 455 |
+
"opp_selfA_offxt_L_Centro",
|
| 456 |
+
"opp_selfA_offxt_L_Izq",
|
| 457 |
+
"opp_selfA_defxt_H_Der",
|
| 458 |
+
"opp_selfA_defxt_H_Centro",
|
| 459 |
+
"opp_selfA_defxt_H_Izq",
|
| 460 |
+
"opp_selfA_defxt_M_Der",
|
| 461 |
+
"opp_selfA_defxt_M_Centro",
|
| 462 |
+
"opp_selfA_defxt_M_Izq",
|
| 463 |
+
"opp_selfA_defxt_L_Der",
|
| 464 |
+
"opp_selfA_defxt_L_Centro",
|
| 465 |
+
"opp_selfA_defxt_L_Izq",
|
| 466 |
+
"opp_selfA_sh_buildup",
|
| 467 |
+
"opp_selfA_sh_counter",
|
| 468 |
+
"opp_selfA_sh_direct",
|
| 469 |
+
"opp_selfA_sh_setpiece",
|
| 470 |
+
"opp_selfA_sh_recovery",
|
| 471 |
+
"opp_selfA_sh_progr",
|
| 472 |
+
"opp_selfA_cross_pct",
|
| 473 |
+
"opp_selfA_pct_long",
|
| 474 |
+
"opp_selfA_pct_short",
|
| 475 |
+
"opp_selfA_pct_pass_ok",
|
| 476 |
+
"opp_selfA_n_attacks",
|
| 477 |
+
"opp_selfA_xt_total",
|
| 478 |
+
"opp_selfA_xg_total",
|
| 479 |
+
"opp_selfA_xt_per_attack",
|
| 480 |
+
"opp_selfA_n_seq",
|
| 481 |
+
"opp_selfA_n_pass",
|
| 482 |
+
"opp_selfA_n_shots",
|
| 483 |
+
"opp_selfA_avg_x",
|
| 484 |
+
"opp_selfA_avg_y",
|
| 485 |
+
"opp_selfA_share_opp_half",
|
| 486 |
+
"opp_selfA_recovery_height",
|
| 487 |
+
"opp_selfA_n_progr",
|
| 488 |
+
"opp_selfA_goals_for",
|
| 489 |
+
"opp_selfA_goals_against",
|
| 490 |
+
"opp_selfA_win",
|
| 491 |
+
"opp_selfA_xt_lane_Der",
|
| 492 |
+
"opp_selfA_xt_lane_Centro",
|
| 493 |
+
"opp_selfA_xt_lane_Izq"
|
| 494 |
+
],
|
| 495 |
+
"Features - equipo de local (selfH_*)": [
|
| 496 |
+
"selfH_def_H",
|
| 497 |
+
"selfH_def_M",
|
| 498 |
+
"selfH_def_L",
|
| 499 |
+
"selfH_atk_Der",
|
| 500 |
+
"selfH_atk_Centro",
|
| 501 |
+
"selfH_atk_Izq",
|
| 502 |
+
"selfH_offxt_H_Der",
|
| 503 |
+
"selfH_offxt_H_Centro",
|
| 504 |
+
"selfH_offxt_H_Izq",
|
| 505 |
+
"selfH_offxt_M_Der",
|
| 506 |
+
"selfH_offxt_M_Centro",
|
| 507 |
+
"selfH_offxt_M_Izq",
|
| 508 |
+
"selfH_offxt_L_Der",
|
| 509 |
+
"selfH_offxt_L_Centro",
|
| 510 |
+
"selfH_offxt_L_Izq",
|
| 511 |
+
"selfH_defxt_H_Der",
|
| 512 |
+
"selfH_defxt_H_Centro",
|
| 513 |
+
"selfH_defxt_H_Izq",
|
| 514 |
+
"selfH_defxt_M_Der",
|
| 515 |
+
"selfH_defxt_M_Centro",
|
| 516 |
+
"selfH_defxt_M_Izq",
|
| 517 |
+
"selfH_defxt_L_Der",
|
| 518 |
+
"selfH_defxt_L_Centro",
|
| 519 |
+
"selfH_defxt_L_Izq",
|
| 520 |
+
"selfH_sh_buildup",
|
| 521 |
+
"selfH_sh_counter",
|
| 522 |
+
"selfH_sh_direct",
|
| 523 |
+
"selfH_sh_setpiece",
|
| 524 |
+
"selfH_sh_recovery",
|
| 525 |
+
"selfH_sh_progr",
|
| 526 |
+
"selfH_cross_pct",
|
| 527 |
+
"selfH_pct_long",
|
| 528 |
+
"selfH_pct_short",
|
| 529 |
+
"selfH_pct_pass_ok",
|
| 530 |
+
"selfH_n_attacks",
|
| 531 |
+
"selfH_xt_total",
|
| 532 |
+
"selfH_xg_total",
|
| 533 |
+
"selfH_xt_per_attack",
|
| 534 |
+
"selfH_n_seq",
|
| 535 |
+
"selfH_n_pass",
|
| 536 |
+
"selfH_n_shots",
|
| 537 |
+
"selfH_avg_x",
|
| 538 |
+
"selfH_avg_y",
|
| 539 |
+
"selfH_share_opp_half",
|
| 540 |
+
"selfH_recovery_height",
|
| 541 |
+
"selfH_n_progr",
|
| 542 |
+
"selfH_goals_for",
|
| 543 |
+
"selfH_goals_against",
|
| 544 |
+
"selfH_win",
|
| 545 |
+
"selfH_xt_lane_Der",
|
| 546 |
+
"selfH_xt_lane_Centro",
|
| 547 |
+
"selfH_xt_lane_Izq"
|
| 548 |
+
],
|
| 549 |
+
"Features - equipo de visitante (selfA_*)": [
|
| 550 |
+
"selfA_def_H",
|
| 551 |
+
"selfA_def_M",
|
| 552 |
+
"selfA_def_L",
|
| 553 |
+
"selfA_atk_Der",
|
| 554 |
+
"selfA_atk_Centro",
|
| 555 |
+
"selfA_atk_Izq",
|
| 556 |
+
"selfA_offxt_H_Der",
|
| 557 |
+
"selfA_offxt_H_Centro",
|
| 558 |
+
"selfA_offxt_H_Izq",
|
| 559 |
+
"selfA_offxt_M_Der",
|
| 560 |
+
"selfA_offxt_M_Centro",
|
| 561 |
+
"selfA_offxt_M_Izq",
|
| 562 |
+
"selfA_offxt_L_Der",
|
| 563 |
+
"selfA_offxt_L_Centro",
|
| 564 |
+
"selfA_offxt_L_Izq",
|
| 565 |
+
"selfA_defxt_H_Der",
|
| 566 |
+
"selfA_defxt_H_Centro",
|
| 567 |
+
"selfA_defxt_H_Izq",
|
| 568 |
+
"selfA_defxt_M_Der",
|
| 569 |
+
"selfA_defxt_M_Centro",
|
| 570 |
+
"selfA_defxt_M_Izq",
|
| 571 |
+
"selfA_defxt_L_Der",
|
| 572 |
+
"selfA_defxt_L_Centro",
|
| 573 |
+
"selfA_defxt_L_Izq",
|
| 574 |
+
"selfA_sh_buildup",
|
| 575 |
+
"selfA_sh_counter",
|
| 576 |
+
"selfA_sh_direct",
|
| 577 |
+
"selfA_sh_setpiece",
|
| 578 |
+
"selfA_sh_recovery",
|
| 579 |
+
"selfA_sh_progr",
|
| 580 |
+
"selfA_cross_pct",
|
| 581 |
+
"selfA_pct_long",
|
| 582 |
+
"selfA_pct_short",
|
| 583 |
+
"selfA_pct_pass_ok",
|
| 584 |
+
"selfA_n_attacks",
|
| 585 |
+
"selfA_xt_total",
|
| 586 |
+
"selfA_xg_total",
|
| 587 |
+
"selfA_xt_per_attack",
|
| 588 |
+
"selfA_n_seq",
|
| 589 |
+
"selfA_n_pass",
|
| 590 |
+
"selfA_n_shots",
|
| 591 |
+
"selfA_avg_x",
|
| 592 |
+
"selfA_avg_y",
|
| 593 |
+
"selfA_share_opp_half",
|
| 594 |
+
"selfA_recovery_height",
|
| 595 |
+
"selfA_n_progr",
|
| 596 |
+
"selfA_goals_for",
|
| 597 |
+
"selfA_goals_against",
|
| 598 |
+
"selfA_win",
|
| 599 |
+
"selfA_xt_lane_Der",
|
| 600 |
+
"selfA_xt_lane_Centro",
|
| 601 |
+
"selfA_xt_lane_Izq"
|
| 602 |
+
],
|
| 603 |
+
"Features - contexto": [
|
| 604 |
+
"is_home",
|
| 605 |
+
"elo_diff",
|
| 606 |
+
"form_4231",
|
| 607 |
+
"form_4231.0",
|
| 608 |
+
"form_433",
|
| 609 |
+
"form_442",
|
| 610 |
+
"form_3421",
|
| 611 |
+
"form_433.0",
|
| 612 |
+
"form_442.0",
|
| 613 |
+
"form_3421.0",
|
| 614 |
+
"form_352",
|
| 615 |
+
"form_4141.0",
|
| 616 |
+
"form_343",
|
| 617 |
+
"form_4141"
|
| 618 |
]
|
| 619 |
},
|
| 620 |
"analisis/choque-de-estilos": {
|
|
|
|
| 745 |
"Cut_Back__Der_ (int der área)",
|
| 746 |
"Cross__Der_ (ext der área)"
|
| 747 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 748 |
"Features - de nodo": [
|
| 749 |
"ataque y PV propios por zona",
|
| 750 |
"concedidos por zona",
|
|
|
|
| 756 |
],
|
| 757 |
"Train": [
|
| 758 |
"split TEMPORAL",
|
| 759 |
+
"8.506 filas de train",
|
| 760 |
+
"962 de validación (desde 2025-11-16)",
|
| 761 |
+
"early stopping + weight decay + dropout",
|
| 762 |
+
"ensemble de 5 semillas"
|
| 763 |
],
|
| 764 |
"Test": [
|
| 765 |
+
"1.108 filas (temporal, aparte)",
|
| 766 |
+
"MAE vs baseline temporada y últimos 8",
|
| 767 |
"intervalos bootstrap",
|
| 768 |
"mejora ~3.6%"
|
| 769 |
+
],
|
| 770 |
+
"Features globales (200, tras la poda)": [
|
| 771 |
+
"long_mean__actual_press_share__x2_y1",
|
| 772 |
+
"short_mean__actual_press_share__x2_y1",
|
| 773 |
+
"long_mean__press_cnt__x2_y1",
|
| 774 |
+
"short_mean__press_cnt__x2_y1",
|
| 775 |
+
"long_mean__zone_actions__Creativity_Zone",
|
| 776 |
+
"short_mean__zone_actions__Half_Space__Izq_",
|
| 777 |
+
"short_mean__zone_actions__Creativity_Zone",
|
| 778 |
+
"long_mean__zone_actions__Half_Space__Izq_",
|
| 779 |
+
"long_mean__actual_press_share__x2_y2",
|
| 780 |
+
"short_mean__actual_press_share__x2_y2",
|
| 781 |
+
"long_mean__mf__press_int_sum__x2_y1",
|
| 782 |
+
"long_mean__short_long_pass_ratio",
|
| 783 |
+
"short_mean__mf__press_int_sum__x2_y1",
|
| 784 |
+
"short_mean__short_long_pass_ratio",
|
| 785 |
+
"long_mean__zone_actions__Deep_Cross__Izq_",
|
| 786 |
+
"long_mean__zone_linesBroken__Deep_Cross__Izq_",
|
| 787 |
+
"short_mean__passes_short",
|
| 788 |
+
"short_mean__actual_press_share__x1_y0",
|
| 789 |
+
"long_mean__zone_linesBroken__Creativity_Zone",
|
| 790 |
+
"long_mean__passes_short",
|
| 791 |
+
"long_mean__actual_press_share__x1_y0",
|
| 792 |
+
"long_mean__mf__pct_pases_largos",
|
| 793 |
+
"short_mean__zone_actions__Deep_Cross__Izq_",
|
| 794 |
+
"short_mean__mf__pct_pases_largos",
|
| 795 |
+
"long_mean__zone_linesBroken__Half_Space__Izq_",
|
| 796 |
+
"long_mean__press_cnt__x2_y2",
|
| 797 |
+
"short_mean__zone_linesBroken__Half_Space__Izq_",
|
| 798 |
+
"long_mean__interception_cnt__x3_y1",
|
| 799 |
+
"short_mean__press_cnt__x2_y2",
|
| 800 |
+
"short_mean__zone_linesBroken__Deep_Cross__Izq_",
|
| 801 |
+
"short_mean__interception_cnt__x3_y1",
|
| 802 |
+
"short_mean__zone_linesBroken__Creativity_Zone",
|
| 803 |
+
"league_Liga Profesional Argentina",
|
| 804 |
+
"short_mean__pressures_total",
|
| 805 |
+
"long_mean__pressures_total",
|
| 806 |
+
"short_mean__linesBroken_total",
|
| 807 |
+
"long_mean__mf__press_cnt__x2_y2",
|
| 808 |
+
"long_mean__linesBroken_total",
|
| 809 |
+
"short_mean__zone_pvAdded__Creativity_Zone",
|
| 810 |
+
"long_mean__press_cnt__x1_y1",
|
| 811 |
+
"short_mean__actual_recovery_share__x3_y1",
|
| 812 |
+
"short_mean__press_cnt__x1_y1",
|
| 813 |
+
"long_mean__mf__pases_progresivos_sobre_pases",
|
| 814 |
+
"short_mean__mf__pases_progresivos_sobre_pases",
|
| 815 |
+
"short_mean__zone_actions__Half_Space__Der_",
|
| 816 |
+
"long_mean__actual_recovery_share__x3_y1",
|
| 817 |
+
"short_mean__mf__press_cnt__x2_y2",
|
| 818 |
+
"short_mean__press_cnt__x1_y2",
|
| 819 |
+
"long_mean__mf__attack_zone_share__Cross (Izq)",
|
| 820 |
+
"long_mean__zone_pvAdded__Creativity_Zone",
|
| 821 |
+
"long_mean__passes_per_possession",
|
| 822 |
+
"long_mean__press_cnt__x1_y2",
|
| 823 |
+
"short_mean__actual_press_share__x1_y2",
|
| 824 |
+
"long_mean__press_cnt__x1_y0",
|
| 825 |
+
"short_mean__passes_per_possession",
|
| 826 |
+
"short_mean__press_cnt__x1_y0",
|
| 827 |
+
"short_mean__mf__attack_zone_share__Deep Cross (Izq)",
|
| 828 |
+
"long_mean__zone_actions__Half_Space__Der_",
|
| 829 |
+
"long_mean__press_cnt__x2_y0",
|
| 830 |
+
"short_mean__actual_press_share__x2_y0",
|
| 831 |
+
"long_mean__actual_press_share__x2_y0",
|
| 832 |
+
"short_mean__press_cnt__x2_y0",
|
| 833 |
+
"season_25",
|
| 834 |
+
"long_mean__actual_press_share__x1_y2",
|
| 835 |
+
"short_mean__actual_press_share__x3_y2",
|
| 836 |
+
"long_mean__mf__pressures",
|
| 837 |
+
"short_mean__actual_recovery_share__x2_y1",
|
| 838 |
+
"short_mean__mf__attack_zone_share__Deep Cross (Der)",
|
| 839 |
+
"opp__short_mean__zone_actions__Creativity_Zone__opp",
|
| 840 |
+
"short_mean__mf__pressures",
|
| 841 |
+
"opp__long_mean__zone_actions__Creativity_Zone__opp",
|
| 842 |
+
"short_mean__zone_linesBroken__Half_Space__Der_",
|
| 843 |
+
"short_mean__zone_linesBroken__Deep_Cross__Der_",
|
| 844 |
+
"long_mean__press_cnt__x3_y1",
|
| 845 |
+
"long_mean__actual_press_share__x3_y2",
|
| 846 |
+
"opp__long_mean__interception_cnt__x1_y1",
|
| 847 |
+
"season_24-25",
|
| 848 |
+
"long_mean__mf__press_cnt__x3_y2",
|
| 849 |
+
"short_mean__mf__attack_zone_share__Cross (Der)",
|
| 850 |
+
"long_mean__press_cnt__x3_y2",
|
| 851 |
+
"long_mean__zone_actions__Deep_Cross__Der_",
|
| 852 |
+
"short_mean__mf__press_cnt__x3_y2",
|
| 853 |
+
"long_mean__mf__press_cnt__x1_y1",
|
| 854 |
+
"short_mean__zone_actions__Deep_Cross__Der_",
|
| 855 |
+
"long_mean__actual_press_share__x3_y1",
|
| 856 |
+
"short_mean__actual_press_share__x3_y1",
|
| 857 |
+
"short_mean__mf__attack_zone_pvAdded__Creativity Zone",
|
| 858 |
+
"short_mean__press_cnt__x3_y1",
|
| 859 |
+
"short_mean__actual_press_share__x3_y0",
|
| 860 |
+
"long_mean__mf__attack_zone_pvAdded__Creativity Zone",
|
| 861 |
+
"long_mean__actual_recovery_share__x2_y1",
|
| 862 |
+
"short_mean__zone_actions__Cut_Back__Izq_",
|
| 863 |
+
"long_mean__zone_linesBroken__Half_Space__Der_",
|
| 864 |
+
"long_mean__mf__recepciones_area",
|
| 865 |
+
"long_mean__mf__press_int_sum__x3_y1",
|
| 866 |
+
"short_mean__press_cnt__x3_y2",
|
| 867 |
+
"long_mean__zone_linesBroken__Deep_Cross__Der_",
|
| 868 |
+
"short_mean__mf__press_cnt__x1_y1",
|
| 869 |
+
"short_mean__interception_cnt__x2_y1",
|
| 870 |
+
"opp__long_mean__mf__recov_cnt__x1_y1",
|
| 871 |
+
"long_mean__actual_press_share__x3_y0",
|
| 872 |
+
"short_mean__mf__recepciones_area",
|
| 873 |
+
"long_std__actual_press_share__x3_y2",
|
| 874 |
+
"opp__long_mean__mf__recuperaciones_campo_propio",
|
| 875 |
+
"opp__short_mean__interception_cnt__x1_y1",
|
| 876 |
+
"long_std__actual_press_share__x2_y1",
|
| 877 |
+
"opp__short_mean__mf__high_recov_share",
|
| 878 |
+
"short_mean__mf__pct_centros_pases_totales_ultimo_tercio",
|
| 879 |
+
"long_mean__zone_actions__Cut_Back__Izq_",
|
| 880 |
+
"long_mean__mf__press_cnt__x1_y2",
|
| 881 |
+
"opp__short_mean__mf__attack_zone_share__Half-Space (Der)",
|
| 882 |
+
"opp__long_mean__mf__attack_zone_share__Cut-Back (Der)",
|
| 883 |
+
"league_Austrian Bundesliga",
|
| 884 |
+
"short_mean__mf__attack_zone_pvAdded__Security Behind",
|
| 885 |
+
"opp__long_mean__zone_actions__Deep_Cross__Izq___opp",
|
| 886 |
+
"opp__short_mean__mf__recuperaciones_campo_propio",
|
| 887 |
+
"short_mean__mf__press_int_sum__x3_y1",
|
| 888 |
+
"short_mean__mf__press_cnt__x1_y2",
|
| 889 |
+
"opp__short_mean__mf__recov_cnt__x1_y1",
|
| 890 |
+
"short_mean__mf__ritmo_circulacion_pases_por_min",
|
| 891 |
+
"long_mean__actual_recovery_share__x2_y2",
|
| 892 |
+
"long_mean__interception_cnt__x2_y1",
|
| 893 |
+
"long_mean__mf__press_cnt__x2_y0",
|
| 894 |
+
"league_French Ligue 2",
|
| 895 |
+
"short_mean__actual_recovery_share__x2_y2",
|
| 896 |
+
"long_mean__mf__attack_zone_pvAdded__Security Behind",
|
| 897 |
+
"short_mean__mf__press_cnt__x2_y0",
|
| 898 |
+
"opp__short_mean__mf__attack_zone_share__Security Behind",
|
| 899 |
+
"opp__long_mean__mf__attack_zone_share__Deep Cross (Der)",
|
| 900 |
+
"opp__long_mean__mf__attack_zone_share__Scoring Zone",
|
| 901 |
+
"long_mean__zone_actions__Cross__Izq_",
|
| 902 |
+
"short_mean__zone_actions__Cross__Izq_",
|
| 903 |
+
"short_mean__mf__high_recov_share",
|
| 904 |
+
"long_mean__mf__attack_zone_share__Half-Space (Izq)",
|
| 905 |
+
"long_mean__mf__recov_cnt__x1_y1",
|
| 906 |
+
"short_mean__zone_pvAdded__Half_Space__Izq_",
|
| 907 |
+
"long_mean__zone_pvAdded__Half_Space__Izq_",
|
| 908 |
+
"opp__short_mean__zone_actions__Deep_Cross__Izq___opp",
|
| 909 |
+
"long_mean__mf__press_cnt__x3_y0",
|
| 910 |
+
"short_mean__zone_pvAdded__Deep_Cross__Der_",
|
| 911 |
+
"short_mean__interception_cnt__x2_y0",
|
| 912 |
+
"long_mean__mf__shots_on_target",
|
| 913 |
+
"short_mean__actual_press_share__x1_y1",
|
| 914 |
+
"long_mean__mf__progresion_promedio_m_por_posesion",
|
| 915 |
+
"short_mean__mf__pases_prom_secuencia",
|
| 916 |
+
"opp__long_mean__actual_recovery_share__x1_y1",
|
| 917 |
+
"long_mean__mf__ritmo_circulacion_pases_por_min",
|
| 918 |
+
"opp__short_mean__mf__attack_zone_share__Half-Space (Izq)",
|
| 919 |
+
"opp__long_mean__mf__attack_zone_share__Cross (Der)",
|
| 920 |
+
"long_mean__zone_pvAdded__Deep_Cross__Der_",
|
| 921 |
+
"long_mean__mf__pases_prom_secuencia",
|
| 922 |
+
"short_mean__mf__progresion_promedio_m_por_posesion",
|
| 923 |
+
"long_mean__mf__pvValue_sum",
|
| 924 |
+
"long_mean__mf__attack_zone_share__Scoring Zone",
|
| 925 |
+
"short_mean__mf__recov_cnt__x2_y1",
|
| 926 |
+
"long_mean__shots_total",
|
| 927 |
+
"opp__long_mean__mf__attack_zone_share__Creativity Zone",
|
| 928 |
+
"long_mean__mf__recov_cnt__x2_y1",
|
| 929 |
+
"opp__long_mean__mf__attack_zone_share__Cut-Back (Izq)",
|
| 930 |
+
"short_mean__mf__attack_zone_share__Cut-Back (Der)",
|
| 931 |
+
"short_mean__mf__press_cnt__x3_y0",
|
| 932 |
+
"short_mean__shots_total",
|
| 933 |
+
"short_mean__mf__recov_cnt__x1_y1",
|
| 934 |
+
"long_mean__interception_cnt__x2_y0",
|
| 935 |
+
"opp__long_mean__mf__pct_centros_pases_totales_ultimo_tercio",
|
| 936 |
+
"opp__long_mean__mf__recov_cnt__x1_y2",
|
| 937 |
+
"long_std__actual_press_share__x0_y2",
|
| 938 |
+
"short_mean__interception_cnt__x3_y0",
|
| 939 |
+
"is_home_num",
|
| 940 |
+
"short_mean__mf__press_cnt__x1_y0",
|
| 941 |
+
"long_mean__mf__tiros_fuera_de_area",
|
| 942 |
+
"opp__short_mean__mf__attack_zone_share__Deep Cross (Izq)",
|
| 943 |
+
"opp__short_mean__actual_recovery_share__x1_y1",
|
| 944 |
+
"long_mean__interception_cnt__x2_y2",
|
| 945 |
+
"long_mean__actual_press_share__x0_y1",
|
| 946 |
+
"short_mean__mf__attack_zone_share__Half-Space (Der)",
|
| 947 |
+
"short_mean__interception_cnt__x2_y2",
|
| 948 |
+
"short_mean__mf__shots_on_target",
|
| 949 |
+
"short_mean__zone_actions__Scoring_Zone",
|
| 950 |
+
"long_mean__zone_actions__Deep_Cross__Der___opp",
|
| 951 |
+
"opp__long_mean__mf__attack_zone_share__Cross (Izq)",
|
| 952 |
+
"short_mean__mf__attack_zone_share__Cut-Back (Izq)",
|
| 953 |
+
"long_std__actual_press_share__x3_y1",
|
| 954 |
+
"short_mean__actual_press_share__x0_y1",
|
| 955 |
+
"long_mean__mf__ancho_promedio_m_por_posesion",
|
| 956 |
+
"short_mean__mf__ancho_promedio_m_por_posesion",
|
| 957 |
+
"long_mean__mf__press_cnt__x1_y0",
|
| 958 |
+
"opp__long_mean__zone_actions__Half_Space__Izq___opp",
|
| 959 |
+
"long_mean__actual_press_share__x0_y2",
|
| 960 |
+
"opp__short_mean__zone_actions__Half_Space__Izq___opp",
|
| 961 |
+
"short_mean__mf__tiros_fuera_de_area",
|
| 962 |
+
"opp__long_mean__zone_actions__Deep_Cross__Der___opp",
|
| 963 |
+
"long_mean__mf__pases_totales_ultimo_tercio",
|
| 964 |
+
"opp__long_mean__mf__recov_cnt__x1_y0",
|
| 965 |
+
"short_mean__mf__attack_zone_pvAdded__Half-Space (Izq)",
|
| 966 |
+
"long_mean__zone_actions__Half_Space__Der___opp",
|
| 967 |
+
"opp__long_mean__mf__attack_zone_pvAdded__Security Behind",
|
| 968 |
+
"opp__long_mean__zone_actions__Half_Space__Der___opp",
|
| 969 |
+
"opp__short_mean__zone_actions__Half_Space__Der___opp",
|
| 970 |
+
"opp__short_mean__mf__attack_zone_pvAdded__Security Behind"
|
| 971 |
]
|
| 972 |
},
|
| 973 |
"modelos/pv_distribution_gnn": {
|
|
|
|
| 1004 |
],
|
| 1005 |
"Train": [
|
| 1006 |
"split TEMPORAL",
|
| 1007 |
+
"7.395 filas de train",
|
| 1008 |
+
"842 de validación (desde 2025-11-17)",
|
| 1009 |
+
"hasta 260 épocas con early stopping",
|
| 1010 |
"RANDOM_SEED=42"
|
| 1011 |
],
|
| 1012 |
"Test": [
|
| 1013 |
+
"981 filas (temporal, aparte)",
|
| 1014 |
"MAE contra los dos baselines"
|
| 1015 |
+
],
|
| 1016 |
+
"Features globales (1069, SIN poda)": [
|
| 1017 |
+
"long_mean__actual_attack_share__Creativity_Zone",
|
| 1018 |
+
"long_mean__actual_attack_share__Cross__Der_",
|
| 1019 |
+
"long_mean__actual_attack_share__Cross__Izq_",
|
| 1020 |
+
"long_mean__actual_attack_share__Cut_Back__Der_",
|
| 1021 |
+
"long_mean__actual_attack_share__Cut_Back__Izq_",
|
| 1022 |
+
"long_mean__actual_attack_share__Deep_Cross__Der_",
|
| 1023 |
+
"long_mean__actual_attack_share__Deep_Cross__Izq_",
|
| 1024 |
+
"long_mean__actual_attack_share__Half_Space__Der_",
|
| 1025 |
+
"long_mean__actual_attack_share__Half_Space__Izq_",
|
| 1026 |
+
"long_mean__actual_attack_share__Scoring_Zone",
|
| 1027 |
+
"long_mean__actual_conceded_attack_share__Creativity_Zone",
|
| 1028 |
+
"long_mean__actual_conceded_attack_share__Cross__Der_",
|
| 1029 |
+
"long_mean__actual_conceded_attack_share__Cross__Izq_",
|
| 1030 |
+
"long_mean__actual_conceded_attack_share__Cut_Back__Der_",
|
| 1031 |
+
"long_mean__actual_conceded_attack_share__Cut_Back__Izq_",
|
| 1032 |
+
"long_mean__actual_conceded_attack_share__Deep_Cross__Der_",
|
| 1033 |
+
"long_mean__actual_conceded_attack_share__Deep_Cross__Izq_",
|
| 1034 |
+
"long_mean__actual_conceded_attack_share__Half_Space__Der_",
|
| 1035 |
+
"long_mean__actual_conceded_attack_share__Half_Space__Izq_",
|
| 1036 |
+
"long_mean__actual_conceded_attack_share__Scoring_Zone",
|
| 1037 |
+
"long_mean__actual_conceded_pv_share__Creativity_Zone",
|
| 1038 |
+
"long_mean__actual_conceded_pv_share__Cross__Der_",
|
| 1039 |
+
"long_mean__actual_conceded_pv_share__Cross__Izq_",
|
| 1040 |
+
"long_mean__actual_conceded_pv_share__Cut_Back__Der_",
|
| 1041 |
+
"long_mean__actual_conceded_pv_share__Cut_Back__Izq_",
|
| 1042 |
+
"long_mean__actual_conceded_pv_share__Deep_Cross__Der_",
|
| 1043 |
+
"long_mean__actual_conceded_pv_share__Deep_Cross__Izq_",
|
| 1044 |
+
"long_mean__actual_conceded_pv_share__Half_Space__Der_",
|
| 1045 |
+
"long_mean__actual_conceded_pv_share__Half_Space__Izq_",
|
| 1046 |
+
"long_mean__actual_conceded_pv_share__Scoring_Zone",
|
| 1047 |
+
"long_mean__actual_press_share__x0_y0",
|
| 1048 |
+
"long_mean__actual_press_share__x0_y1",
|
| 1049 |
+
"long_mean__actual_press_share__x0_y2",
|
| 1050 |
+
"long_mean__actual_press_share__x1_y0",
|
| 1051 |
+
"long_mean__actual_press_share__x1_y1",
|
| 1052 |
+
"long_mean__actual_press_share__x1_y2",
|
| 1053 |
+
"long_mean__actual_press_share__x2_y0",
|
| 1054 |
+
"long_mean__actual_press_share__x2_y1",
|
| 1055 |
+
"long_mean__actual_press_share__x2_y2",
|
| 1056 |
+
"long_mean__actual_press_share__x3_y0",
|
| 1057 |
+
"long_mean__actual_press_share__x3_y1",
|
| 1058 |
+
"long_mean__actual_press_share__x3_y2",
|
| 1059 |
+
"long_mean__actual_pv_share__Creativity_Zone",
|
| 1060 |
+
"long_mean__actual_pv_share__Cross__Der_",
|
| 1061 |
+
"long_mean__actual_pv_share__Cross__Izq_",
|
| 1062 |
+
"long_mean__actual_pv_share__Cut_Back__Der_",
|
| 1063 |
+
"long_mean__actual_pv_share__Cut_Back__Izq_",
|
| 1064 |
+
"long_mean__actual_pv_share__Deep_Cross__Der_",
|
| 1065 |
+
"long_mean__actual_pv_share__Deep_Cross__Izq_",
|
| 1066 |
+
"long_mean__actual_pv_share__Half_Space__Der_",
|
| 1067 |
+
"long_mean__actual_pv_share__Half_Space__Izq_",
|
| 1068 |
+
"long_mean__actual_pv_share__Scoring_Zone",
|
| 1069 |
+
"long_mean__actual_recovery_share__x0_y0",
|
| 1070 |
+
"long_mean__actual_recovery_share__x0_y1",
|
| 1071 |
+
"long_mean__actual_recovery_share__x0_y2",
|
| 1072 |
+
"long_mean__actual_recovery_share__x1_y0",
|
| 1073 |
+
"long_mean__actual_recovery_share__x1_y1",
|
| 1074 |
+
"long_mean__actual_recovery_share__x1_y2",
|
| 1075 |
+
"long_mean__actual_recovery_share__x2_y0",
|
| 1076 |
+
"long_mean__actual_recovery_share__x2_y1",
|
| 1077 |
+
"long_mean__actual_recovery_share__x2_y2",
|
| 1078 |
+
"long_mean__actual_recovery_share__x3_y0",
|
| 1079 |
+
"long_mean__actual_recovery_share__x3_y1",
|
| 1080 |
+
"long_mean__actual_recovery_share__x3_y2",
|
| 1081 |
+
"long_mean__goals_against",
|
| 1082 |
+
"long_mean__goals_for",
|
| 1083 |
+
"long_mean__goals_for__opp",
|
| 1084 |
+
"long_mean__interception_cnt__x0_y0",
|
| 1085 |
+
"long_mean__interception_cnt__x0_y1",
|
| 1086 |
+
"long_mean__interception_cnt__x0_y2",
|
| 1087 |
+
"long_mean__interception_cnt__x1_y0",
|
| 1088 |
+
"long_mean__interception_cnt__x1_y1",
|
| 1089 |
+
"long_mean__interception_cnt__x1_y2",
|
| 1090 |
+
"long_mean__interception_cnt__x2_y0",
|
| 1091 |
+
"long_mean__interception_cnt__x2_y1",
|
| 1092 |
+
"long_mean__interception_cnt__x2_y2",
|
| 1093 |
+
"long_mean__interception_cnt__x3_y0",
|
| 1094 |
+
"long_mean__interception_cnt__x3_y1",
|
| 1095 |
+
"long_mean__interception_cnt__x3_y2",
|
| 1096 |
+
"long_mean__linesBroken_total",
|
| 1097 |
+
"long_mean__mf__acciones_defensivas_en_ofensiva",
|
| 1098 |
+
"long_mean__mf__acciones_defensivas_totales",
|
| 1099 |
+
"long_mean__mf__altura_media_recuperacion",
|
| 1100 |
+
"long_mean__mf__ancho_promedio_m_por_posesion",
|
| 1101 |
+
"long_mean__mf__attack_zone_pvAdded__Creativity Zone",
|
| 1102 |
+
"long_mean__mf__attack_zone_pvAdded__Cross (Der)",
|
| 1103 |
+
"long_mean__mf__attack_zone_pvAdded__Cross (Izq)",
|
| 1104 |
+
"long_mean__mf__attack_zone_pvAdded__Cut-Back (Der)",
|
| 1105 |
+
"long_mean__mf__attack_zone_pvAdded__Cut-Back (Izq)",
|
| 1106 |
+
"long_mean__mf__attack_zone_pvAdded__Deep Cross (Der)",
|
| 1107 |
+
"long_mean__mf__attack_zone_pvAdded__Deep Cross (Izq)",
|
| 1108 |
+
"long_mean__mf__attack_zone_pvAdded__Half-Space (Der)",
|
| 1109 |
+
"long_mean__mf__attack_zone_pvAdded__Half-Space (Izq)",
|
| 1110 |
+
"long_mean__mf__attack_zone_pvAdded__Scoring Zone",
|
| 1111 |
+
"long_mean__mf__attack_zone_pvAdded__Security Behind",
|
| 1112 |
+
"long_mean__mf__attack_zone_share__Creativity Zone",
|
| 1113 |
+
"long_mean__mf__attack_zone_share__Cross (Der)",
|
| 1114 |
+
"long_mean__mf__attack_zone_share__Cross (Izq)",
|
| 1115 |
+
"long_mean__mf__attack_zone_share__Cut-Back (Der)",
|
| 1116 |
+
"long_mean__mf__attack_zone_share__Cut-Back (Izq)",
|
| 1117 |
+
"long_mean__mf__attack_zone_share__Deep Cross (Der)",
|
| 1118 |
+
"long_mean__mf__attack_zone_share__Deep Cross (Izq)",
|
| 1119 |
+
"long_mean__mf__attack_zone_share__Half-Space (Der)",
|
| 1120 |
+
"long_mean__mf__attack_zone_share__Half-Space (Izq)",
|
| 1121 |
+
"long_mean__mf__attack_zone_share__Scoring Zone",
|
| 1122 |
+
"long_mean__mf__attack_zone_share__Security Behind",
|
| 1123 |
+
"long_mean__mf__avg_end_x_pass",
|
| 1124 |
+
"long_mean__mf__big_chances_generadas",
|
| 1125 |
+
"long_mean__mf__centros_totales_ultimo_tercio",
|
| 1126 |
+
"long_mean__mf__counter_press_recovery",
|
| 1127 |
+
"long_mean__mf__cross_share_last3",
|
| 1128 |
+
"long_mean__mf__final3_success",
|
| 1129 |
+
"long_mean__mf__high_recov_share",
|
| 1130 |
+
"long_mean__mf__pases_area",
|
| 1131 |
+
"long_mean__mf__pases_progresivos_sobre_pases",
|
| 1132 |
+
"long_mean__mf__pases_prom_secuencia",
|
| 1133 |
+
"long_mean__mf__pases_totales_ultimo_tercio",
|
| 1134 |
+
"long_mean__mf__passes_per_loss",
|
| 1135 |
+
"long_mean__mf__passes_per_shot",
|
| 1136 |
+
"long_mean__mf__pct_centros_pases_totales_ultimo_tercio",
|
| 1137 |
+
"long_mean__mf__pct_pases_largos",
|
| 1138 |
+
"long_mean__mf__possession_nunique",
|
| 1139 |
+
"long_mean__mf__ppda",
|
| 1140 |
+
"long_mean__mf__ppda_inv",
|
| 1141 |
+
"long_mean__mf__press_cnt__x0_y0",
|
| 1142 |
+
"long_mean__mf__press_cnt__x0_y1",
|
| 1143 |
+
"long_mean__mf__press_cnt__x0_y2",
|
| 1144 |
+
"long_mean__mf__press_cnt__x1_y0",
|
| 1145 |
+
"long_mean__mf__press_cnt__x1_y1",
|
| 1146 |
+
"long_mean__mf__press_cnt__x1_y2",
|
| 1147 |
+
"long_mean__mf__press_cnt__x2_y0",
|
| 1148 |
+
"long_mean__mf__press_cnt__x2_y1",
|
| 1149 |
+
"long_mean__mf__press_cnt__x2_y2",
|
| 1150 |
+
"long_mean__mf__press_cnt__x3_y0",
|
| 1151 |
+
"long_mean__mf__press_cnt__x3_y1",
|
| 1152 |
+
"long_mean__mf__press_cnt__x3_y2",
|
| 1153 |
+
"long_mean__mf__press_int_sum__x0_y0",
|
| 1154 |
+
"long_mean__mf__press_int_sum__x0_y1",
|
| 1155 |
+
"long_mean__mf__press_int_sum__x0_y2",
|
| 1156 |
+
"long_mean__mf__press_int_sum__x1_y0",
|
| 1157 |
+
"long_mean__mf__press_int_sum__x1_y1",
|
| 1158 |
+
"long_mean__mf__press_int_sum__x1_y2",
|
| 1159 |
+
"long_mean__mf__press_int_sum__x2_y0",
|
| 1160 |
+
"long_mean__mf__press_int_sum__x2_y1",
|
| 1161 |
+
"long_mean__mf__press_int_sum__x2_y2",
|
| 1162 |
+
"long_mean__mf__press_int_sum__x3_y0",
|
| 1163 |
+
"long_mean__mf__press_int_sum__x3_y1",
|
| 1164 |
+
"long_mean__mf__press_int_sum__x3_y2",
|
| 1165 |
+
"long_mean__mf__pressure_intensity_sum",
|
| 1166 |
+
"long_mean__mf__pressures",
|
| 1167 |
+
"long_mean__mf__progresion_promedio_m_por_posesion",
|
| 1168 |
+
"long_mean__mf__pvAdded_sum",
|
| 1169 |
+
"long_mean__mf__pvValue_sum",
|
| 1170 |
+
"long_mean__mf__recepciones_area",
|
| 1171 |
+
"long_mean__mf__recov_cnt__x0_y0",
|
| 1172 |
+
"long_mean__mf__recov_cnt__x0_y1",
|
| 1173 |
+
"long_mean__mf__recov_cnt__x0_y2",
|
| 1174 |
+
"long_mean__mf__recov_cnt__x1_y0",
|
| 1175 |
+
"long_mean__mf__recov_cnt__x1_y1",
|
| 1176 |
+
"long_mean__mf__recov_cnt__x1_y2",
|
| 1177 |
+
"long_mean__mf__recov_cnt__x2_y0",
|
| 1178 |
+
"long_mean__mf__recov_cnt__x2_y1",
|
| 1179 |
+
"long_mean__mf__recov_cnt__x2_y2",
|
| 1180 |
+
"long_mean__mf__recov_cnt__x3_y0",
|
| 1181 |
+
"long_mean__mf__recov_cnt__x3_y1",
|
| 1182 |
+
"long_mean__mf__recov_cnt__x3_y2",
|
| 1183 |
+
"long_mean__mf__recuperaciones_campo_propio",
|
| 1184 |
+
"long_mean__mf__recuperaciones_campo_rival",
|
| 1185 |
+
"long_mean__mf__ritmo_circulacion_pases_por_min",
|
| 1186 |
+
"long_mean__mf__shots",
|
| 1187 |
+
"long_mean__mf__shots_on_target",
|
| 1188 |
+
"long_mean__mf__tiros_area_grande",
|
| 1189 |
+
"long_mean__mf__tiros_area_pequeña",
|
| 1190 |
+
"long_mean__mf__tiros_fuera_de_area",
|
| 1191 |
+
"long_mean__mf__touches_area",
|
| 1192 |
+
"long_mean__mf__xg_por_tiro",
|
| 1193 |
+
"long_mean__mf__xg_suma_tiros",
|
| 1194 |
+
"long_mean__passes_long",
|
| 1195 |
+
"long_mean__passes_per_possession",
|
| 1196 |
+
"long_mean__passes_short",
|
| 1197 |
+
"long_mean__passes_total",
|
| 1198 |
+
"long_mean__possessions_nunique",
|
| 1199 |
+
"long_mean__press_cnt__x0_y0",
|
| 1200 |
+
"long_mean__press_cnt__x0_y1",
|
| 1201 |
+
"long_mean__press_cnt__x0_y2",
|
| 1202 |
+
"long_mean__press_cnt__x1_y0",
|
| 1203 |
+
"long_mean__press_cnt__x1_y1",
|
| 1204 |
+
"long_mean__press_cnt__x1_y2",
|
| 1205 |
+
"long_mean__press_cnt__x2_y0",
|
| 1206 |
+
"long_mean__press_cnt__x2_y1",
|
| 1207 |
+
"long_mean__press_cnt__x2_y2",
|
| 1208 |
+
"long_mean__press_cnt__x3_y0",
|
| 1209 |
+
"long_mean__press_cnt__x3_y1",
|
| 1210 |
+
"long_mean__press_cnt__x3_y2",
|
| 1211 |
+
"long_mean__pressures_total",
|
| 1212 |
+
"long_mean__pvAdded_total",
|
| 1213 |
+
"long_mean__pvAdded_total__opp",
|
| 1214 |
+
"long_mean__recoveries_total",
|
| 1215 |
+
"long_mean__short_long_pass_ratio",
|
| 1216 |
+
"long_mean__shots_total",
|
| 1217 |
+
"long_mean__shots_total__opp",
|
| 1218 |
+
"long_mean__zone_actions__Creativity_Zone",
|
| 1219 |
+
"long_mean__zone_actions__Creativity_Zone__opp",
|
| 1220 |
+
"long_mean__zone_actions__Cross__Der_",
|
| 1221 |
+
"long_mean__zone_actions__Cross__Der___opp",
|
| 1222 |
+
"long_mean__zone_actions__Cross__Izq_",
|
| 1223 |
+
"long_mean__zone_actions__Cross__Izq___opp",
|
| 1224 |
+
"long_mean__zone_actions__Cut_Back__Der_",
|
| 1225 |
+
"long_mean__zone_actions__Cut_Back__Der___opp",
|
| 1226 |
+
"long_mean__zone_actions__Cut_Back__Izq_",
|
| 1227 |
+
"long_mean__zone_actions__Cut_Back__Izq___opp",
|
| 1228 |
+
"long_mean__zone_actions__Deep_Cross__Der_",
|
| 1229 |
+
"long_mean__zone_actions__Deep_Cross__Der___opp",
|
| 1230 |
+
"long_mean__zone_actions__Deep_Cross__Izq_",
|
| 1231 |
+
"long_mean__zone_actions__Deep_Cross__Izq___opp",
|
| 1232 |
+
"long_mean__zone_actions__Half_Space__Der_",
|
| 1233 |
+
"long_mean__zone_actions__Half_Space__Der___opp",
|
| 1234 |
+
"long_mean__zone_actions__Half_Space__Izq_",
|
| 1235 |
+
"long_mean__zone_actions__Half_Space__Izq___opp",
|
| 1236 |
+
"long_mean__zone_actions__Scoring_Zone",
|
| 1237 |
+
"long_mean__zone_actions__Scoring_Zone__opp",
|
| 1238 |
+
"long_mean__zone_linesBroken__Creativity_Zone",
|
| 1239 |
+
"long_mean__zone_linesBroken__Cross__Der_",
|
| 1240 |
+
"long_mean__zone_linesBroken__Cross__Izq_",
|
| 1241 |
+
"long_mean__zone_linesBroken__Cut_Back__Der_",
|
| 1242 |
+
"long_mean__zone_linesBroken__Cut_Back__Izq_",
|
| 1243 |
+
"long_mean__zone_linesBroken__Deep_Cross__Der_",
|
| 1244 |
+
"long_mean__zone_linesBroken__Deep_Cross__Izq_",
|
| 1245 |
+
"long_mean__zone_linesBroken__Half_Space__Der_",
|
| 1246 |
+
"long_mean__zone_linesBroken__Half_Space__Izq_",
|
| 1247 |
+
"long_mean__zone_linesBroken__Scoring_Zone",
|
| 1248 |
+
"long_mean__zone_pvAdded_shots__Creativity_Zone",
|
| 1249 |
+
"long_mean__zone_pvAdded_shots__Cross__Der_",
|
| 1250 |
+
"long_mean__zone_pvAdded_shots__Cross__Izq_",
|
| 1251 |
+
"long_mean__zone_pvAdded_shots__Cut_Back__Der_",
|
| 1252 |
+
"long_mean__zone_pvAdded_shots__Cut_Back__Izq_",
|
| 1253 |
+
"long_mean__zone_pvAdded_shots__Deep_Cross__Der_",
|
| 1254 |
+
"long_mean__zone_pvAdded_shots__Deep_Cross__Izq_",
|
| 1255 |
+
"long_mean__zone_pvAdded_shots__Half_Space__Der_",
|
| 1256 |
+
"long_mean__zone_pvAdded_shots__Half_Space__Izq_",
|
| 1257 |
+
"long_mean__zone_pvAdded_shots__Scoring_Zone",
|
| 1258 |
+
"long_std__actual_press_share__x0_y0",
|
| 1259 |
+
"long_std__actual_press_share__x0_y1",
|
| 1260 |
+
"long_std__actual_press_share__x0_y2",
|
| 1261 |
+
"long_std__actual_press_share__x1_y0",
|
| 1262 |
+
"long_std__actual_press_share__x1_y1",
|
| 1263 |
+
"long_std__actual_press_share__x1_y2",
|
| 1264 |
+
"long_std__actual_press_share__x2_y0",
|
| 1265 |
+
"long_std__actual_press_share__x2_y1",
|
| 1266 |
+
"long_std__actual_press_share__x2_y2",
|
| 1267 |
+
"long_std__actual_press_share__x3_y0",
|
| 1268 |
+
"long_std__actual_press_share__x3_y1",
|
| 1269 |
+
"long_std__actual_press_share__x3_y2",
|
| 1270 |
+
"long_std__actual_recovery_share__x0_y0",
|
| 1271 |
+
"long_std__actual_recovery_share__x0_y1",
|
| 1272 |
+
"long_std__actual_recovery_share__x0_y2",
|
| 1273 |
+
"long_std__actual_recovery_share__x1_y0",
|
| 1274 |
+
"long_std__actual_recovery_share__x1_y1",
|
| 1275 |
+
"long_std__actual_recovery_share__x1_y2",
|
| 1276 |
+
"long_std__actual_recovery_share__x2_y0",
|
| 1277 |
+
"long_std__actual_recovery_share__x2_y1",
|
| 1278 |
+
"long_std__actual_recovery_share__x2_y2",
|
| 1279 |
+
"long_std__actual_recovery_share__x3_y0",
|
| 1280 |
+
"long_std__actual_recovery_share__x3_y1",
|
| 1281 |
+
"long_std__actual_recovery_share__x3_y2",
|
| 1282 |
+
"opp__long_mean__actual_attack_share__Creativity_Zone",
|
| 1283 |
+
"opp__long_mean__actual_attack_share__Cross__Der_",
|
| 1284 |
+
"opp__long_mean__actual_attack_share__Cross__Izq_",
|
| 1285 |
+
"opp__long_mean__actual_attack_share__Cut_Back__Der_",
|
| 1286 |
+
"opp__long_mean__actual_attack_share__Cut_Back__Izq_",
|
| 1287 |
+
"opp__long_mean__actual_attack_share__Deep_Cross__Der_",
|
| 1288 |
+
"opp__long_mean__actual_attack_share__Deep_Cross__Izq_",
|
| 1289 |
+
"opp__long_mean__actual_attack_share__Half_Space__Der_",
|
| 1290 |
+
"opp__long_mean__actual_attack_share__Half_Space__Izq_",
|
| 1291 |
+
"opp__long_mean__actual_attack_share__Scoring_Zone",
|
| 1292 |
+
"opp__long_mean__actual_conceded_attack_share__Creativity_Zone",
|
| 1293 |
+
"opp__long_mean__actual_conceded_attack_share__Cross__Der_",
|
| 1294 |
+
"opp__long_mean__actual_conceded_attack_share__Cross__Izq_",
|
| 1295 |
+
"opp__long_mean__actual_conceded_attack_share__Cut_Back__Der_",
|
| 1296 |
+
"opp__long_mean__actual_conceded_attack_share__Cut_Back__Izq_",
|
| 1297 |
+
"opp__long_mean__actual_conceded_attack_share__Deep_Cross__Der_",
|
| 1298 |
+
"opp__long_mean__actual_conceded_attack_share__Deep_Cross__Izq_",
|
| 1299 |
+
"opp__long_mean__actual_conceded_attack_share__Half_Space__Der_",
|
| 1300 |
+
"opp__long_mean__actual_conceded_attack_share__Half_Space__Izq_",
|
| 1301 |
+
"opp__long_mean__actual_conceded_attack_share__Scoring_Zone",
|
| 1302 |
+
"opp__long_mean__actual_conceded_pv_share__Creativity_Zone",
|
| 1303 |
+
"opp__long_mean__actual_conceded_pv_share__Cross__Der_",
|
| 1304 |
+
"opp__long_mean__actual_conceded_pv_share__Cross__Izq_",
|
| 1305 |
+
"opp__long_mean__actual_conceded_pv_share__Cut_Back__Der_",
|
| 1306 |
+
"opp__long_mean__actual_conceded_pv_share__Cut_Back__Izq_",
|
| 1307 |
+
"opp__long_mean__actual_conceded_pv_share__Deep_Cross__Der_",
|
| 1308 |
+
"opp__long_mean__actual_conceded_pv_share__Deep_Cross__Izq_",
|
| 1309 |
+
"opp__long_mean__actual_conceded_pv_share__Half_Space__Der_",
|
| 1310 |
+
"opp__long_mean__actual_conceded_pv_share__Half_Space__Izq_",
|
| 1311 |
+
"opp__long_mean__actual_conceded_pv_share__Scoring_Zone",
|
| 1312 |
+
"opp__long_mean__actual_press_share__x0_y0",
|
| 1313 |
+
"opp__long_mean__actual_press_share__x0_y1",
|
| 1314 |
+
"opp__long_mean__actual_press_share__x0_y2",
|
| 1315 |
+
"opp__long_mean__actual_press_share__x1_y0",
|
| 1316 |
+
"opp__long_mean__actual_press_share__x1_y1",
|
| 1317 |
+
"opp__long_mean__actual_press_share__x1_y2",
|
| 1318 |
+
"opp__long_mean__actual_press_share__x2_y0",
|
| 1319 |
+
"opp__long_mean__actual_press_share__x2_y1",
|
| 1320 |
+
"opp__long_mean__actual_press_share__x2_y2",
|
| 1321 |
+
"opp__long_mean__actual_press_share__x3_y0",
|
| 1322 |
+
"opp__long_mean__actual_press_share__x3_y1",
|
| 1323 |
+
"opp__long_mean__actual_press_share__x3_y2",
|
| 1324 |
+
"opp__long_mean__actual_pv_share__Creativity_Zone",
|
| 1325 |
+
"opp__long_mean__actual_pv_share__Cross__Der_",
|
| 1326 |
+
"opp__long_mean__actual_pv_share__Cross__Izq_",
|
| 1327 |
+
"opp__long_mean__actual_pv_share__Cut_Back__Der_",
|
| 1328 |
+
"opp__long_mean__actual_pv_share__Cut_Back__Izq_",
|
| 1329 |
+
"opp__long_mean__actual_pv_share__Deep_Cross__Der_",
|
| 1330 |
+
"opp__long_mean__actual_pv_share__Deep_Cross__Izq_",
|
| 1331 |
+
"opp__long_mean__actual_pv_share__Half_Space__Der_",
|
| 1332 |
+
"opp__long_mean__actual_pv_share__Half_Space__Izq_",
|
| 1333 |
+
"opp__long_mean__actual_pv_share__Scoring_Zone",
|
| 1334 |
+
"opp__long_mean__actual_recovery_share__x0_y0",
|
| 1335 |
+
"opp__long_mean__actual_recovery_share__x0_y1",
|
| 1336 |
+
"opp__long_mean__actual_recovery_share__x0_y2",
|
| 1337 |
+
"opp__long_mean__actual_recovery_share__x1_y0",
|
| 1338 |
+
"opp__long_mean__actual_recovery_share__x1_y1",
|
| 1339 |
+
"opp__long_mean__actual_recovery_share__x1_y2",
|
| 1340 |
+
"opp__long_mean__actual_recovery_share__x2_y0",
|
| 1341 |
+
"opp__long_mean__actual_recovery_share__x2_y1",
|
| 1342 |
+
"opp__long_mean__actual_recovery_share__x2_y2",
|
| 1343 |
+
"opp__long_mean__actual_recovery_share__x3_y0",
|
| 1344 |
+
"opp__long_mean__actual_recovery_share__x3_y1",
|
| 1345 |
+
"opp__long_mean__actual_recovery_share__x3_y2",
|
| 1346 |
+
"opp__long_mean__goals_against",
|
| 1347 |
+
"opp__long_mean__goals_for",
|
| 1348 |
+
"opp__long_mean__goals_for__opp",
|
| 1349 |
+
"opp__long_mean__interception_cnt__x0_y0",
|
| 1350 |
+
"opp__long_mean__interception_cnt__x0_y1",
|
| 1351 |
+
"opp__long_mean__interception_cnt__x0_y2",
|
| 1352 |
+
"opp__long_mean__interception_cnt__x1_y0",
|
| 1353 |
+
"opp__long_mean__interception_cnt__x1_y1",
|
| 1354 |
+
"opp__long_mean__interception_cnt__x1_y2",
|
| 1355 |
+
"opp__long_mean__interception_cnt__x2_y0",
|
| 1356 |
+
"opp__long_mean__interception_cnt__x2_y1",
|
| 1357 |
+
"opp__long_mean__interception_cnt__x2_y2",
|
| 1358 |
+
"opp__long_mean__interception_cnt__x3_y0",
|
| 1359 |
+
"opp__long_mean__interception_cnt__x3_y1",
|
| 1360 |
+
"opp__long_mean__interception_cnt__x3_y2",
|
| 1361 |
+
"opp__long_mean__linesBroken_total",
|
| 1362 |
+
"opp__long_mean__mf__acciones_defensivas_en_ofensiva",
|
| 1363 |
+
"opp__long_mean__mf__acciones_defensivas_totales",
|
| 1364 |
+
"opp__long_mean__mf__altura_media_recuperacion",
|
| 1365 |
+
"opp__long_mean__mf__ancho_promedio_m_por_posesion",
|
| 1366 |
+
"opp__long_mean__mf__attack_zone_pvAdded__Creativity Zone",
|
| 1367 |
+
"opp__long_mean__mf__attack_zone_pvAdded__Cross (Der)",
|
| 1368 |
+
"opp__long_mean__mf__attack_zone_pvAdded__Cross (Izq)",
|
| 1369 |
+
"opp__long_mean__mf__attack_zone_pvAdded__Cut-Back (Der)",
|
| 1370 |
+
"opp__long_mean__mf__attack_zone_pvAdded__Cut-Back (Izq)",
|
| 1371 |
+
"opp__long_mean__mf__attack_zone_pvAdded__Deep Cross (Der)",
|
| 1372 |
+
"opp__long_mean__mf__attack_zone_pvAdded__Deep Cross (Izq)",
|
| 1373 |
+
"opp__long_mean__mf__attack_zone_pvAdded__Half-Space (Der)",
|
| 1374 |
+
"opp__long_mean__mf__attack_zone_pvAdded__Half-Space (Izq)",
|
| 1375 |
+
"opp__long_mean__mf__attack_zone_pvAdded__Scoring Zone",
|
| 1376 |
+
"opp__long_mean__mf__attack_zone_pvAdded__Security Behind",
|
| 1377 |
+
"opp__long_mean__mf__attack_zone_share__Creativity Zone",
|
| 1378 |
+
"opp__long_mean__mf__attack_zone_share__Cross (Der)",
|
| 1379 |
+
"opp__long_mean__mf__attack_zone_share__Cross (Izq)",
|
| 1380 |
+
"opp__long_mean__mf__attack_zone_share__Cut-Back (Der)",
|
| 1381 |
+
"opp__long_mean__mf__attack_zone_share__Cut-Back (Izq)",
|
| 1382 |
+
"opp__long_mean__mf__attack_zone_share__Deep Cross (Der)",
|
| 1383 |
+
"opp__long_mean__mf__attack_zone_share__Deep Cross (Izq)",
|
| 1384 |
+
"opp__long_mean__mf__attack_zone_share__Half-Space (Der)",
|
| 1385 |
+
"opp__long_mean__mf__attack_zone_share__Half-Space (Izq)",
|
| 1386 |
+
"opp__long_mean__mf__attack_zone_share__Scoring Zone",
|
| 1387 |
+
"opp__long_mean__mf__attack_zone_share__Security Behind",
|
| 1388 |
+
"opp__long_mean__mf__avg_end_x_pass",
|
| 1389 |
+
"opp__long_mean__mf__big_chances_generadas",
|
| 1390 |
+
"opp__long_mean__mf__centros_totales_ultimo_tercio",
|
| 1391 |
+
"opp__long_mean__mf__counter_press_recovery",
|
| 1392 |
+
"opp__long_mean__mf__cross_share_last3",
|
| 1393 |
+
"opp__long_mean__mf__final3_success",
|
| 1394 |
+
"opp__long_mean__mf__high_recov_share",
|
| 1395 |
+
"opp__long_mean__mf__pases_area",
|
| 1396 |
+
"opp__long_mean__mf__pases_progresivos_sobre_pases",
|
| 1397 |
+
"opp__long_mean__mf__pases_prom_secuencia",
|
| 1398 |
+
"opp__long_mean__mf__pases_totales_ultimo_tercio",
|
| 1399 |
+
"opp__long_mean__mf__passes_per_loss",
|
| 1400 |
+
"opp__long_mean__mf__passes_per_shot",
|
| 1401 |
+
"opp__long_mean__mf__pct_centros_pases_totales_ultimo_tercio",
|
| 1402 |
+
"opp__long_mean__mf__pct_pases_largos",
|
| 1403 |
+
"opp__long_mean__mf__possession_nunique",
|
| 1404 |
+
"opp__long_mean__mf__ppda",
|
| 1405 |
+
"opp__long_mean__mf__ppda_inv",
|
| 1406 |
+
"opp__long_mean__mf__press_cnt__x0_y0",
|
| 1407 |
+
"opp__long_mean__mf__press_cnt__x0_y1",
|
| 1408 |
+
"opp__long_mean__mf__press_cnt__x0_y2",
|
| 1409 |
+
"opp__long_mean__mf__press_cnt__x1_y0",
|
| 1410 |
+
"opp__long_mean__mf__press_cnt__x1_y1",
|
| 1411 |
+
"opp__long_mean__mf__press_cnt__x1_y2",
|
| 1412 |
+
"opp__long_mean__mf__press_cnt__x2_y0",
|
| 1413 |
+
"opp__long_mean__mf__press_cnt__x2_y1",
|
| 1414 |
+
"opp__long_mean__mf__press_cnt__x2_y2",
|
| 1415 |
+
"opp__long_mean__mf__press_cnt__x3_y0",
|
| 1416 |
+
"opp__long_mean__mf__press_cnt__x3_y1",
|
| 1417 |
+
"opp__long_mean__mf__press_cnt__x3_y2",
|
| 1418 |
+
"opp__long_mean__mf__press_int_sum__x0_y0",
|
| 1419 |
+
"opp__long_mean__mf__press_int_sum__x0_y1",
|
| 1420 |
+
"opp__long_mean__mf__press_int_sum__x0_y2",
|
| 1421 |
+
"opp__long_mean__mf__press_int_sum__x1_y0",
|
| 1422 |
+
"opp__long_mean__mf__press_int_sum__x1_y1",
|
| 1423 |
+
"opp__long_mean__mf__press_int_sum__x1_y2",
|
| 1424 |
+
"opp__long_mean__mf__press_int_sum__x2_y0",
|
| 1425 |
+
"opp__long_mean__mf__press_int_sum__x2_y1",
|
| 1426 |
+
"opp__long_mean__mf__press_int_sum__x2_y2",
|
| 1427 |
+
"opp__long_mean__mf__press_int_sum__x3_y0",
|
| 1428 |
+
"opp__long_mean__mf__press_int_sum__x3_y1",
|
| 1429 |
+
"opp__long_mean__mf__press_int_sum__x3_y2",
|
| 1430 |
+
"opp__long_mean__mf__pressure_intensity_sum",
|
| 1431 |
+
"opp__long_mean__mf__pressures",
|
| 1432 |
+
"opp__long_mean__mf__progresion_promedio_m_por_posesion",
|
| 1433 |
+
"opp__long_mean__mf__pvAdded_sum",
|
| 1434 |
+
"opp__long_mean__mf__pvValue_sum",
|
| 1435 |
+
"opp__long_mean__mf__recepciones_area",
|
| 1436 |
+
"opp__long_mean__mf__recov_cnt__x0_y0",
|
| 1437 |
+
"opp__long_mean__mf__recov_cnt__x0_y1",
|
| 1438 |
+
"opp__long_mean__mf__recov_cnt__x0_y2",
|
| 1439 |
+
"opp__long_mean__mf__recov_cnt__x1_y0",
|
| 1440 |
+
"opp__long_mean__mf__recov_cnt__x1_y1",
|
| 1441 |
+
"opp__long_mean__mf__recov_cnt__x1_y2",
|
| 1442 |
+
"opp__long_mean__mf__recov_cnt__x2_y0",
|
| 1443 |
+
"opp__long_mean__mf__recov_cnt__x2_y1",
|
| 1444 |
+
"opp__long_mean__mf__recov_cnt__x2_y2",
|
| 1445 |
+
"opp__long_mean__mf__recov_cnt__x3_y0",
|
| 1446 |
+
"opp__long_mean__mf__recov_cnt__x3_y1",
|
| 1447 |
+
"opp__long_mean__mf__recov_cnt__x3_y2",
|
| 1448 |
+
"opp__long_mean__mf__recuperaciones_campo_propio",
|
| 1449 |
+
"opp__long_mean__mf__recuperaciones_campo_rival",
|
| 1450 |
+
"opp__long_mean__mf__ritmo_circulacion_pases_por_min",
|
| 1451 |
+
"opp__long_mean__mf__shots",
|
| 1452 |
+
"opp__long_mean__mf__shots_on_target",
|
| 1453 |
+
"opp__long_mean__mf__tiros_area_grande",
|
| 1454 |
+
"opp__long_mean__mf__tiros_area_pequeña",
|
| 1455 |
+
"opp__long_mean__mf__tiros_fuera_de_area",
|
| 1456 |
+
"opp__long_mean__mf__touches_area",
|
| 1457 |
+
"opp__long_mean__mf__xg_por_tiro",
|
| 1458 |
+
"opp__long_mean__mf__xg_suma_tiros",
|
| 1459 |
+
"opp__long_mean__passes_long",
|
| 1460 |
+
"opp__long_mean__passes_per_possession",
|
| 1461 |
+
"opp__long_mean__passes_short",
|
| 1462 |
+
"opp__long_mean__passes_total",
|
| 1463 |
+
"opp__long_mean__possessions_nunique",
|
| 1464 |
+
"opp__long_mean__press_cnt__x0_y0",
|
| 1465 |
+
"opp__long_mean__press_cnt__x0_y1",
|
| 1466 |
+
"opp__long_mean__press_cnt__x0_y2",
|
| 1467 |
+
"opp__long_mean__press_cnt__x1_y0",
|
| 1468 |
+
"opp__long_mean__press_cnt__x1_y1",
|
| 1469 |
+
"opp__long_mean__press_cnt__x1_y2",
|
| 1470 |
+
"opp__long_mean__press_cnt__x2_y0",
|
| 1471 |
+
"opp__long_mean__press_cnt__x2_y1",
|
| 1472 |
+
"opp__long_mean__press_cnt__x2_y2",
|
| 1473 |
+
"opp__long_mean__press_cnt__x3_y0",
|
| 1474 |
+
"opp__long_mean__press_cnt__x3_y1",
|
| 1475 |
+
"opp__long_mean__press_cnt__x3_y2",
|
| 1476 |
+
"opp__long_mean__pressures_total",
|
| 1477 |
+
"opp__long_mean__pvAdded_total",
|
| 1478 |
+
"opp__long_mean__pvAdded_total__opp",
|
| 1479 |
+
"opp__long_mean__recoveries_total",
|
| 1480 |
+
"opp__long_mean__short_long_pass_ratio",
|
| 1481 |
+
"opp__long_mean__shots_total",
|
| 1482 |
+
"opp__long_mean__shots_total__opp",
|
| 1483 |
+
"opp__long_mean__zone_actions__Creativity_Zone",
|
| 1484 |
+
"opp__long_mean__zone_actions__Creativity_Zone__opp",
|
| 1485 |
+
"opp__long_mean__zone_actions__Cross__Der_",
|
| 1486 |
+
"opp__long_mean__zone_actions__Cross__Der___opp",
|
| 1487 |
+
"opp__long_mean__zone_actions__Cross__Izq_",
|
| 1488 |
+
"opp__long_mean__zone_actions__Cross__Izq___opp",
|
| 1489 |
+
"opp__long_mean__zone_actions__Cut_Back__Der_",
|
| 1490 |
+
"opp__long_mean__zone_actions__Cut_Back__Der___opp",
|
| 1491 |
+
"opp__long_mean__zone_actions__Cut_Back__Izq_",
|
| 1492 |
+
"opp__long_mean__zone_actions__Cut_Back__Izq___opp",
|
| 1493 |
+
"opp__long_mean__zone_actions__Deep_Cross__Der_",
|
| 1494 |
+
"opp__long_mean__zone_actions__Deep_Cross__Der___opp",
|
| 1495 |
+
"opp__long_mean__zone_actions__Deep_Cross__Izq_",
|
| 1496 |
+
"opp__long_mean__zone_actions__Deep_Cross__Izq___opp",
|
| 1497 |
+
"opp__long_mean__zone_actions__Half_Space__Der_",
|
| 1498 |
+
"opp__long_mean__zone_actions__Half_Space__Der___opp",
|
| 1499 |
+
"opp__long_mean__zone_actions__Half_Space__Izq_",
|
| 1500 |
+
"opp__long_mean__zone_actions__Half_Space__Izq___opp",
|
| 1501 |
+
"opp__long_mean__zone_actions__Scoring_Zone",
|
| 1502 |
+
"opp__long_mean__zone_actions__Scoring_Zone__opp",
|
| 1503 |
+
"opp__long_mean__zone_linesBroken__Creativity_Zone",
|
| 1504 |
+
"opp__long_mean__zone_linesBroken__Cross__Der_",
|
| 1505 |
+
"opp__long_mean__zone_linesBroken__Cross__Izq_",
|
| 1506 |
+
"opp__long_mean__zone_linesBroken__Cut_Back__Der_",
|
| 1507 |
+
"opp__long_mean__zone_linesBroken__Cut_Back__Izq_",
|
| 1508 |
+
"opp__long_mean__zone_linesBroken__Deep_Cross__Der_",
|
| 1509 |
+
"opp__long_mean__zone_linesBroken__Deep_Cross__Izq_",
|
| 1510 |
+
"opp__long_mean__zone_linesBroken__Half_Space__Der_",
|
| 1511 |
+
"opp__long_mean__zone_linesBroken__Half_Space__Izq_",
|
| 1512 |
+
"opp__long_mean__zone_linesBroken__Scoring_Zone",
|
| 1513 |
+
"opp__long_mean__zone_pvAdded__Creativity_Zone",
|
| 1514 |
+
"opp__long_mean__zone_pvAdded__Creativity_Zone__opp",
|
| 1515 |
+
"opp__long_mean__zone_pvAdded__Cross__Der_",
|
| 1516 |
+
"opp__long_mean__zone_pvAdded__Cross__Der___opp",
|
| 1517 |
+
"opp__long_mean__zone_pvAdded__Cross__Izq_",
|
| 1518 |
+
"opp__long_mean__zone_pvAdded__Cross__Izq___opp",
|
| 1519 |
+
"opp__long_mean__zone_pvAdded__Cut_Back__Der_",
|
| 1520 |
+
"opp__long_mean__zone_pvAdded__Cut_Back__Der___opp",
|
| 1521 |
+
"opp__long_mean__zone_pvAdded__Cut_Back__Izq_",
|
| 1522 |
+
"opp__long_mean__zone_pvAdded__Cut_Back__Izq___opp",
|
| 1523 |
+
"opp__long_mean__zone_pvAdded__Deep_Cross__Der_",
|
| 1524 |
+
"opp__long_mean__zone_pvAdded__Deep_Cross__Der___opp",
|
| 1525 |
+
"opp__long_mean__zone_pvAdded__Deep_Cross__Izq_",
|
| 1526 |
+
"opp__long_mean__zone_pvAdded__Deep_Cross__Izq___opp",
|
| 1527 |
+
"opp__long_mean__zone_pvAdded__Half_Space__Der_",
|
| 1528 |
+
"opp__long_mean__zone_pvAdded__Half_Space__Der___opp",
|
| 1529 |
+
"opp__long_mean__zone_pvAdded__Half_Space__Izq_",
|
| 1530 |
+
"opp__long_mean__zone_pvAdded__Half_Space__Izq___opp",
|
| 1531 |
+
"opp__long_mean__zone_pvAdded__Scoring_Zone",
|
| 1532 |
+
"opp__long_mean__zone_pvAdded__Scoring_Zone__opp",
|
| 1533 |
+
"opp__long_mean__zone_pvAdded_shots__Creativity_Zone",
|
| 1534 |
+
"opp__long_mean__zone_pvAdded_shots__Cross__Der_",
|
| 1535 |
+
"opp__long_mean__zone_pvAdded_shots__Cross__Izq_",
|
| 1536 |
+
"opp__long_mean__zone_pvAdded_shots__Cut_Back__Der_",
|
| 1537 |
+
"opp__long_mean__zone_pvAdded_shots__Cut_Back__Izq_",
|
| 1538 |
+
"opp__long_mean__zone_pvAdded_shots__Deep_Cross__Der_",
|
| 1539 |
+
"opp__long_mean__zone_pvAdded_shots__Deep_Cross__Izq_",
|
| 1540 |
+
"opp__long_mean__zone_pvAdded_shots__Half_Space__Der_",
|
| 1541 |
+
"opp__long_mean__zone_pvAdded_shots__Half_Space__Izq_",
|
| 1542 |
+
"opp__long_mean__zone_pvAdded_shots__Scoring_Zone",
|
| 1543 |
+
"opp__long_std__actual_press_share__x0_y0",
|
| 1544 |
+
"opp__long_std__actual_press_share__x0_y1",
|
| 1545 |
+
"opp__long_std__actual_press_share__x0_y2",
|
| 1546 |
+
"opp__long_std__actual_press_share__x1_y0",
|
| 1547 |
+
"opp__long_std__actual_press_share__x1_y1",
|
| 1548 |
+
"opp__long_std__actual_press_share__x1_y2",
|
| 1549 |
+
"opp__long_std__actual_press_share__x2_y0",
|
| 1550 |
+
"opp__long_std__actual_press_share__x2_y1",
|
| 1551 |
+
"opp__long_std__actual_press_share__x2_y2",
|
| 1552 |
+
"opp__long_std__actual_press_share__x3_y0",
|
| 1553 |
+
"opp__long_std__actual_press_share__x3_y1",
|
| 1554 |
+
"opp__long_std__actual_press_share__x3_y2",
|
| 1555 |
+
"opp__long_std__actual_recovery_share__x0_y0",
|
| 1556 |
+
"opp__long_std__actual_recovery_share__x0_y1",
|
| 1557 |
+
"opp__long_std__actual_recovery_share__x0_y2",
|
| 1558 |
+
"opp__long_std__actual_recovery_share__x1_y0",
|
| 1559 |
+
"opp__long_std__actual_recovery_share__x1_y1",
|
| 1560 |
+
"opp__long_std__actual_recovery_share__x1_y2",
|
| 1561 |
+
"opp__long_std__actual_recovery_share__x2_y0",
|
| 1562 |
+
"opp__long_std__actual_recovery_share__x2_y1",
|
| 1563 |
+
"opp__long_std__actual_recovery_share__x2_y2",
|
| 1564 |
+
"opp__long_std__actual_recovery_share__x3_y0",
|
| 1565 |
+
"opp__long_std__actual_recovery_share__x3_y1",
|
| 1566 |
+
"opp__long_std__actual_recovery_share__x3_y2",
|
| 1567 |
+
"opp__short_mean__actual_attack_share__Creativity_Zone",
|
| 1568 |
+
"opp__short_mean__actual_attack_share__Cross__Der_",
|
| 1569 |
+
"opp__short_mean__actual_attack_share__Cross__Izq_",
|
| 1570 |
+
"opp__short_mean__actual_attack_share__Cut_Back__Der_",
|
| 1571 |
+
"opp__short_mean__actual_attack_share__Cut_Back__Izq_",
|
| 1572 |
+
"opp__short_mean__actual_attack_share__Deep_Cross__Der_",
|
| 1573 |
+
"opp__short_mean__actual_attack_share__Deep_Cross__Izq_",
|
| 1574 |
+
"opp__short_mean__actual_attack_share__Half_Space__Der_",
|
| 1575 |
+
"opp__short_mean__actual_attack_share__Half_Space__Izq_",
|
| 1576 |
+
"opp__short_mean__actual_attack_share__Scoring_Zone",
|
| 1577 |
+
"opp__short_mean__actual_conceded_attack_share__Creativity_Zone",
|
| 1578 |
+
"opp__short_mean__actual_conceded_attack_share__Cross__Der_",
|
| 1579 |
+
"opp__short_mean__actual_conceded_attack_share__Cross__Izq_",
|
| 1580 |
+
"opp__short_mean__actual_conceded_attack_share__Cut_Back__Der_",
|
| 1581 |
+
"opp__short_mean__actual_conceded_attack_share__Cut_Back__Izq_",
|
| 1582 |
+
"opp__short_mean__actual_conceded_attack_share__Deep_Cross__Der_",
|
| 1583 |
+
"opp__short_mean__actual_conceded_attack_share__Deep_Cross__Izq_",
|
| 1584 |
+
"opp__short_mean__actual_conceded_attack_share__Half_Space__Der_",
|
| 1585 |
+
"opp__short_mean__actual_conceded_attack_share__Half_Space__Izq_",
|
| 1586 |
+
"opp__short_mean__actual_conceded_attack_share__Scoring_Zone",
|
| 1587 |
+
"opp__short_mean__actual_conceded_pv_share__Creativity_Zone",
|
| 1588 |
+
"opp__short_mean__actual_conceded_pv_share__Cross__Der_",
|
| 1589 |
+
"opp__short_mean__actual_conceded_pv_share__Cross__Izq_",
|
| 1590 |
+
"opp__short_mean__actual_conceded_pv_share__Cut_Back__Der_",
|
| 1591 |
+
"opp__short_mean__actual_conceded_pv_share__Cut_Back__Izq_",
|
| 1592 |
+
"opp__short_mean__actual_conceded_pv_share__Deep_Cross__Der_",
|
| 1593 |
+
"opp__short_mean__actual_conceded_pv_share__Deep_Cross__Izq_",
|
| 1594 |
+
"opp__short_mean__actual_conceded_pv_share__Half_Space__Der_",
|
| 1595 |
+
"opp__short_mean__actual_conceded_pv_share__Half_Space__Izq_",
|
| 1596 |
+
"opp__short_mean__actual_conceded_pv_share__Scoring_Zone",
|
| 1597 |
+
"opp__short_mean__actual_press_share__x0_y0",
|
| 1598 |
+
"opp__short_mean__actual_press_share__x0_y1",
|
| 1599 |
+
"opp__short_mean__actual_press_share__x0_y2",
|
| 1600 |
+
"opp__short_mean__actual_press_share__x1_y0",
|
| 1601 |
+
"opp__short_mean__actual_press_share__x1_y1",
|
| 1602 |
+
"opp__short_mean__actual_press_share__x1_y2",
|
| 1603 |
+
"opp__short_mean__actual_press_share__x2_y0",
|
| 1604 |
+
"opp__short_mean__actual_press_share__x2_y1",
|
| 1605 |
+
"opp__short_mean__actual_press_share__x2_y2",
|
| 1606 |
+
"opp__short_mean__actual_press_share__x3_y0",
|
| 1607 |
+
"opp__short_mean__actual_press_share__x3_y1",
|
| 1608 |
+
"opp__short_mean__actual_press_share__x3_y2",
|
| 1609 |
+
"opp__short_mean__actual_pv_share__Creativity_Zone",
|
| 1610 |
+
"opp__short_mean__actual_pv_share__Cross__Der_",
|
| 1611 |
+
"opp__short_mean__actual_pv_share__Cross__Izq_",
|
| 1612 |
+
"opp__short_mean__actual_pv_share__Cut_Back__Der_",
|
| 1613 |
+
"opp__short_mean__actual_pv_share__Cut_Back__Izq_",
|
| 1614 |
+
"opp__short_mean__actual_pv_share__Deep_Cross__Der_",
|
| 1615 |
+
"opp__short_mean__actual_pv_share__Deep_Cross__Izq_",
|
| 1616 |
+
"opp__short_mean__actual_pv_share__Half_Space__Der_",
|
| 1617 |
+
"opp__short_mean__actual_pv_share__Half_Space__Izq_",
|
| 1618 |
+
"opp__short_mean__actual_pv_share__Scoring_Zone",
|
| 1619 |
+
"opp__short_mean__actual_recovery_share__x0_y0",
|
| 1620 |
+
"opp__short_mean__actual_recovery_share__x0_y1",
|
| 1621 |
+
"opp__short_mean__actual_recovery_share__x0_y2",
|
| 1622 |
+
"opp__short_mean__actual_recovery_share__x1_y0",
|
| 1623 |
+
"opp__short_mean__actual_recovery_share__x1_y1",
|
| 1624 |
+
"opp__short_mean__actual_recovery_share__x1_y2",
|
| 1625 |
+
"opp__short_mean__actual_recovery_share__x2_y0",
|
| 1626 |
+
"opp__short_mean__actual_recovery_share__x2_y1",
|
| 1627 |
+
"opp__short_mean__actual_recovery_share__x2_y2",
|
| 1628 |
+
"opp__short_mean__actual_recovery_share__x3_y0",
|
| 1629 |
+
"opp__short_mean__actual_recovery_share__x3_y1",
|
| 1630 |
+
"opp__short_mean__actual_recovery_share__x3_y2",
|
| 1631 |
+
"opp__short_mean__goals_against",
|
| 1632 |
+
"opp__short_mean__goals_for",
|
| 1633 |
+
"opp__short_mean__goals_for__opp",
|
| 1634 |
+
"opp__short_mean__interception_cnt__x0_y0",
|
| 1635 |
+
"opp__short_mean__interception_cnt__x0_y1",
|
| 1636 |
+
"opp__short_mean__interception_cnt__x0_y2",
|
| 1637 |
+
"opp__short_mean__interception_cnt__x1_y0",
|
| 1638 |
+
"opp__short_mean__interception_cnt__x1_y1",
|
| 1639 |
+
"opp__short_mean__interception_cnt__x1_y2",
|
| 1640 |
+
"opp__short_mean__interception_cnt__x2_y0",
|
| 1641 |
+
"opp__short_mean__interception_cnt__x2_y1",
|
| 1642 |
+
"opp__short_mean__interception_cnt__x2_y2",
|
| 1643 |
+
"opp__short_mean__interception_cnt__x3_y0",
|
| 1644 |
+
"opp__short_mean__interception_cnt__x3_y1",
|
| 1645 |
+
"opp__short_mean__interception_cnt__x3_y2",
|
| 1646 |
+
"opp__short_mean__linesBroken_total",
|
| 1647 |
+
"opp__short_mean__mf__acciones_defensivas_en_ofensiva",
|
| 1648 |
+
"opp__short_mean__mf__acciones_defensivas_totales",
|
| 1649 |
+
"opp__short_mean__mf__altura_media_recuperacion",
|
| 1650 |
+
"opp__short_mean__mf__ancho_promedio_m_por_posesion",
|
| 1651 |
+
"opp__short_mean__mf__attack_zone_pvAdded__Creativity Zone",
|
| 1652 |
+
"opp__short_mean__mf__attack_zone_pvAdded__Cross (Der)",
|
| 1653 |
+
"opp__short_mean__mf__attack_zone_pvAdded__Cross (Izq)",
|
| 1654 |
+
"opp__short_mean__mf__attack_zone_pvAdded__Cut-Back (Der)",
|
| 1655 |
+
"opp__short_mean__mf__attack_zone_pvAdded__Cut-Back (Izq)",
|
| 1656 |
+
"opp__short_mean__mf__attack_zone_pvAdded__Deep Cross (Der)",
|
| 1657 |
+
"opp__short_mean__mf__attack_zone_pvAdded__Deep Cross (Izq)",
|
| 1658 |
+
"opp__short_mean__mf__attack_zone_pvAdded__Half-Space (Der)",
|
| 1659 |
+
"opp__short_mean__mf__attack_zone_pvAdded__Half-Space (Izq)",
|
| 1660 |
+
"opp__short_mean__mf__attack_zone_pvAdded__Scoring Zone",
|
| 1661 |
+
"opp__short_mean__mf__attack_zone_pvAdded__Security Behind",
|
| 1662 |
+
"opp__short_mean__mf__attack_zone_share__Creativity Zone",
|
| 1663 |
+
"opp__short_mean__mf__attack_zone_share__Cross (Der)",
|
| 1664 |
+
"opp__short_mean__mf__attack_zone_share__Cross (Izq)",
|
| 1665 |
+
"opp__short_mean__mf__attack_zone_share__Cut-Back (Der)",
|
| 1666 |
+
"opp__short_mean__mf__attack_zone_share__Cut-Back (Izq)",
|
| 1667 |
+
"opp__short_mean__mf__attack_zone_share__Deep Cross (Der)",
|
| 1668 |
+
"opp__short_mean__mf__attack_zone_share__Deep Cross (Izq)",
|
| 1669 |
+
"opp__short_mean__mf__attack_zone_share__Half-Space (Der)",
|
| 1670 |
+
"opp__short_mean__mf__attack_zone_share__Half-Space (Izq)",
|
| 1671 |
+
"opp__short_mean__mf__attack_zone_share__Scoring Zone",
|
| 1672 |
+
"opp__short_mean__mf__attack_zone_share__Security Behind",
|
| 1673 |
+
"opp__short_mean__mf__avg_end_x_pass",
|
| 1674 |
+
"opp__short_mean__mf__big_chances_generadas",
|
| 1675 |
+
"opp__short_mean__mf__centros_totales_ultimo_tercio",
|
| 1676 |
+
"opp__short_mean__mf__counter_press_recovery",
|
| 1677 |
+
"opp__short_mean__mf__cross_share_last3",
|
| 1678 |
+
"opp__short_mean__mf__final3_success",
|
| 1679 |
+
"opp__short_mean__mf__high_recov_share",
|
| 1680 |
+
"opp__short_mean__mf__pases_area",
|
| 1681 |
+
"opp__short_mean__mf__pases_progresivos_sobre_pases",
|
| 1682 |
+
"opp__short_mean__mf__pases_prom_secuencia",
|
| 1683 |
+
"opp__short_mean__mf__pases_totales_ultimo_tercio",
|
| 1684 |
+
"opp__short_mean__mf__passes_per_loss",
|
| 1685 |
+
"opp__short_mean__mf__passes_per_shot",
|
| 1686 |
+
"opp__short_mean__mf__pct_centros_pases_totales_ultimo_tercio",
|
| 1687 |
+
"opp__short_mean__mf__pct_pases_largos",
|
| 1688 |
+
"opp__short_mean__mf__possession_nunique",
|
| 1689 |
+
"opp__short_mean__mf__ppda",
|
| 1690 |
+
"opp__short_mean__mf__ppda_inv",
|
| 1691 |
+
"opp__short_mean__mf__press_cnt__x0_y0",
|
| 1692 |
+
"opp__short_mean__mf__press_cnt__x0_y1",
|
| 1693 |
+
"opp__short_mean__mf__press_cnt__x0_y2",
|
| 1694 |
+
"opp__short_mean__mf__press_cnt__x1_y0",
|
| 1695 |
+
"opp__short_mean__mf__press_cnt__x1_y1",
|
| 1696 |
+
"opp__short_mean__mf__press_cnt__x1_y2",
|
| 1697 |
+
"opp__short_mean__mf__press_cnt__x2_y0",
|
| 1698 |
+
"opp__short_mean__mf__press_cnt__x2_y1",
|
| 1699 |
+
"opp__short_mean__mf__press_cnt__x2_y2",
|
| 1700 |
+
"opp__short_mean__mf__press_cnt__x3_y0",
|
| 1701 |
+
"opp__short_mean__mf__press_cnt__x3_y1",
|
| 1702 |
+
"opp__short_mean__mf__press_cnt__x3_y2",
|
| 1703 |
+
"opp__short_mean__mf__press_int_sum__x0_y0",
|
| 1704 |
+
"opp__short_mean__mf__press_int_sum__x0_y1",
|
| 1705 |
+
"opp__short_mean__mf__press_int_sum__x0_y2",
|
| 1706 |
+
"opp__short_mean__mf__press_int_sum__x1_y0",
|
| 1707 |
+
"opp__short_mean__mf__press_int_sum__x1_y1",
|
| 1708 |
+
"opp__short_mean__mf__press_int_sum__x1_y2",
|
| 1709 |
+
"opp__short_mean__mf__press_int_sum__x2_y0",
|
| 1710 |
+
"opp__short_mean__mf__press_int_sum__x2_y1",
|
| 1711 |
+
"opp__short_mean__mf__press_int_sum__x2_y2",
|
| 1712 |
+
"opp__short_mean__mf__press_int_sum__x3_y0",
|
| 1713 |
+
"opp__short_mean__mf__press_int_sum__x3_y1",
|
| 1714 |
+
"opp__short_mean__mf__press_int_sum__x3_y2",
|
| 1715 |
+
"opp__short_mean__mf__pressure_intensity_sum",
|
| 1716 |
+
"opp__short_mean__mf__pressures",
|
| 1717 |
+
"opp__short_mean__mf__progresion_promedio_m_por_posesion",
|
| 1718 |
+
"opp__short_mean__mf__pvAdded_sum",
|
| 1719 |
+
"opp__short_mean__mf__pvValue_sum",
|
| 1720 |
+
"opp__short_mean__mf__recepciones_area",
|
| 1721 |
+
"opp__short_mean__mf__recov_cnt__x0_y0",
|
| 1722 |
+
"opp__short_mean__mf__recov_cnt__x0_y1",
|
| 1723 |
+
"opp__short_mean__mf__recov_cnt__x0_y2",
|
| 1724 |
+
"opp__short_mean__mf__recov_cnt__x1_y0",
|
| 1725 |
+
"opp__short_mean__mf__recov_cnt__x1_y1",
|
| 1726 |
+
"opp__short_mean__mf__recov_cnt__x1_y2",
|
| 1727 |
+
"opp__short_mean__mf__recov_cnt__x2_y0",
|
| 1728 |
+
"opp__short_mean__mf__recov_cnt__x2_y1",
|
| 1729 |
+
"opp__short_mean__mf__recov_cnt__x2_y2",
|
| 1730 |
+
"opp__short_mean__mf__recov_cnt__x3_y0",
|
| 1731 |
+
"opp__short_mean__mf__recov_cnt__x3_y1",
|
| 1732 |
+
"opp__short_mean__mf__recov_cnt__x3_y2",
|
| 1733 |
+
"opp__short_mean__mf__recuperaciones_campo_propio",
|
| 1734 |
+
"opp__short_mean__mf__recuperaciones_campo_rival",
|
| 1735 |
+
"opp__short_mean__mf__ritmo_circulacion_pases_por_min",
|
| 1736 |
+
"opp__short_mean__mf__shots",
|
| 1737 |
+
"opp__short_mean__mf__shots_on_target",
|
| 1738 |
+
"opp__short_mean__mf__tiros_area_grande",
|
| 1739 |
+
"opp__short_mean__mf__tiros_area_pequeña",
|
| 1740 |
+
"opp__short_mean__mf__tiros_fuera_de_area",
|
| 1741 |
+
"opp__short_mean__mf__touches_area",
|
| 1742 |
+
"opp__short_mean__mf__xg_por_tiro",
|
| 1743 |
+
"opp__short_mean__mf__xg_suma_tiros",
|
| 1744 |
+
"opp__short_mean__passes_long",
|
| 1745 |
+
"opp__short_mean__passes_per_possession",
|
| 1746 |
+
"opp__short_mean__passes_short",
|
| 1747 |
+
"opp__short_mean__passes_total",
|
| 1748 |
+
"opp__short_mean__possessions_nunique",
|
| 1749 |
+
"opp__short_mean__press_cnt__x0_y0",
|
| 1750 |
+
"opp__short_mean__press_cnt__x0_y1",
|
| 1751 |
+
"opp__short_mean__press_cnt__x0_y2",
|
| 1752 |
+
"opp__short_mean__press_cnt__x1_y0",
|
| 1753 |
+
"opp__short_mean__press_cnt__x1_y1",
|
| 1754 |
+
"opp__short_mean__press_cnt__x1_y2",
|
| 1755 |
+
"opp__short_mean__press_cnt__x2_y0",
|
| 1756 |
+
"opp__short_mean__press_cnt__x2_y1",
|
| 1757 |
+
"opp__short_mean__press_cnt__x2_y2",
|
| 1758 |
+
"opp__short_mean__press_cnt__x3_y0",
|
| 1759 |
+
"opp__short_mean__press_cnt__x3_y1",
|
| 1760 |
+
"opp__short_mean__press_cnt__x3_y2",
|
| 1761 |
+
"opp__short_mean__pressures_total",
|
| 1762 |
+
"opp__short_mean__pvAdded_total",
|
| 1763 |
+
"opp__short_mean__pvAdded_total__opp",
|
| 1764 |
+
"opp__short_mean__recoveries_total",
|
| 1765 |
+
"opp__short_mean__short_long_pass_ratio",
|
| 1766 |
+
"opp__short_mean__shots_total",
|
| 1767 |
+
"opp__short_mean__shots_total__opp",
|
| 1768 |
+
"opp__short_mean__zone_actions__Creativity_Zone",
|
| 1769 |
+
"opp__short_mean__zone_actions__Creativity_Zone__opp",
|
| 1770 |
+
"opp__short_mean__zone_actions__Cross__Der_",
|
| 1771 |
+
"opp__short_mean__zone_actions__Cross__Der___opp",
|
| 1772 |
+
"opp__short_mean__zone_actions__Cross__Izq_",
|
| 1773 |
+
"opp__short_mean__zone_actions__Cross__Izq___opp",
|
| 1774 |
+
"opp__short_mean__zone_actions__Cut_Back__Der_",
|
| 1775 |
+
"opp__short_mean__zone_actions__Cut_Back__Der___opp",
|
| 1776 |
+
"opp__short_mean__zone_actions__Cut_Back__Izq_",
|
| 1777 |
+
"opp__short_mean__zone_actions__Cut_Back__Izq___opp",
|
| 1778 |
+
"opp__short_mean__zone_actions__Deep_Cross__Der_",
|
| 1779 |
+
"opp__short_mean__zone_actions__Deep_Cross__Der___opp",
|
| 1780 |
+
"opp__short_mean__zone_actions__Deep_Cross__Izq_",
|
| 1781 |
+
"opp__short_mean__zone_actions__Deep_Cross__Izq___opp",
|
| 1782 |
+
"opp__short_mean__zone_actions__Half_Space__Der_",
|
| 1783 |
+
"opp__short_mean__zone_actions__Half_Space__Der___opp",
|
| 1784 |
+
"opp__short_mean__zone_actions__Half_Space__Izq_",
|
| 1785 |
+
"opp__short_mean__zone_actions__Half_Space__Izq___opp",
|
| 1786 |
+
"opp__short_mean__zone_actions__Scoring_Zone",
|
| 1787 |
+
"opp__short_mean__zone_actions__Scoring_Zone__opp",
|
| 1788 |
+
"opp__short_mean__zone_linesBroken__Creativity_Zone",
|
| 1789 |
+
"opp__short_mean__zone_linesBroken__Cross__Der_",
|
| 1790 |
+
"opp__short_mean__zone_linesBroken__Cross__Izq_",
|
| 1791 |
+
"opp__short_mean__zone_linesBroken__Cut_Back__Der_",
|
| 1792 |
+
"opp__short_mean__zone_linesBroken__Cut_Back__Izq_",
|
| 1793 |
+
"opp__short_mean__zone_linesBroken__Deep_Cross__Der_",
|
| 1794 |
+
"opp__short_mean__zone_linesBroken__Deep_Cross__Izq_",
|
| 1795 |
+
"opp__short_mean__zone_linesBroken__Half_Space__Der_",
|
| 1796 |
+
"opp__short_mean__zone_linesBroken__Half_Space__Izq_",
|
| 1797 |
+
"opp__short_mean__zone_linesBroken__Scoring_Zone",
|
| 1798 |
+
"opp__short_mean__zone_pvAdded__Creativity_Zone",
|
| 1799 |
+
"opp__short_mean__zone_pvAdded__Creativity_Zone__opp",
|
| 1800 |
+
"opp__short_mean__zone_pvAdded__Cross__Der_",
|
| 1801 |
+
"opp__short_mean__zone_pvAdded__Cross__Der___opp",
|
| 1802 |
+
"opp__short_mean__zone_pvAdded__Cross__Izq_",
|
| 1803 |
+
"opp__short_mean__zone_pvAdded__Cross__Izq___opp",
|
| 1804 |
+
"opp__short_mean__zone_pvAdded__Cut_Back__Der_",
|
| 1805 |
+
"opp__short_mean__zone_pvAdded__Cut_Back__Der___opp",
|
| 1806 |
+
"opp__short_mean__zone_pvAdded__Cut_Back__Izq_",
|
| 1807 |
+
"opp__short_mean__zone_pvAdded__Cut_Back__Izq___opp",
|
| 1808 |
+
"opp__short_mean__zone_pvAdded__Deep_Cross__Der_",
|
| 1809 |
+
"opp__short_mean__zone_pvAdded__Deep_Cross__Der___opp",
|
| 1810 |
+
"opp__short_mean__zone_pvAdded__Deep_Cross__Izq_",
|
| 1811 |
+
"opp__short_mean__zone_pvAdded__Deep_Cross__Izq___opp",
|
| 1812 |
+
"opp__short_mean__zone_pvAdded__Half_Space__Der_",
|
| 1813 |
+
"opp__short_mean__zone_pvAdded__Half_Space__Der___opp",
|
| 1814 |
+
"opp__short_mean__zone_pvAdded__Half_Space__Izq_",
|
| 1815 |
+
"opp__short_mean__zone_pvAdded__Half_Space__Izq___opp",
|
| 1816 |
+
"opp__short_mean__zone_pvAdded__Scoring_Zone",
|
| 1817 |
+
"opp__short_mean__zone_pvAdded__Scoring_Zone__opp",
|
| 1818 |
+
"opp__short_mean__zone_pvAdded_shots__Creativity_Zone",
|
| 1819 |
+
"opp__short_mean__zone_pvAdded_shots__Cross__Der_",
|
| 1820 |
+
"opp__short_mean__zone_pvAdded_shots__Cross__Izq_",
|
| 1821 |
+
"opp__short_mean__zone_pvAdded_shots__Cut_Back__Der_",
|
| 1822 |
+
"opp__short_mean__zone_pvAdded_shots__Cut_Back__Izq_",
|
| 1823 |
+
"opp__short_mean__zone_pvAdded_shots__Deep_Cross__Der_",
|
| 1824 |
+
"opp__short_mean__zone_pvAdded_shots__Deep_Cross__Izq_",
|
| 1825 |
+
"opp__short_mean__zone_pvAdded_shots__Half_Space__Der_",
|
| 1826 |
+
"opp__short_mean__zone_pvAdded_shots__Half_Space__Izq_",
|
| 1827 |
+
"opp__short_mean__zone_pvAdded_shots__Scoring_Zone",
|
| 1828 |
+
"short_mean__actual_attack_share__Creativity_Zone",
|
| 1829 |
+
"short_mean__actual_attack_share__Cross__Der_",
|
| 1830 |
+
"short_mean__actual_attack_share__Cross__Izq_",
|
| 1831 |
+
"short_mean__actual_attack_share__Cut_Back__Der_",
|
| 1832 |
+
"short_mean__actual_attack_share__Cut_Back__Izq_",
|
| 1833 |
+
"short_mean__actual_attack_share__Deep_Cross__Der_",
|
| 1834 |
+
"short_mean__actual_attack_share__Deep_Cross__Izq_",
|
| 1835 |
+
"short_mean__actual_attack_share__Half_Space__Der_",
|
| 1836 |
+
"short_mean__actual_attack_share__Half_Space__Izq_",
|
| 1837 |
+
"short_mean__actual_attack_share__Scoring_Zone",
|
| 1838 |
+
"short_mean__actual_conceded_attack_share__Creativity_Zone",
|
| 1839 |
+
"short_mean__actual_conceded_attack_share__Cross__Der_",
|
| 1840 |
+
"short_mean__actual_conceded_attack_share__Cross__Izq_",
|
| 1841 |
+
"short_mean__actual_conceded_attack_share__Cut_Back__Der_",
|
| 1842 |
+
"short_mean__actual_conceded_attack_share__Cut_Back__Izq_",
|
| 1843 |
+
"short_mean__actual_conceded_attack_share__Deep_Cross__Der_",
|
| 1844 |
+
"short_mean__actual_conceded_attack_share__Deep_Cross__Izq_",
|
| 1845 |
+
"short_mean__actual_conceded_attack_share__Half_Space__Der_",
|
| 1846 |
+
"short_mean__actual_conceded_attack_share__Half_Space__Izq_",
|
| 1847 |
+
"short_mean__actual_conceded_attack_share__Scoring_Zone",
|
| 1848 |
+
"short_mean__actual_conceded_pv_share__Creativity_Zone",
|
| 1849 |
+
"short_mean__actual_conceded_pv_share__Cross__Der_",
|
| 1850 |
+
"short_mean__actual_conceded_pv_share__Cross__Izq_",
|
| 1851 |
+
"short_mean__actual_conceded_pv_share__Cut_Back__Der_",
|
| 1852 |
+
"short_mean__actual_conceded_pv_share__Cut_Back__Izq_",
|
| 1853 |
+
"short_mean__actual_conceded_pv_share__Deep_Cross__Der_",
|
| 1854 |
+
"short_mean__actual_conceded_pv_share__Deep_Cross__Izq_",
|
| 1855 |
+
"short_mean__actual_conceded_pv_share__Half_Space__Der_",
|
| 1856 |
+
"short_mean__actual_conceded_pv_share__Half_Space__Izq_",
|
| 1857 |
+
"short_mean__actual_conceded_pv_share__Scoring_Zone",
|
| 1858 |
+
"short_mean__actual_press_share__x0_y0",
|
| 1859 |
+
"short_mean__actual_press_share__x0_y1",
|
| 1860 |
+
"short_mean__actual_press_share__x0_y2",
|
| 1861 |
+
"short_mean__actual_press_share__x1_y0",
|
| 1862 |
+
"short_mean__actual_press_share__x1_y1",
|
| 1863 |
+
"short_mean__actual_press_share__x1_y2",
|
| 1864 |
+
"short_mean__actual_press_share__x2_y0",
|
| 1865 |
+
"short_mean__actual_press_share__x2_y1",
|
| 1866 |
+
"short_mean__actual_press_share__x2_y2",
|
| 1867 |
+
"short_mean__actual_press_share__x3_y0",
|
| 1868 |
+
"short_mean__actual_press_share__x3_y1",
|
| 1869 |
+
"short_mean__actual_press_share__x3_y2",
|
| 1870 |
+
"short_mean__actual_pv_share__Creativity_Zone",
|
| 1871 |
+
"short_mean__actual_pv_share__Cross__Der_",
|
| 1872 |
+
"short_mean__actual_pv_share__Cross__Izq_",
|
| 1873 |
+
"short_mean__actual_pv_share__Cut_Back__Der_",
|
| 1874 |
+
"short_mean__actual_pv_share__Cut_Back__Izq_",
|
| 1875 |
+
"short_mean__actual_pv_share__Deep_Cross__Der_",
|
| 1876 |
+
"short_mean__actual_pv_share__Deep_Cross__Izq_",
|
| 1877 |
+
"short_mean__actual_pv_share__Half_Space__Der_",
|
| 1878 |
+
"short_mean__actual_pv_share__Half_Space__Izq_",
|
| 1879 |
+
"short_mean__actual_pv_share__Scoring_Zone",
|
| 1880 |
+
"short_mean__actual_recovery_share__x0_y0",
|
| 1881 |
+
"short_mean__actual_recovery_share__x0_y1",
|
| 1882 |
+
"short_mean__actual_recovery_share__x0_y2",
|
| 1883 |
+
"short_mean__actual_recovery_share__x1_y0",
|
| 1884 |
+
"short_mean__actual_recovery_share__x1_y1",
|
| 1885 |
+
"short_mean__actual_recovery_share__x1_y2",
|
| 1886 |
+
"short_mean__actual_recovery_share__x2_y0",
|
| 1887 |
+
"short_mean__actual_recovery_share__x2_y1",
|
| 1888 |
+
"short_mean__actual_recovery_share__x2_y2",
|
| 1889 |
+
"short_mean__actual_recovery_share__x3_y0",
|
| 1890 |
+
"short_mean__actual_recovery_share__x3_y1",
|
| 1891 |
+
"short_mean__actual_recovery_share__x3_y2",
|
| 1892 |
+
"short_mean__goals_against",
|
| 1893 |
+
"short_mean__goals_for",
|
| 1894 |
+
"short_mean__goals_for__opp",
|
| 1895 |
+
"short_mean__interception_cnt__x0_y0",
|
| 1896 |
+
"short_mean__interception_cnt__x0_y1",
|
| 1897 |
+
"short_mean__interception_cnt__x0_y2",
|
| 1898 |
+
"short_mean__interception_cnt__x1_y0",
|
| 1899 |
+
"short_mean__interception_cnt__x1_y1",
|
| 1900 |
+
"short_mean__interception_cnt__x1_y2",
|
| 1901 |
+
"short_mean__interception_cnt__x2_y0",
|
| 1902 |
+
"short_mean__interception_cnt__x2_y1",
|
| 1903 |
+
"short_mean__interception_cnt__x2_y2",
|
| 1904 |
+
"short_mean__interception_cnt__x3_y0",
|
| 1905 |
+
"short_mean__interception_cnt__x3_y1",
|
| 1906 |
+
"short_mean__interception_cnt__x3_y2",
|
| 1907 |
+
"short_mean__linesBroken_total",
|
| 1908 |
+
"short_mean__mf__acciones_defensivas_en_ofensiva",
|
| 1909 |
+
"short_mean__mf__acciones_defensivas_totales",
|
| 1910 |
+
"short_mean__mf__altura_media_recuperacion",
|
| 1911 |
+
"short_mean__mf__ancho_promedio_m_por_posesion",
|
| 1912 |
+
"short_mean__mf__attack_zone_pvAdded__Creativity Zone",
|
| 1913 |
+
"short_mean__mf__attack_zone_pvAdded__Cross (Der)",
|
| 1914 |
+
"short_mean__mf__attack_zone_pvAdded__Cross (Izq)",
|
| 1915 |
+
"short_mean__mf__attack_zone_pvAdded__Cut-Back (Der)",
|
| 1916 |
+
"short_mean__mf__attack_zone_pvAdded__Cut-Back (Izq)",
|
| 1917 |
+
"short_mean__mf__attack_zone_pvAdded__Deep Cross (Der)",
|
| 1918 |
+
"short_mean__mf__attack_zone_pvAdded__Deep Cross (Izq)",
|
| 1919 |
+
"short_mean__mf__attack_zone_pvAdded__Half-Space (Der)",
|
| 1920 |
+
"short_mean__mf__attack_zone_pvAdded__Half-Space (Izq)",
|
| 1921 |
+
"short_mean__mf__attack_zone_pvAdded__Scoring Zone",
|
| 1922 |
+
"short_mean__mf__attack_zone_pvAdded__Security Behind",
|
| 1923 |
+
"short_mean__mf__attack_zone_share__Creativity Zone",
|
| 1924 |
+
"short_mean__mf__attack_zone_share__Cross (Der)",
|
| 1925 |
+
"short_mean__mf__attack_zone_share__Cross (Izq)",
|
| 1926 |
+
"short_mean__mf__attack_zone_share__Cut-Back (Der)",
|
| 1927 |
+
"short_mean__mf__attack_zone_share__Cut-Back (Izq)",
|
| 1928 |
+
"short_mean__mf__attack_zone_share__Deep Cross (Der)",
|
| 1929 |
+
"short_mean__mf__attack_zone_share__Deep Cross (Izq)",
|
| 1930 |
+
"short_mean__mf__attack_zone_share__Half-Space (Der)",
|
| 1931 |
+
"short_mean__mf__attack_zone_share__Half-Space (Izq)",
|
| 1932 |
+
"short_mean__mf__attack_zone_share__Scoring Zone",
|
| 1933 |
+
"short_mean__mf__attack_zone_share__Security Behind",
|
| 1934 |
+
"short_mean__mf__avg_end_x_pass",
|
| 1935 |
+
"short_mean__mf__big_chances_generadas",
|
| 1936 |
+
"short_mean__mf__centros_totales_ultimo_tercio",
|
| 1937 |
+
"short_mean__mf__counter_press_recovery",
|
| 1938 |
+
"short_mean__mf__cross_share_last3",
|
| 1939 |
+
"short_mean__mf__final3_success",
|
| 1940 |
+
"short_mean__mf__high_recov_share",
|
| 1941 |
+
"short_mean__mf__pases_area",
|
| 1942 |
+
"short_mean__mf__pases_progresivos_sobre_pases",
|
| 1943 |
+
"short_mean__mf__pases_prom_secuencia",
|
| 1944 |
+
"short_mean__mf__pases_totales_ultimo_tercio",
|
| 1945 |
+
"short_mean__mf__passes_per_loss",
|
| 1946 |
+
"short_mean__mf__passes_per_shot",
|
| 1947 |
+
"short_mean__mf__pct_centros_pases_totales_ultimo_tercio",
|
| 1948 |
+
"short_mean__mf__pct_pases_largos",
|
| 1949 |
+
"short_mean__mf__possession_nunique",
|
| 1950 |
+
"short_mean__mf__ppda",
|
| 1951 |
+
"short_mean__mf__ppda_inv",
|
| 1952 |
+
"short_mean__mf__press_cnt__x0_y0",
|
| 1953 |
+
"short_mean__mf__press_cnt__x0_y1",
|
| 1954 |
+
"short_mean__mf__press_cnt__x0_y2",
|
| 1955 |
+
"short_mean__mf__press_cnt__x1_y0",
|
| 1956 |
+
"short_mean__mf__press_cnt__x1_y1",
|
| 1957 |
+
"short_mean__mf__press_cnt__x1_y2",
|
| 1958 |
+
"short_mean__mf__press_cnt__x2_y0",
|
| 1959 |
+
"short_mean__mf__press_cnt__x2_y1",
|
| 1960 |
+
"short_mean__mf__press_cnt__x2_y2",
|
| 1961 |
+
"short_mean__mf__press_cnt__x3_y0",
|
| 1962 |
+
"short_mean__mf__press_cnt__x3_y1",
|
| 1963 |
+
"short_mean__mf__press_cnt__x3_y2",
|
| 1964 |
+
"short_mean__mf__press_int_sum__x0_y0",
|
| 1965 |
+
"short_mean__mf__press_int_sum__x0_y1",
|
| 1966 |
+
"short_mean__mf__press_int_sum__x0_y2",
|
| 1967 |
+
"short_mean__mf__press_int_sum__x1_y0",
|
| 1968 |
+
"short_mean__mf__press_int_sum__x1_y1",
|
| 1969 |
+
"short_mean__mf__press_int_sum__x1_y2",
|
| 1970 |
+
"short_mean__mf__press_int_sum__x2_y0",
|
| 1971 |
+
"short_mean__mf__press_int_sum__x2_y1",
|
| 1972 |
+
"short_mean__mf__press_int_sum__x2_y2",
|
| 1973 |
+
"short_mean__mf__press_int_sum__x3_y0",
|
| 1974 |
+
"short_mean__mf__press_int_sum__x3_y1",
|
| 1975 |
+
"short_mean__mf__press_int_sum__x3_y2",
|
| 1976 |
+
"short_mean__mf__pressure_intensity_sum",
|
| 1977 |
+
"short_mean__mf__pressures",
|
| 1978 |
+
"short_mean__mf__progresion_promedio_m_por_posesion",
|
| 1979 |
+
"short_mean__mf__pvAdded_sum",
|
| 1980 |
+
"short_mean__mf__pvValue_sum",
|
| 1981 |
+
"short_mean__mf__recepciones_area",
|
| 1982 |
+
"short_mean__mf__recov_cnt__x0_y0",
|
| 1983 |
+
"short_mean__mf__recov_cnt__x0_y1",
|
| 1984 |
+
"short_mean__mf__recov_cnt__x0_y2",
|
| 1985 |
+
"short_mean__mf__recov_cnt__x1_y0",
|
| 1986 |
+
"short_mean__mf__recov_cnt__x1_y1",
|
| 1987 |
+
"short_mean__mf__recov_cnt__x1_y2",
|
| 1988 |
+
"short_mean__mf__recov_cnt__x2_y0",
|
| 1989 |
+
"short_mean__mf__recov_cnt__x2_y1",
|
| 1990 |
+
"short_mean__mf__recov_cnt__x2_y2",
|
| 1991 |
+
"short_mean__mf__recov_cnt__x3_y0",
|
| 1992 |
+
"short_mean__mf__recov_cnt__x3_y1",
|
| 1993 |
+
"short_mean__mf__recov_cnt__x3_y2",
|
| 1994 |
+
"short_mean__mf__recuperaciones_campo_propio",
|
| 1995 |
+
"short_mean__mf__recuperaciones_campo_rival",
|
| 1996 |
+
"short_mean__mf__ritmo_circulacion_pases_por_min",
|
| 1997 |
+
"short_mean__mf__shots",
|
| 1998 |
+
"short_mean__mf__shots_on_target",
|
| 1999 |
+
"short_mean__mf__tiros_area_grande",
|
| 2000 |
+
"short_mean__mf__tiros_area_pequeña",
|
| 2001 |
+
"short_mean__mf__tiros_fuera_de_area",
|
| 2002 |
+
"short_mean__mf__touches_area",
|
| 2003 |
+
"short_mean__mf__xg_por_tiro",
|
| 2004 |
+
"short_mean__mf__xg_suma_tiros",
|
| 2005 |
+
"short_mean__passes_long",
|
| 2006 |
+
"short_mean__passes_per_possession",
|
| 2007 |
+
"short_mean__passes_short",
|
| 2008 |
+
"short_mean__passes_total",
|
| 2009 |
+
"short_mean__possessions_nunique",
|
| 2010 |
+
"short_mean__press_cnt__x0_y0",
|
| 2011 |
+
"short_mean__press_cnt__x0_y1",
|
| 2012 |
+
"short_mean__press_cnt__x0_y2",
|
| 2013 |
+
"short_mean__press_cnt__x1_y0",
|
| 2014 |
+
"short_mean__press_cnt__x1_y1",
|
| 2015 |
+
"short_mean__press_cnt__x1_y2",
|
| 2016 |
+
"short_mean__press_cnt__x2_y0",
|
| 2017 |
+
"short_mean__press_cnt__x2_y1",
|
| 2018 |
+
"short_mean__press_cnt__x2_y2",
|
| 2019 |
+
"short_mean__press_cnt__x3_y0",
|
| 2020 |
+
"short_mean__press_cnt__x3_y1",
|
| 2021 |
+
"short_mean__press_cnt__x3_y2",
|
| 2022 |
+
"short_mean__pressures_total",
|
| 2023 |
+
"short_mean__pvAdded_total",
|
| 2024 |
+
"short_mean__pvAdded_total__opp",
|
| 2025 |
+
"short_mean__recoveries_total",
|
| 2026 |
+
"short_mean__short_long_pass_ratio",
|
| 2027 |
+
"short_mean__shots_total",
|
| 2028 |
+
"short_mean__shots_total__opp",
|
| 2029 |
+
"short_mean__zone_actions__Creativity_Zone",
|
| 2030 |
+
"short_mean__zone_actions__Creativity_Zone__opp",
|
| 2031 |
+
"short_mean__zone_actions__Cross__Der_",
|
| 2032 |
+
"short_mean__zone_actions__Cross__Der___opp",
|
| 2033 |
+
"short_mean__zone_actions__Cross__Izq_",
|
| 2034 |
+
"short_mean__zone_actions__Cross__Izq___opp",
|
| 2035 |
+
"short_mean__zone_actions__Cut_Back__Der_",
|
| 2036 |
+
"short_mean__zone_actions__Cut_Back__Der___opp",
|
| 2037 |
+
"short_mean__zone_actions__Cut_Back__Izq_",
|
| 2038 |
+
"short_mean__zone_actions__Cut_Back__Izq___opp",
|
| 2039 |
+
"short_mean__zone_actions__Deep_Cross__Der_",
|
| 2040 |
+
"short_mean__zone_actions__Deep_Cross__Der___opp",
|
| 2041 |
+
"short_mean__zone_actions__Deep_Cross__Izq_",
|
| 2042 |
+
"short_mean__zone_actions__Deep_Cross__Izq___opp",
|
| 2043 |
+
"short_mean__zone_actions__Half_Space__Der_",
|
| 2044 |
+
"short_mean__zone_actions__Half_Space__Der___opp",
|
| 2045 |
+
"short_mean__zone_actions__Half_Space__Izq_",
|
| 2046 |
+
"short_mean__zone_actions__Half_Space__Izq___opp",
|
| 2047 |
+
"short_mean__zone_actions__Scoring_Zone",
|
| 2048 |
+
"short_mean__zone_actions__Scoring_Zone__opp",
|
| 2049 |
+
"short_mean__zone_linesBroken__Creativity_Zone",
|
| 2050 |
+
"short_mean__zone_linesBroken__Cross__Der_",
|
| 2051 |
+
"short_mean__zone_linesBroken__Cross__Izq_",
|
| 2052 |
+
"short_mean__zone_linesBroken__Cut_Back__Der_",
|
| 2053 |
+
"short_mean__zone_linesBroken__Cut_Back__Izq_",
|
| 2054 |
+
"short_mean__zone_linesBroken__Deep_Cross__Der_",
|
| 2055 |
+
"short_mean__zone_linesBroken__Deep_Cross__Izq_",
|
| 2056 |
+
"short_mean__zone_linesBroken__Half_Space__Der_",
|
| 2057 |
+
"short_mean__zone_linesBroken__Half_Space__Izq_",
|
| 2058 |
+
"short_mean__zone_linesBroken__Scoring_Zone",
|
| 2059 |
+
"short_mean__zone_pvAdded_shots__Creativity_Zone",
|
| 2060 |
+
"short_mean__zone_pvAdded_shots__Cross__Der_",
|
| 2061 |
+
"short_mean__zone_pvAdded_shots__Cross__Izq_",
|
| 2062 |
+
"short_mean__zone_pvAdded_shots__Cut_Back__Der_",
|
| 2063 |
+
"short_mean__zone_pvAdded_shots__Cut_Back__Izq_",
|
| 2064 |
+
"short_mean__zone_pvAdded_shots__Deep_Cross__Der_",
|
| 2065 |
+
"short_mean__zone_pvAdded_shots__Deep_Cross__Izq_",
|
| 2066 |
+
"short_mean__zone_pvAdded_shots__Half_Space__Der_",
|
| 2067 |
+
"short_mean__zone_pvAdded_shots__Half_Space__Izq_",
|
| 2068 |
+
"short_mean__zone_pvAdded_shots__Scoring_Zone",
|
| 2069 |
+
"n_prior_matches",
|
| 2070 |
+
"opp_n_prior_matches",
|
| 2071 |
+
"is_home_num",
|
| 2072 |
+
"league_Austrian Bundesliga",
|
| 2073 |
+
"league_Belgian Challenger Pro League",
|
| 2074 |
+
"league_Danish Superligaen",
|
| 2075 |
+
"league_French Ligue 2",
|
| 2076 |
+
"league_Italian Serie B",
|
| 2077 |
+
"league_Liga Profesional Argentina",
|
| 2078 |
+
"league_Serbian Super Liga",
|
| 2079 |
+
"league_Spanish La Liga",
|
| 2080 |
+
"league_Spanish Segunda Division",
|
| 2081 |
+
"season_24",
|
| 2082 |
+
"season_24-25",
|
| 2083 |
+
"season_25",
|
| 2084 |
+
"season_25-26",
|
| 2085 |
+
"season_26"
|
| 2086 |
]
|
| 2087 |
}
|
| 2088 |
}
|
|
@@ -61,6 +61,8 @@ proporción el modelo se sobreajustaba y apenas le ganaba al baseline.
|
|
| 61 |
| Etapa | Qué se hace |
|
| 62 |
|---|---|
|
| 63 |
| **Split** | **temporal** (`_train_val_test_indices` → `_build_temporal_validation`): la validación son las fechas más recientes del train, y el test va aparte |
|
|
|
|
|
|
|
| 64 |
| **Baselines** | se compara contra **dos**: el promedio de la temporada y el de los **últimos 8** partidos |
|
| 65 |
| **Métrica** | **MAE**, con **intervalos bootstrap** sobre la diferencia modelo − baseline |
|
| 66 |
| **Resultado** | el ensemble mejora **~3,6 %** el MAE sobre el baseline (cada semilla suelta: ~2,9–3,3 %) |
|
|
@@ -113,7 +115,7 @@ Liga Profesional Argentina.
|
|
| 113 |
|
| 114 |
| Tipo | Qué es |
|
| 115 |
|---|---|
|
| 116 |
-
| **Globales** | **200** columnas, podadas desde ~950 candidatas (familia `mf__*` y rolling). Ver *Cómo se podan* abajo |
|
| 117 |
| **De nodo** | por zona: ataque y PV **propios**, **concedidos** y **del rival** |
|
| 118 |
| **Baselines** | promedio de la temporada y de los últimos 8 partidos, que entran al modelo como residual |
|
| 119 |
|
|
|
|
| 61 |
| Etapa | Qué se hace |
|
| 62 |
|---|---|
|
| 63 |
| **Split** | **temporal** (`_train_val_test_indices` → `_build_temporal_validation`): la validación son las fechas más recientes del train, y el test va aparte |
|
| 64 |
+
| **Tamaños reales** | **8.506** train · **962** validación (desde el **16-nov-2025**) · **1.108** test |
|
| 65 |
+
| **Ensemble** | **5 semillas** promediadas en log-espacio |
|
| 66 |
| **Baselines** | se compara contra **dos**: el promedio de la temporada y el de los **últimos 8** partidos |
|
| 67 |
| **Métrica** | **MAE**, con **intervalos bootstrap** sobre la diferencia modelo − baseline |
|
| 68 |
| **Resultado** | el ensemble mejora **~3,6 %** el MAE sobre el baseline (cada semilla suelta: ~2,9–3,3 %) |
|
|
|
|
| 115 |
|
| 116 |
| Tipo | Qué es |
|
| 117 |
|---|---|
|
| 118 |
+
| **Globales** | **200** columnas, podadas desde ~950 candidatas (familia `mf__*` y rolling). La lista exacta está en el CSV y en la referencia. Ver *Cómo se podan* abajo |
|
| 119 |
| **De nodo** | por zona: ataque y PV **propios**, **concedidos** y **del rival** |
|
| 120 |
| **Baselines** | promedio de la temporada y de los últimos 8 partidos, que entran al modelo como residual |
|
| 121 |
|
|
@@ -29,7 +29,7 @@ en vez de predecirlas por separado.
|
|
| 29 |
|
| 30 |
| Pieza | Qué hace |
|
| 31 |
|---|---|
|
| 32 |
-
| **Rama global** | toma las features del partido y las proyecta a un vector de contexto (96 dim) |
|
| 33 |
| **Rama de nodo** | por zona: ataque y PV propios, concedidos y del rival |
|
| 34 |
| **Bloques de grafo** | 3 capas que propagan información entre zonas vecinas (dropout 0.06) |
|
| 35 |
| **Cabezas `gate` + `delta`** | el modelo **no predice el valor directo**: aprende una **corrección sobre un baseline**, y una compuerta que decide cuánto pesa cada baseline |
|
|
@@ -53,6 +53,7 @@ Los dos baselines que combina:
|
|
| 53 |
| **Estandarización** | medias y desvíos calculados **solo sobre train** (globales y de nodo), y los NaN se rellenan con la **mediana del train** |
|
| 54 |
| **Épocas** | hasta 260, con early stopping |
|
| 55 |
| **Semilla** | `RANDOM_SEED = 42` |
|
|
|
|
| 56 |
| **Métrica** | **MAE** contra los dos baselines (temporada y forma reciente) |
|
| 57 |
|
| 58 |
> Igual que el modelo de ataque, **el split es temporal**: entrena con lo viejo y se evalúa con lo
|
|
@@ -69,7 +70,14 @@ equipos**, temporadas 24-25 y 25-26, fechas de ene-2024 a mar-2026.
|
|
| 69 |
`target_pv_share__<zona>` — el **share de PV (peligro)** de cada zona, con los mismos 10 nombres de
|
| 70 |
zona que el modelo de ataque (`Scoring_Zone`, `Half_Space__Izq_`, etc.).
|
| 71 |
|
| 72 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 73 |
**`pv_share`** (dónde genera peligro). Las variables de entrada son las mismas.
|
| 74 |
|
| 75 |
---
|
|
|
|
| 29 |
|
| 30 |
| Pieza | Qué hace |
|
| 31 |
|---|---|
|
| 32 |
+
| **Rama global** | toma las **1.069 features** del partido y las proyecta a un vector de contexto (96 dim) |
|
| 33 |
| **Rama de nodo** | por zona: ataque y PV propios, concedidos y del rival |
|
| 34 |
| **Bloques de grafo** | 3 capas que propagan información entre zonas vecinas (dropout 0.06) |
|
| 35 |
| **Cabezas `gate` + `delta`** | el modelo **no predice el valor directo**: aprende una **corrección sobre un baseline**, y una compuerta que decide cuánto pesa cada baseline |
|
|
|
|
| 53 |
| **Estandarización** | medias y desvíos calculados **solo sobre train** (globales y de nodo), y los NaN se rellenan con la **mediana del train** |
|
| 54 |
| **Épocas** | hasta 260, con early stopping |
|
| 55 |
| **Semilla** | `RANDOM_SEED = 42` |
|
| 56 |
+
| **Tamaños reales** | **7.395** train · **842** validación (desde el **17-nov-2025**) · **981** test |
|
| 57 |
| **Métrica** | **MAE** contra los dos baselines (temporada y forma reciente) |
|
| 58 |
|
| 59 |
> Igual que el modelo de ataque, **el split es temporal**: entrena con lo viejo y se evalúa con lo
|
|
|
|
| 70 |
`target_pv_share__<zona>` — el **share de PV (peligro)** de cada zona, con los mismos 10 nombres de
|
| 71 |
zona que el modelo de ataque (`Scoring_Zone`, `Half_Space__Izq_`, etc.).
|
| 72 |
|
| 73 |
+
### Una diferencia importante con el modelo de ataque
|
| 74 |
+
|
| 75 |
+
Este **NO poda las features**: usa las **1.069 globales** tal cual, mientras que el de ataque se
|
| 76 |
+
queda con 200 tras una poda agresiva. Los dos entrenan con el mismo dataset (~10.900 filas), así que
|
| 77 |
+
este modelo tiene una proporción features/filas mucho más exigente y **más riesgo de sobreajuste**.
|
| 78 |
+
Es un candidato claro a aplicarle la misma poda que al de ataque, y medir si mejora.
|
| 79 |
+
|
| 80 |
+
La otra diferencia es el target: **`attack_share`** (por dónde ataca) vs
|
| 81 |
**`pv_share`** (dónde genera peligro). Las variables de entrada son las mismas.
|
| 82 |
|
| 83 |
---
|
|
@@ -11,6 +11,7 @@ Uso: python scripts/build_team_stats_agg.py
|
|
| 11 |
|
| 12 |
from __future__ import annotations
|
| 13 |
|
|
|
|
| 14 |
import sys
|
| 15 |
import tempfile
|
| 16 |
from pathlib import Path
|
|
@@ -84,17 +85,28 @@ def _aggregate(csv_path: Path) -> pd.DataFrame:
|
|
| 84 |
mean = g[metric_cols].mean()
|
| 85 |
out = mean.reset_index()
|
| 86 |
out["n_partidos"] = g.size().values
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 87 |
print(f"Partidos (versión consistente): {len(full):,} | equipos-temporada: {len(out):,} | "
|
| 88 |
-
f"métricas: {len(
|
| 89 |
return out
|
| 90 |
|
| 91 |
|
| 92 |
def main() -> None:
|
| 93 |
OUT.parent.mkdir(parents=True, exist_ok=True)
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
agg.to_parquet(OUT, index=False)
|
| 99 |
print(f"Guardado: {OUT} ({OUT.stat().st_size / 1e6:.1f} MB)")
|
| 100 |
|
|
|
|
| 11 |
|
| 12 |
from __future__ import annotations
|
| 13 |
|
| 14 |
+
import os
|
| 15 |
import sys
|
| 16 |
import tempfile
|
| 17 |
from pathlib import Path
|
|
|
|
| 85 |
mean = g[metric_cols].mean()
|
| 86 |
out = mean.reset_index()
|
| 87 |
out["n_partidos"] = g.size().values
|
| 88 |
+
# derivada: % éxito de centros = completados / totales (reemplaza los dos crudos).
|
| 89 |
+
if {"cross_completados", "cross_total"} <= set(out.columns):
|
| 90 |
+
tot = out["cross_total"].where(out["cross_total"] > 0)
|
| 91 |
+
out["pct_exito_centros"] = (out["cross_completados"] / tot).round(4)
|
| 92 |
+
out = out.drop(columns=["cross_completados", "cross_total"])
|
| 93 |
print(f"Partidos (versión consistente): {len(full):,} | equipos-temporada: {len(out):,} | "
|
| 94 |
+
f"métricas: {len(out.columns) - len(KEYS) - 1}", flush=True)
|
| 95 |
return out
|
| 96 |
|
| 97 |
|
| 98 |
def main() -> None:
|
| 99 |
OUT.parent.mkdir(parents=True, exist_ok=True)
|
| 100 |
+
# Permite reusar un CSV ya bajado (RACING_TEAMSTATS_CSV) y no re-descargar 1 GB.
|
| 101 |
+
local = os.getenv("RACING_TEAMSTATS_CSV")
|
| 102 |
+
if local and Path(local).exists():
|
| 103 |
+
print(f"Usando CSV local: {local}", flush=True)
|
| 104 |
+
agg = _aggregate(Path(local))
|
| 105 |
+
else:
|
| 106 |
+
with tempfile.TemporaryDirectory() as td:
|
| 107 |
+
csv_path = Path(td) / "team_stats_all_leagues.csv"
|
| 108 |
+
_download(csv_path)
|
| 109 |
+
agg = _aggregate(csv_path)
|
| 110 |
agg.to_parquet(OUT, index=False)
|
| 111 |
print(f"Guardado: {OUT} ({OUT.stat().st_size / 1e6:.1f} MB)")
|
| 112 |
|
|
@@ -26,6 +26,15 @@ from racing_reports import team_vars
|
|
| 26 |
|
| 27 |
XLSX = Path(sys.argv[1]) if len(sys.argv) > 1 else Path.home() / "Documents/Racing/diccionario_variables.xlsx"
|
| 28 |
OUT = Path(__file__).resolve().parents[1] / "vendor" / "data" / "var_dict.json"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
|
| 30 |
|
| 31 |
# Variables donde MENOS es mejor (rival / en contra / concedidas / errores propios).
|
|
@@ -40,7 +49,7 @@ NEGATIVE_COLS = {
|
|
| 40 |
"goles_corner_rival", "goles_regular_play_rival", "goles_tempranos_rival",
|
| 41 |
"goles_totales_rival", "goles_transicion_rival", "pases_<20m_no_cross_rival",
|
| 42 |
"pases_peligrosos_exitosos_con_centros_rival", "pases_progresivos_exitosos_rival",
|
| 43 |
-
"pases_progresivos_rival",
|
| 44 |
"pct_pases_exitosos_t1-2_rival", "pct_pases_exitosos_t3_rival", "pct_posesion_rival",
|
| 45 |
"recepciones_area_rival", "ritmo_circulacion_pases_por_min_rival", "ritmo_progresion_rival",
|
| 46 |
"shots_on_target_rival", "shots_rival", "situacion_fast_break_rival",
|
|
@@ -50,11 +59,32 @@ NEGATIVE_COLS = {
|
|
| 50 |
"velocidad_progresion_m_por_s_rival", "xa_acumulado_rival", "xg_avg_tras_corner_rival",
|
| 51 |
"xg_suma_tiros_rival", "xg_tiros_tras_corner_rival", "xgot_avg__tras_corner_rival",
|
| 52 |
"xgot_suma_ontarget_rival", "xgot_tiros_tras_corner_rival", "xt_acumulado_rival",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
# --- propias: errores / pérdidas / tarjetas / presión propia (ppda bajo = mejor) ---
|
| 54 |
"errores_quederivan_tiro/gol", "perdidas_no_forzadas", "tarjetas_totales",
|
| 55 |
"tarjetas_rojas", "gpi_perdidas", "ppda",
|
| 56 |
}
|
| 57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
|
| 59 |
def _top_type(cat: str) -> str:
|
| 60 |
base = str(cat).split("–")[0].strip() # separador es en-dash U+2013
|
|
@@ -70,9 +100,12 @@ def main() -> None:
|
|
| 70 |
# mapear a las columnas reales del agregado (canónicas, en minúscula)
|
| 71 |
out = {}
|
| 72 |
for c in team_vars.variables():
|
| 73 |
-
info =
|
|
|
|
|
|
|
| 74 |
info = dict(info)
|
| 75 |
info["negativa"] = c in NEGATIVE_COLS
|
|
|
|
| 76 |
out[c] = info
|
| 77 |
OUT.parent.mkdir(parents=True, exist_ok=True)
|
| 78 |
OUT.write_text(json.dumps(out, ensure_ascii=False, indent=0), encoding="utf-8")
|
|
|
|
| 26 |
|
| 27 |
XLSX = Path(sys.argv[1]) if len(sys.argv) > 1 else Path.home() / "Documents/Racing/diccionario_variables.xlsx"
|
| 28 |
OUT = Path(__file__).resolve().parents[1] / "vendor" / "data" / "var_dict.json"
|
| 29 |
+
# Grupos custom (Balón parado, Centros, Defensa, …) por feature — fuente editable.
|
| 30 |
+
# Una feature puede estar en varios grupos. Reemplazan al 'tipo' en las secciones 2 y 3 de la app.
|
| 31 |
+
GROUPS_FILE = Path(__file__).resolve().parent / "feature_groups.json"
|
| 32 |
+
FEATURE_GROUPS = json.loads(GROUPS_FILE.read_text(encoding="utf-8")) if GROUPS_FILE.exists() else {}
|
| 33 |
+
|
| 34 |
+
# Nombres de uso recuperados de "Estilos de juego - bloque.xlsx" para columnas que el
|
| 35 |
+
# diccionario_variables.xlsx no nombra (si no, la app mostraba el nombre técnico crudo).
|
| 36 |
+
EXTRA_FILE = Path(__file__).resolve().parent / "var_labels_extra.json"
|
| 37 |
+
EXTRA_LABELS = json.loads(EXTRA_FILE.read_text(encoding="utf-8")) if EXTRA_FILE.exists() else {}
|
| 38 |
|
| 39 |
|
| 40 |
# Variables donde MENOS es mejor (rival / en contra / concedidas / errores propios).
|
|
|
|
| 49 |
"goles_corner_rival", "goles_regular_play_rival", "goles_tempranos_rival",
|
| 50 |
"goles_totales_rival", "goles_transicion_rival", "pases_<20m_no_cross_rival",
|
| 51 |
"pases_peligrosos_exitosos_con_centros_rival", "pases_progresivos_exitosos_rival",
|
| 52 |
+
"pases_progresivos_rival",
|
| 53 |
"pct_pases_exitosos_t1-2_rival", "pct_pases_exitosos_t3_rival", "pct_posesion_rival",
|
| 54 |
"recepciones_area_rival", "ritmo_circulacion_pases_por_min_rival", "ritmo_progresion_rival",
|
| 55 |
"shots_on_target_rival", "shots_rival", "situacion_fast_break_rival",
|
|
|
|
| 59 |
"velocidad_progresion_m_por_s_rival", "xa_acumulado_rival", "xg_avg_tras_corner_rival",
|
| 60 |
"xg_suma_tiros_rival", "xg_tiros_tras_corner_rival", "xgot_avg__tras_corner_rival",
|
| 61 |
"xgot_suma_ontarget_rival", "xgot_tiros_tras_corner_rival", "xt_acumulado_rival",
|
| 62 |
+
# --- rival: xG generado (todo xg_*_rival = malo) + recuperaciones / progresión permitida ---
|
| 63 |
+
"recuperaciones_campo_rival_rival", "recuperaciones_campo_propio_rival",
|
| 64 |
+
"avg_end_x_pass_rival", "pases_endx_1_2_tercio_rival",
|
| 65 |
+
"xg_avg_vs_bloque_alto_rival", "xg_avg_vs_bloque_medio_rival", "xg_avg_vs_bloque_bajo_rival",
|
| 66 |
+
"xg_vs_bloque_alto_rival", "xg_vs_bloque_medio_rival", "xg_vs_bloque_bajo_rival",
|
| 67 |
+
"xg_secuencias_build_up_rival",
|
| 68 |
+
"xg_tras_centro_inswinger_area_rival", "xg_tras_centro_inswinger_temprano_rival",
|
| 69 |
+
"xg_tras_centro_outswinger_area_rival", "xg_tras_centro_outswinger_temprano_rival",
|
| 70 |
+
"xg_tras_centro_raso_area_cutback_rival", "xg_tras_centro_raso_area_dividido_rival",
|
| 71 |
+
"xg_tras_centro_raso_temprano_rival", "xg_tras_error_rival", "xg_tras_presion_alta_rival",
|
| 72 |
+
"xg_tras_profundidad_corta_rival", "xg_tras_profundidad_larga_rival",
|
| 73 |
+
"xg_tras_profundidad_media_rival", "xg_tras_recuperacion_tras_perdida_rival",
|
| 74 |
+
"xg_tras_transicion_abp_rival", "xg_tras_transicion_bloque_bajo_medio_rival",
|
| 75 |
+
"xg_tras_transicion_juego_directo_rival",
|
| 76 |
+
# --- propias: no queremos muchos centros ni pelotazos del equipo propio ---
|
| 77 |
+
"pct_centros_pases_totales_ultimo_tercio", "pct_pases_largos",
|
| 78 |
# --- propias: errores / pérdidas / tarjetas / presión propia (ppda bajo = mejor) ---
|
| 79 |
"errores_quederivan_tiro/gol", "perdidas_no_forzadas", "tarjetas_totales",
|
| 80 |
"tarjetas_rojas", "gpi_perdidas", "ppda",
|
| 81 |
}
|
| 82 |
|
| 83 |
+
# Labels/tipos para columnas DERIVADAS que no están en el Excel del proveedor.
|
| 84 |
+
MANUAL_LABELS = {
|
| 85 |
+
"pct_exito_centros": {"label": "% Éxito Centros", "tipo": "Ofensiva"},
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
|
| 89 |
def _top_type(cat: str) -> str:
|
| 90 |
base = str(cat).split("–")[0].strip() # separador es en-dash U+2013
|
|
|
|
| 100 |
# mapear a las columnas reales del agregado (canónicas, en minúscula)
|
| 101 |
out = {}
|
| 102 |
for c in team_vars.variables():
|
| 103 |
+
info = (MANUAL_LABELS.get(c.lower()) or by_col.get(c.lower())
|
| 104 |
+
or ({"label": EXTRA_LABELS[c], "tipo": "Otras"} if c in EXTRA_LABELS else None)
|
| 105 |
+
or {"label": c, "tipo": "Otras"})
|
| 106 |
info = dict(info)
|
| 107 |
info["negativa"] = c in NEGATIVE_COLS
|
| 108 |
+
info["grupos"] = FEATURE_GROUPS.get(c, [])
|
| 109 |
out[c] = info
|
| 110 |
OUT.parent.mkdir(parents=True, exist_ok=True)
|
| 111 |
OUT.write_text(json.dumps(out, ensure_ascii=False, indent=0), encoding="utf-8")
|
|
@@ -0,0 +1,726 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"acciones_defensivas_en_ofensiva": [
|
| 3 |
+
"Presión",
|
| 4 |
+
"Defensiva – Presión"
|
| 5 |
+
],
|
| 6 |
+
"acciones_defensivas_en_ofensiva_rival": [
|
| 7 |
+
"Presión (rival)"
|
| 8 |
+
],
|
| 9 |
+
"acciones_defensivas_en_ultimo_tercio": [
|
| 10 |
+
"Presión"
|
| 11 |
+
],
|
| 12 |
+
"acciones_defensivas_totales": [
|
| 13 |
+
"Defensa"
|
| 14 |
+
],
|
| 15 |
+
"altura_media_recuperacion": [
|
| 16 |
+
"Presión",
|
| 17 |
+
"Defensiva – Presión"
|
| 18 |
+
],
|
| 19 |
+
"altura_media_recuperacion_campo_propio": [
|
| 20 |
+
"Defensa",
|
| 21 |
+
"Defensiva – Presión"
|
| 22 |
+
],
|
| 23 |
+
"avg_one_twos_progress": [
|
| 24 |
+
"Elaboración y posesión"
|
| 25 |
+
],
|
| 26 |
+
"ballrecovery": [
|
| 27 |
+
"Defensa"
|
| 28 |
+
],
|
| 29 |
+
"centros_de_faltas": [
|
| 30 |
+
"Balón parado",
|
| 31 |
+
"Centros"
|
| 32 |
+
],
|
| 33 |
+
"centros_totales_ultimo_tercio": [
|
| 34 |
+
"Centros",
|
| 35 |
+
"Ofensiva – Creación"
|
| 36 |
+
],
|
| 37 |
+
"clearance_totales": [
|
| 38 |
+
"Defensa"
|
| 39 |
+
],
|
| 40 |
+
"corners": [
|
| 41 |
+
"Balón parado"
|
| 42 |
+
],
|
| 43 |
+
"counter_press_recovery": [
|
| 44 |
+
"Presión",
|
| 45 |
+
"Defensiva – Presión"
|
| 46 |
+
],
|
| 47 |
+
"counter_press_recovery_rival": [
|
| 48 |
+
"Presión (rival)"
|
| 49 |
+
],
|
| 50 |
+
"cutbacks": [
|
| 51 |
+
"Centros",
|
| 52 |
+
"Build-up / Posesión"
|
| 53 |
+
],
|
| 54 |
+
"duelos_aereos_ganados": [
|
| 55 |
+
"Defensa"
|
| 56 |
+
],
|
| 57 |
+
"duelos_aereos_ganados_rival": [
|
| 58 |
+
"Defensa (rival)"
|
| 59 |
+
],
|
| 60 |
+
"errores_quederivan_tiro/gol": [
|
| 61 |
+
"Defensa"
|
| 62 |
+
],
|
| 63 |
+
"goles_corner": [
|
| 64 |
+
"Balón parado"
|
| 65 |
+
],
|
| 66 |
+
"goles_corner_rival": [
|
| 67 |
+
"Balón parado (rival)"
|
| 68 |
+
],
|
| 69 |
+
"goles_regular_play": [
|
| 70 |
+
"Elaboración y posesión"
|
| 71 |
+
],
|
| 72 |
+
"goles_regular_play_rival": [
|
| 73 |
+
"Elaboración y posesión (rival)"
|
| 74 |
+
],
|
| 75 |
+
"goles_transicion": [
|
| 76 |
+
"Verticalidad",
|
| 77 |
+
"Transiciones – Ofensivas"
|
| 78 |
+
],
|
| 79 |
+
"goles_transicion_rival": [
|
| 80 |
+
"Verticalidad (rival)"
|
| 81 |
+
],
|
| 82 |
+
"gpe": [
|
| 83 |
+
"Presión",
|
| 84 |
+
"Defensiva – Presión"
|
| 85 |
+
],
|
| 86 |
+
"gpi": [
|
| 87 |
+
"Presión",
|
| 88 |
+
"Defensiva – Presión"
|
| 89 |
+
],
|
| 90 |
+
"gpi_intentos": [
|
| 91 |
+
"Presión"
|
| 92 |
+
],
|
| 93 |
+
"gpi_recuperaciones": [
|
| 94 |
+
"Presión"
|
| 95 |
+
],
|
| 96 |
+
"indice_verticalidad_transiciones_avg": [
|
| 97 |
+
"Verticalidad",
|
| 98 |
+
"Transiciones – Ofensivas"
|
| 99 |
+
],
|
| 100 |
+
"indice_verticalidad_transiciones_avg_rival": [
|
| 101 |
+
"Verticalidad (rival)",
|
| 102 |
+
"Transiciones – Defensivas"
|
| 103 |
+
],
|
| 104 |
+
"indice_verticalidad_transiciones_suma": [
|
| 105 |
+
"Verticalidad",
|
| 106 |
+
"Transiciones – Ofensivas"
|
| 107 |
+
],
|
| 108 |
+
"indice_verticalidad_transiciones_suma_rival": [
|
| 109 |
+
"Verticalidad (rival)",
|
| 110 |
+
"Transiciones – Defensivas"
|
| 111 |
+
],
|
| 112 |
+
"intercepciones": [
|
| 113 |
+
"Defensa"
|
| 114 |
+
],
|
| 115 |
+
"keypass": [
|
| 116 |
+
"Rotura de líneas",
|
| 117 |
+
"Ofensiva – Creación"
|
| 118 |
+
],
|
| 119 |
+
"n_pases_cuadrado_debil": [
|
| 120 |
+
"Rotura de líneas",
|
| 121 |
+
"Ofensiva – Creación"
|
| 122 |
+
],
|
| 123 |
+
"n_posesiones_con_finalizacion": [
|
| 124 |
+
"Elaboración y posesión",
|
| 125 |
+
"Build-up / Posesión"
|
| 126 |
+
],
|
| 127 |
+
"one_twos": [
|
| 128 |
+
"Elaboración y posesión",
|
| 129 |
+
"Juego corto",
|
| 130 |
+
"Build-up / Posesión"
|
| 131 |
+
],
|
| 132 |
+
"pases_<20m_no_cross": [
|
| 133 |
+
"Juego corto",
|
| 134 |
+
"Ofensiva – Creación"
|
| 135 |
+
],
|
| 136 |
+
"pases_<20m_no_cross_rival": [
|
| 137 |
+
"Juego corto (rival)",
|
| 138 |
+
"Defensiva"
|
| 139 |
+
],
|
| 140 |
+
"pases_endx_1_2_tercio": [
|
| 141 |
+
"Elaboración y posesión",
|
| 142 |
+
"Build-up / Posesión"
|
| 143 |
+
],
|
| 144 |
+
"pases_endx_1_2_tercio_rival": [
|
| 145 |
+
"Elaboración y posesión (rival)",
|
| 146 |
+
"Defensiva – Presión"
|
| 147 |
+
],
|
| 148 |
+
"pases_endx_tercio_final": [
|
| 149 |
+
"Elaboración y posesión"
|
| 150 |
+
],
|
| 151 |
+
"pases_peligrosos_exitosos_con_centros": [
|
| 152 |
+
"Centros",
|
| 153 |
+
"Ofensiva – Creación"
|
| 154 |
+
],
|
| 155 |
+
"pases_peligrosos_exitosos_con_centros_rival": [
|
| 156 |
+
"Centros (rival)",
|
| 157 |
+
"Defensiva"
|
| 158 |
+
],
|
| 159 |
+
"pases_prog_prom_secuencia": [
|
| 160 |
+
"Verticalidad",
|
| 161 |
+
"Build-up / Posesión"
|
| 162 |
+
],
|
| 163 |
+
"pases_progresivos": [
|
| 164 |
+
"Verticalidad",
|
| 165 |
+
"Build-up / Posesión"
|
| 166 |
+
],
|
| 167 |
+
"pases_progresivos_exitosos": [
|
| 168 |
+
"Verticalidad",
|
| 169 |
+
"Build-up / Posesión"
|
| 170 |
+
],
|
| 171 |
+
"pases_progresivos_exitosos_rival": [
|
| 172 |
+
"Verticalidad (rival)",
|
| 173 |
+
"Defensiva – Presión"
|
| 174 |
+
],
|
| 175 |
+
"pases_progresivos_no_exitosos": [
|
| 176 |
+
"Verticalidad",
|
| 177 |
+
"Build-up / Posesión"
|
| 178 |
+
],
|
| 179 |
+
"pases_progresivos_rival": [
|
| 180 |
+
"Verticalidad (rival)",
|
| 181 |
+
"Defensiva"
|
| 182 |
+
],
|
| 183 |
+
"pases_progresivos_sobre_pases": [
|
| 184 |
+
"Verticalidad",
|
| 185 |
+
"Build-up / Posesión"
|
| 186 |
+
],
|
| 187 |
+
"pases_totales": [
|
| 188 |
+
"Elaboración y posesión"
|
| 189 |
+
],
|
| 190 |
+
"pases_totales_a_ultimo_tercio": [
|
| 191 |
+
"Verticalidad"
|
| 192 |
+
],
|
| 193 |
+
"pases_totales_ultimo_tercio": [
|
| 194 |
+
"Elaboración y posesión"
|
| 195 |
+
],
|
| 196 |
+
"pct_centros_pases_totales_ultimo_tercio": [
|
| 197 |
+
"Centros",
|
| 198 |
+
"Elaboración y posesión",
|
| 199 |
+
"Ofensiva – Creación"
|
| 200 |
+
],
|
| 201 |
+
"pct_centros_pases_totales_ultimo_tercio_rival": [
|
| 202 |
+
"Centros (rival)",
|
| 203 |
+
"Elaboración y posesión (rival)",
|
| 204 |
+
"Defensiva – Presión"
|
| 205 |
+
],
|
| 206 |
+
"pct_pases_cortos": [
|
| 207 |
+
"Elaboración y posesión",
|
| 208 |
+
"Juego corto",
|
| 209 |
+
"Build-up / Posesión"
|
| 210 |
+
],
|
| 211 |
+
"pct_pases_exitosos_t1-2": [
|
| 212 |
+
"Elaboración y posesión"
|
| 213 |
+
],
|
| 214 |
+
"pct_pases_exitosos_t1-2_rival": [
|
| 215 |
+
"Elaboración y posesión (rival)",
|
| 216 |
+
"Defensiva – Presión"
|
| 217 |
+
],
|
| 218 |
+
"pct_pases_exitosos_t3": [
|
| 219 |
+
"Elaboración y posesión",
|
| 220 |
+
"Build-up / Posesión"
|
| 221 |
+
],
|
| 222 |
+
"pct_pases_exitosos_t3_rival": [
|
| 223 |
+
"Elaboración y posesión (rival)",
|
| 224 |
+
"Defensiva – Presión"
|
| 225 |
+
],
|
| 226 |
+
"pct_pases_largos": [
|
| 227 |
+
"Elaboración y posesión",
|
| 228 |
+
"Juego corto",
|
| 229 |
+
"Build-up / Posesión"
|
| 230 |
+
],
|
| 231 |
+
"pct_pases_largos_rival": [
|
| 232 |
+
"Elaboración y posesión (rival)",
|
| 233 |
+
"Juego corto (rival)",
|
| 234 |
+
"Defensiva – Presión"
|
| 235 |
+
],
|
| 236 |
+
"pct_pases_medios": [
|
| 237 |
+
"Elaboración y posesión",
|
| 238 |
+
"Juego corto",
|
| 239 |
+
"Build-up / Posesión"
|
| 240 |
+
],
|
| 241 |
+
"pct_posesion": [
|
| 242 |
+
"Elaboración y posesión",
|
| 243 |
+
"Build-up / Posesión"
|
| 244 |
+
],
|
| 245 |
+
"pct_posesion_rival": [
|
| 246 |
+
"Elaboración y posesión (rival)",
|
| 247 |
+
"Defensiva – Presión"
|
| 248 |
+
],
|
| 249 |
+
"pct_tiros_tras_corner": [
|
| 250 |
+
"Balón parado"
|
| 251 |
+
],
|
| 252 |
+
"posesiones_build_up_exitoso": [
|
| 253 |
+
"Elaboración y posesión",
|
| 254 |
+
"Build-up / Posesión"
|
| 255 |
+
],
|
| 256 |
+
"ppda": [
|
| 257 |
+
"Defensa",
|
| 258 |
+
"Presión",
|
| 259 |
+
"Defensiva – Presión"
|
| 260 |
+
],
|
| 261 |
+
"ppda_against": [
|
| 262 |
+
"Elaboración y posesión",
|
| 263 |
+
"Defensa (rival)",
|
| 264 |
+
"Presión (rival)",
|
| 265 |
+
"Defensiva – Presión"
|
| 266 |
+
],
|
| 267 |
+
"progresion_promedio_m_por_posesion": [
|
| 268 |
+
"Elaboración y posesión",
|
| 269 |
+
"Verticalidad"
|
| 270 |
+
],
|
| 271 |
+
"recuperaciones_campo_propio": [
|
| 272 |
+
"Defensa"
|
| 273 |
+
],
|
| 274 |
+
"recuperaciones_campo_propio_rival": [
|
| 275 |
+
"Defensa (rival)",
|
| 276 |
+
"Build-up / Posesión"
|
| 277 |
+
],
|
| 278 |
+
"recuperaciones_campo_rival": [
|
| 279 |
+
"Defensa (rival)"
|
| 280 |
+
],
|
| 281 |
+
"recuperaciones_campo_rival_rival": [
|
| 282 |
+
"Defensa (rival)",
|
| 283 |
+
"Build-up / Posesión"
|
| 284 |
+
],
|
| 285 |
+
"ritmo_circulacion_pases_por_min": [
|
| 286 |
+
"Elaboración y posesión",
|
| 287 |
+
"Build-up / Posesión"
|
| 288 |
+
],
|
| 289 |
+
"ritmo_circulacion_pases_por_min_rival": [
|
| 290 |
+
"Elaboración y posesión (rival)"
|
| 291 |
+
],
|
| 292 |
+
"ritmo_progresion": [
|
| 293 |
+
"Verticalidad",
|
| 294 |
+
"Build-up / Posesión"
|
| 295 |
+
],
|
| 296 |
+
"ritmo_progresion_rival": [
|
| 297 |
+
"Verticalidad (rival)"
|
| 298 |
+
],
|
| 299 |
+
"secuencias_build_up": [
|
| 300 |
+
"Elaboración y posesión",
|
| 301 |
+
"Build-up / Posesión"
|
| 302 |
+
],
|
| 303 |
+
"secuencias_build_up_rival": [
|
| 304 |
+
"Elaboración y posesión (rival)"
|
| 305 |
+
],
|
| 306 |
+
"secuencias_progresivas": [
|
| 307 |
+
"Verticalidad"
|
| 308 |
+
],
|
| 309 |
+
"shots_on_target_rival": [
|
| 310 |
+
"Defensa (rival)"
|
| 311 |
+
],
|
| 312 |
+
"shots_rival": [
|
| 313 |
+
"Defensa (rival)"
|
| 314 |
+
],
|
| 315 |
+
"situacion_fast_break": [
|
| 316 |
+
"Verticalidad",
|
| 317 |
+
"Transiciones – Ofensivas"
|
| 318 |
+
],
|
| 319 |
+
"situacion_fast_break_rival": [
|
| 320 |
+
"Defensa (rival)",
|
| 321 |
+
"Verticalidad (rival)"
|
| 322 |
+
],
|
| 323 |
+
"tackles_totales": [
|
| 324 |
+
"Defensa"
|
| 325 |
+
],
|
| 326 |
+
"throughballs": [
|
| 327 |
+
"Rotura de líneas",
|
| 328 |
+
"Ofensiva – Creación"
|
| 329 |
+
],
|
| 330 |
+
"throughballs_exitosos": [
|
| 331 |
+
"Rotura de líneas",
|
| 332 |
+
"Ofensiva – Creación"
|
| 333 |
+
],
|
| 334 |
+
"throughballs_exitosos_rival": [
|
| 335 |
+
"Rotura de líneas (rival)",
|
| 336 |
+
"Defensiva"
|
| 337 |
+
],
|
| 338 |
+
"throughballs_rival": [
|
| 339 |
+
"Rotura de líneas (rival)",
|
| 340 |
+
"Defensiva"
|
| 341 |
+
],
|
| 342 |
+
"tiros_bloqueados": [
|
| 343 |
+
"Defensa"
|
| 344 |
+
],
|
| 345 |
+
"tiros_corner": [
|
| 346 |
+
"Balón parado"
|
| 347 |
+
],
|
| 348 |
+
"tiros_corner_rival": [
|
| 349 |
+
"Balón parado (rival)"
|
| 350 |
+
],
|
| 351 |
+
"velocidad_progresion_m_por_s": [
|
| 352 |
+
"Verticalidad",
|
| 353 |
+
"Build-up / Posesión"
|
| 354 |
+
],
|
| 355 |
+
"velocidad_progresion_m_por_s_rival": [
|
| 356 |
+
"Verticalidad (rival)"
|
| 357 |
+
],
|
| 358 |
+
"xg_avg_tras_corner": [
|
| 359 |
+
"Balón parado"
|
| 360 |
+
],
|
| 361 |
+
"xg_avg_tras_corner_rival": [
|
| 362 |
+
"Balón parado (rival)"
|
| 363 |
+
],
|
| 364 |
+
"xg_avg_vs_bloque_alto": [
|
| 365 |
+
"Defensa (rival)",
|
| 366 |
+
"Ofensiva – Creación"
|
| 367 |
+
],
|
| 368 |
+
"xg_avg_vs_bloque_alto_rival": [
|
| 369 |
+
"Defensa",
|
| 370 |
+
"Defensiva"
|
| 371 |
+
],
|
| 372 |
+
"xg_avg_vs_bloque_bajo": [
|
| 373 |
+
"Defensa (rival)",
|
| 374 |
+
"Ofensiva – Creación"
|
| 375 |
+
],
|
| 376 |
+
"xg_avg_vs_bloque_bajo_rival": [
|
| 377 |
+
"Defensa",
|
| 378 |
+
"Defensiva"
|
| 379 |
+
],
|
| 380 |
+
"xg_avg_vs_bloque_medio": [
|
| 381 |
+
"Defensa (rival)",
|
| 382 |
+
"Ofensiva – Creación"
|
| 383 |
+
],
|
| 384 |
+
"xg_avg_vs_bloque_medio_rival": [
|
| 385 |
+
"Defensa",
|
| 386 |
+
"Defensiva"
|
| 387 |
+
],
|
| 388 |
+
"xg_secuencias_build_up": [
|
| 389 |
+
"Elaboración y posesión"
|
| 390 |
+
],
|
| 391 |
+
"xg_secuencias_build_up_rival": [
|
| 392 |
+
"Elaboración y posesión (rival)",
|
| 393 |
+
"Defensiva"
|
| 394 |
+
],
|
| 395 |
+
"xg_suma_tiros_rival": [
|
| 396 |
+
"Defensa (rival)"
|
| 397 |
+
],
|
| 398 |
+
"xg_tiros_tras_corner": [
|
| 399 |
+
"Balón parado"
|
| 400 |
+
],
|
| 401 |
+
"xg_tiros_tras_corner_rival": [
|
| 402 |
+
"Balón parado (rival)"
|
| 403 |
+
],
|
| 404 |
+
"xg_tras_centro_inswinger_area": [
|
| 405 |
+
"Centros",
|
| 406 |
+
"Ofensiva – Creación"
|
| 407 |
+
],
|
| 408 |
+
"xg_tras_centro_inswinger_area_rival": [
|
| 409 |
+
"Centros (rival)",
|
| 410 |
+
"Defensiva"
|
| 411 |
+
],
|
| 412 |
+
"xg_tras_centro_inswinger_temprano": [
|
| 413 |
+
"Centros",
|
| 414 |
+
"Ofensiva – Creación"
|
| 415 |
+
],
|
| 416 |
+
"xg_tras_centro_inswinger_temprano_rival": [
|
| 417 |
+
"Centros (rival)",
|
| 418 |
+
"Defensiva"
|
| 419 |
+
],
|
| 420 |
+
"xg_tras_centro_outswinger_area": [
|
| 421 |
+
"Centros",
|
| 422 |
+
"Ofensiva – Creación"
|
| 423 |
+
],
|
| 424 |
+
"xg_tras_centro_outswinger_area_rival": [
|
| 425 |
+
"Centros (rival)",
|
| 426 |
+
"Defensiva"
|
| 427 |
+
],
|
| 428 |
+
"xg_tras_centro_outswinger_temprano": [
|
| 429 |
+
"Centros",
|
| 430 |
+
"Ofensiva – Creación"
|
| 431 |
+
],
|
| 432 |
+
"xg_tras_centro_outswinger_temprano_rival": [
|
| 433 |
+
"Centros (rival)",
|
| 434 |
+
"Defensiva"
|
| 435 |
+
],
|
| 436 |
+
"xg_tras_centro_raso_area_cutback": [
|
| 437 |
+
"Centros",
|
| 438 |
+
"Ofensiva – Creación"
|
| 439 |
+
],
|
| 440 |
+
"xg_tras_centro_raso_area_cutback_rival": [
|
| 441 |
+
"Centros (rival)",
|
| 442 |
+
"Defensiva"
|
| 443 |
+
],
|
| 444 |
+
"xg_tras_centro_raso_area_dividido": [
|
| 445 |
+
"Centros",
|
| 446 |
+
"Ofensiva – Creación"
|
| 447 |
+
],
|
| 448 |
+
"xg_tras_centro_raso_area_dividido_rival": [
|
| 449 |
+
"Centros (rival)",
|
| 450 |
+
"Defensiva"
|
| 451 |
+
],
|
| 452 |
+
"xg_tras_centro_raso_temprano": [
|
| 453 |
+
"Centros",
|
| 454 |
+
"Ofensiva – Creación"
|
| 455 |
+
],
|
| 456 |
+
"xg_tras_centro_raso_temprano_rival": [
|
| 457 |
+
"Centros (rival)",
|
| 458 |
+
"Defensiva"
|
| 459 |
+
],
|
| 460 |
+
"xg_tras_presion_alta": [
|
| 461 |
+
"Presión",
|
| 462 |
+
"Defensiva – Presión"
|
| 463 |
+
],
|
| 464 |
+
"xg_tras_presion_alta_rival": [
|
| 465 |
+
"Presión (rival)"
|
| 466 |
+
],
|
| 467 |
+
"xg_tras_profundidad_corta": [
|
| 468 |
+
"Rotura de líneas",
|
| 469 |
+
"Ofensiva – Creación"
|
| 470 |
+
],
|
| 471 |
+
"xg_tras_profundidad_corta_rival": [
|
| 472 |
+
"Rotura de líneas (rival)",
|
| 473 |
+
"Defensiva"
|
| 474 |
+
],
|
| 475 |
+
"xg_tras_profundidad_larga": [
|
| 476 |
+
"Rotura de líneas",
|
| 477 |
+
"Ofensiva – Creación"
|
| 478 |
+
],
|
| 479 |
+
"xg_tras_profundidad_larga_rival": [
|
| 480 |
+
"Rotura de líneas (rival)",
|
| 481 |
+
"Defensiva"
|
| 482 |
+
],
|
| 483 |
+
"xg_tras_profundidad_media": [
|
| 484 |
+
"Rotura de líneas",
|
| 485 |
+
"Ofensiva – Creación"
|
| 486 |
+
],
|
| 487 |
+
"xg_tras_profundidad_media_rival": [
|
| 488 |
+
"Rotura de líneas (rival)",
|
| 489 |
+
"Defensiva"
|
| 490 |
+
],
|
| 491 |
+
"xg_tras_recuperacion_tras_perdida": [
|
| 492 |
+
"Defensa",
|
| 493 |
+
"Defensiva – Presión"
|
| 494 |
+
],
|
| 495 |
+
"xg_tras_recuperacion_tras_perdida_rival": [
|
| 496 |
+
"Defensa (rival)",
|
| 497 |
+
"Transiciones – Defensivas"
|
| 498 |
+
],
|
| 499 |
+
"xg_tras_transicion_abp": [
|
| 500 |
+
"Balón parado",
|
| 501 |
+
"Verticalidad",
|
| 502 |
+
"Transiciones – Ofensivas"
|
| 503 |
+
],
|
| 504 |
+
"xg_tras_transicion_abp_rival": [
|
| 505 |
+
"Balón parado (rival)",
|
| 506 |
+
"Verticalidad (rival)",
|
| 507 |
+
"Transiciones – Defensivas"
|
| 508 |
+
],
|
| 509 |
+
"xg_tras_transicion_bloque_bajo_medio": [
|
| 510 |
+
"Verticalidad",
|
| 511 |
+
"Transiciones – Ofensivas"
|
| 512 |
+
],
|
| 513 |
+
"xg_tras_transicion_bloque_bajo_medio_rival": [
|
| 514 |
+
"Verticalidad (rival)",
|
| 515 |
+
"Transiciones – Defensivas"
|
| 516 |
+
],
|
| 517 |
+
"xg_tras_transicion_juego_directo": [
|
| 518 |
+
"Verticalidad",
|
| 519 |
+
"Transiciones – Ofensivas"
|
| 520 |
+
],
|
| 521 |
+
"xg_tras_transicion_juego_directo_rival": [
|
| 522 |
+
"Verticalidad (rival)",
|
| 523 |
+
"Transiciones – Defensivas"
|
| 524 |
+
],
|
| 525 |
+
"xgot_avg__tras_corner": [
|
| 526 |
+
"Balón parado"
|
| 527 |
+
],
|
| 528 |
+
"xgot_avg__tras_corner_rival": [
|
| 529 |
+
"Balón parado (rival)"
|
| 530 |
+
],
|
| 531 |
+
"xgot_suma_ontarget_rival": [
|
| 532 |
+
"Defensa (rival)"
|
| 533 |
+
],
|
| 534 |
+
"xgot_tiros_tras_corner": [
|
| 535 |
+
"Balón parado"
|
| 536 |
+
],
|
| 537 |
+
"xgot_tiros_tras_corner_rival": [
|
| 538 |
+
"Balón parado (rival)"
|
| 539 |
+
],
|
| 540 |
+
"pct_exito_centros": [
|
| 541 |
+
"Centros"
|
| 542 |
+
],
|
| 543 |
+
"ancho_promedio_m_por_posesion": [
|
| 544 |
+
"Build-up / Posesión"
|
| 545 |
+
],
|
| 546 |
+
"avg_dist_pase": [
|
| 547 |
+
"Build-up / Posesión"
|
| 548 |
+
],
|
| 549 |
+
"pases_prom_secuencia": [
|
| 550 |
+
"Build-up / Posesión"
|
| 551 |
+
],
|
| 552 |
+
"n_pases_tercer_hombre": [
|
| 553 |
+
"Build-up / Posesión"
|
| 554 |
+
],
|
| 555 |
+
"pases_divididos": [
|
| 556 |
+
"Build-up / Posesión"
|
| 557 |
+
],
|
| 558 |
+
"pases_ancho_30m": [
|
| 559 |
+
"Build-up / Posesión"
|
| 560 |
+
],
|
| 561 |
+
"pct_pases_fuera_area_gk": [
|
| 562 |
+
"Build-up / Posesión"
|
| 563 |
+
],
|
| 564 |
+
"pct_pases_rasos_gk": [
|
| 565 |
+
"Build-up / Posesión"
|
| 566 |
+
],
|
| 567 |
+
"avg_distancia_porteria_pases_cortos_gk": [
|
| 568 |
+
"Build-up / Posesión"
|
| 569 |
+
],
|
| 570 |
+
"agresividad_offside": [
|
| 571 |
+
"Defensiva"
|
| 572 |
+
],
|
| 573 |
+
"avg_altura_offside": [
|
| 574 |
+
"Defensiva"
|
| 575 |
+
],
|
| 576 |
+
"offside_provoked": [
|
| 577 |
+
"Defensiva"
|
| 578 |
+
],
|
| 579 |
+
"recepciones_area_rival": [
|
| 580 |
+
"Defensiva"
|
| 581 |
+
],
|
| 582 |
+
"sweeper_keeper_opa": [
|
| 583 |
+
"Defensiva"
|
| 584 |
+
],
|
| 585 |
+
"touches_area_rival": [
|
| 586 |
+
"Defensiva"
|
| 587 |
+
],
|
| 588 |
+
"xg_tras_error_rival": [
|
| 589 |
+
"Defensiva"
|
| 590 |
+
],
|
| 591 |
+
"xg_vs_bloque_alto_rival": [
|
| 592 |
+
"Defensiva"
|
| 593 |
+
],
|
| 594 |
+
"xg_vs_bloque_bajo_rival": [
|
| 595 |
+
"Defensiva"
|
| 596 |
+
],
|
| 597 |
+
"xg_vs_bloque_medio_rival": [
|
| 598 |
+
"Defensiva"
|
| 599 |
+
],
|
| 600 |
+
"pct_centros_aereo_rival": [
|
| 601 |
+
"Defensiva"
|
| 602 |
+
],
|
| 603 |
+
"tiros_mas_25_metros_rival": [
|
| 604 |
+
"Defensiva"
|
| 605 |
+
],
|
| 606 |
+
"xg_tiros_mas_25_metros_rival": [
|
| 607 |
+
"Defensiva"
|
| 608 |
+
],
|
| 609 |
+
"pct_tiros_fuera_area_rival": [
|
| 610 |
+
"Defensiva"
|
| 611 |
+
],
|
| 612 |
+
"pct_tiros_cabeza_rival": [
|
| 613 |
+
"Defensiva"
|
| 614 |
+
],
|
| 615 |
+
"pct_pases_al_area_son_centros_rival": [
|
| 616 |
+
"Defensiva"
|
| 617 |
+
],
|
| 618 |
+
"pct_centros_zona_bandas_rival": [
|
| 619 |
+
"Defensiva"
|
| 620 |
+
],
|
| 621 |
+
"pct_centros_rasos_zona_bandas_rival": [
|
| 622 |
+
"Defensiva"
|
| 623 |
+
],
|
| 624 |
+
"pct_pases_al_corte_zona_bandas_rival": [
|
| 625 |
+
"Defensiva"
|
| 626 |
+
],
|
| 627 |
+
"pct_pases_hacia_atras_zona_bandas_rival": [
|
| 628 |
+
"Defensiva"
|
| 629 |
+
],
|
| 630 |
+
"pct_cutback_zona_bandas_rival": [
|
| 631 |
+
"Defensiva"
|
| 632 |
+
],
|
| 633 |
+
"pct_dividido_zona_bandas_rival": [
|
| 634 |
+
"Defensiva"
|
| 635 |
+
],
|
| 636 |
+
"pct_takeon_zona_bandas_rival": [
|
| 637 |
+
"Defensiva"
|
| 638 |
+
],
|
| 639 |
+
"altura_media_recuperacion_campo_rival": [
|
| 640 |
+
"Defensiva – Presión"
|
| 641 |
+
],
|
| 642 |
+
"pct_segundas_jugadas_ganadas_tras_duelo_aereo": [
|
| 643 |
+
"Defensiva – Presión"
|
| 644 |
+
],
|
| 645 |
+
"pct_segundas_jugadas_ganadas_tras_duelo_aereo_rival": [
|
| 646 |
+
"Defensiva – Presión"
|
| 647 |
+
],
|
| 648 |
+
"lay_off_exitoso": [
|
| 649 |
+
"Ofensiva – Creación"
|
| 650 |
+
],
|
| 651 |
+
"pases_area": [
|
| 652 |
+
"Ofensiva – Creación"
|
| 653 |
+
],
|
| 654 |
+
"recepciones_area": [
|
| 655 |
+
"Ofensiva – Creación"
|
| 656 |
+
],
|
| 657 |
+
"touches_area": [
|
| 658 |
+
"Ofensiva – Creación"
|
| 659 |
+
],
|
| 660 |
+
"xg_por_tiro": [
|
| 661 |
+
"Ofensiva – Creación"
|
| 662 |
+
],
|
| 663 |
+
"xg_tras_error": [
|
| 664 |
+
"Ofensiva – Creación"
|
| 665 |
+
],
|
| 666 |
+
"xg_vs_bloque_alto": [
|
| 667 |
+
"Ofensiva – Creación"
|
| 668 |
+
],
|
| 669 |
+
"xg_vs_bloque_bajo": [
|
| 670 |
+
"Ofensiva – Creación"
|
| 671 |
+
],
|
| 672 |
+
"xg_vs_bloque_medio": [
|
| 673 |
+
"Ofensiva – Creación"
|
| 674 |
+
],
|
| 675 |
+
"xgot_por_tiro": [
|
| 676 |
+
"Ofensiva – Creación"
|
| 677 |
+
],
|
| 678 |
+
"pct_centros_aereo": [
|
| 679 |
+
"Ofensiva – Creación"
|
| 680 |
+
],
|
| 681 |
+
"tiros_mas_25_metros": [
|
| 682 |
+
"Ofensiva – Creación"
|
| 683 |
+
],
|
| 684 |
+
"pct_tiros_fuera_area": [
|
| 685 |
+
"Ofensiva – Creación"
|
| 686 |
+
],
|
| 687 |
+
"pct_tiros_cabeza": [
|
| 688 |
+
"Ofensiva – Creación"
|
| 689 |
+
],
|
| 690 |
+
"pct_pases_al_area_son_centros": [
|
| 691 |
+
"Ofensiva – Creación"
|
| 692 |
+
],
|
| 693 |
+
"pct_centros_zona_bandas": [
|
| 694 |
+
"Ofensiva – Creación"
|
| 695 |
+
],
|
| 696 |
+
"pct_centros_rasos_zona_bandas": [
|
| 697 |
+
"Ofensiva – Creación"
|
| 698 |
+
],
|
| 699 |
+
"pct_pases_al_corte_zona_bandas": [
|
| 700 |
+
"Ofensiva – Creación"
|
| 701 |
+
],
|
| 702 |
+
"pct_pases_hacia_atras_zona_bandas": [
|
| 703 |
+
"Ofensiva – Creación"
|
| 704 |
+
],
|
| 705 |
+
"pct_cutback_zona_bandas": [
|
| 706 |
+
"Ofensiva – Creación"
|
| 707 |
+
],
|
| 708 |
+
"pct_dividido_zona_bandas": [
|
| 709 |
+
"Ofensiva – Creación"
|
| 710 |
+
],
|
| 711 |
+
"pct_takeon_zona_bandas": [
|
| 712 |
+
"Ofensiva – Creación"
|
| 713 |
+
],
|
| 714 |
+
"avg_distancia_centroide": [
|
| 715 |
+
"Ofensiva – Creación"
|
| 716 |
+
],
|
| 717 |
+
"avg_ancho_robusto_equipo": [
|
| 718 |
+
"Ofensiva – Creación"
|
| 719 |
+
],
|
| 720 |
+
"nfbc_rival": [
|
| 721 |
+
"Transiciones – Defensivas"
|
| 722 |
+
],
|
| 723 |
+
"nfbc": [
|
| 724 |
+
"Transiciones – Ofensivas"
|
| 725 |
+
]
|
| 726 |
+
}
|
|
@@ -0,0 +1,279 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""Genera el DICCIONARIO DE VARIABLES (docs/diccionarios/variables.{csv,md}).
|
| 3 |
+
|
| 4 |
+
Una fila por variable con: nombre técnico, nombre de uso (label), dataset del que sale, si viene
|
| 5 |
+
DIRECTA del proveedor o se CALCULA acá, y —para las calculadas— de qué variables sale y cómo.
|
| 6 |
+
|
| 7 |
+
Fuentes de verdad (no se duplica nada a mano salvo las fórmulas):
|
| 8 |
+
vendor/data/var_dict.json ............ label / tipo / grupos de las 262 de team_stats_agg
|
| 9 |
+
scripts/feature_groups.json .......... columna → grupos de estilo de juego
|
| 10 |
+
docs/datasets_variables.json ......... columnas de cada dataset (generado del código)
|
| 11 |
+
data/analysis/next_goal/ejes_definition.json ... qué métricas componen cada eje
|
| 12 |
+
docs/diccionarios/_formulas.json ..... fórmula + entradas de las variables calculadas (curado)
|
| 13 |
+
|
| 14 |
+
USO: python scripts/gen_diccionario_variables.py
|
| 15 |
+
"""
|
| 16 |
+
from __future__ import annotations
|
| 17 |
+
import csv, json
|
| 18 |
+
from pathlib import Path
|
| 19 |
+
|
| 20 |
+
ROOT = Path(__file__).resolve().parents[1]
|
| 21 |
+
RACING = ROOT.parent
|
| 22 |
+
OUT = ROOT / "docs" / "diccionarios"
|
| 23 |
+
|
| 24 |
+
vd = json.loads((ROOT / "vendor/data/var_dict.json").read_text(encoding="utf-8"))
|
| 25 |
+
groups = json.loads((ROOT / "scripts/feature_groups.json").read_text(encoding="utf-8"))
|
| 26 |
+
dsv = json.loads((ROOT / "docs/datasets_variables.json").read_text(encoding="utf-8"))["datasets"]
|
| 27 |
+
formulas = json.loads((OUT / "_formulas.json").read_text(encoding="utf-8"))
|
| 28 |
+
ejes_def_p = RACING / "data/analysis/next_goal/ejes_definition.json"
|
| 29 |
+
ejes_def = json.loads(ejes_def_p.read_text(encoding="utf-8")) if ejes_def_p.exists() else {}
|
| 30 |
+
|
| 31 |
+
META = {"liga", "temporada", "equipo", "team", "team_id", "rival", "matchId", "matchid",
|
| 32 |
+
"sequenceId", "fecha", "competencia", "lado", "recurso", "bloque", "zona", "is_home"}
|
| 33 |
+
|
| 34 |
+
rows: list[dict] = []
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
def add(name, label, dataset, origen, script, entradas, formula, tipo="", grupos="", nota=""):
|
| 38 |
+
rows.append({"variable": name, "nombre_de_uso": label if label and label != name else "",
|
| 39 |
+
"dataset": dataset, "origen": origen, "generado_por": script,
|
| 40 |
+
"entradas": entradas, "como_se_calcula": formula,
|
| 41 |
+
"tipo": tipo, "grupos": grupos, "nota": nota})
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
def f(name):
|
| 45 |
+
d = formulas.get(name, {})
|
| 46 |
+
return d.get("entradas", ""), d.get("formula", "")
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
# ── 1. team_stats_agg.parquet ────────────────────────────────────────────────
|
| 50 |
+
DERIVADAS_AGG = {
|
| 51 |
+
"pct_exito_centros": ("cross_completados, cross_total",
|
| 52 |
+
"cross_completados / cross_total (reemplaza a las dos crudas)"),
|
| 53 |
+
"n_partidos": ("filas del CSV por equipo-temporada", "cantidad de partidos agregados"),
|
| 54 |
+
}
|
| 55 |
+
for name, info in sorted(vd.items()):
|
| 56 |
+
ent, form = DERIVADAS_AGG.get(name, ("", ""))
|
| 57 |
+
calc = name in DERIVADAS_AGG
|
| 58 |
+
add(name, info.get("label", name), "team_stats_agg.parquet",
|
| 59 |
+
"calculada" if calc else "directa",
|
| 60 |
+
"scripts/build_team_stats_agg.py" if calc else "pipeline externo del proveedor (team_stats_all_leagues.csv)",
|
| 61 |
+
ent, form or "valor del proveedor por partido, agregado como PROMEDIO por partido",
|
| 62 |
+
info.get("tipo", ""), " · ".join(groups.get(name, [])),
|
| 63 |
+
"negativa (menos = mejor)" if info.get("negativa") else "")
|
| 64 |
+
|
| 65 |
+
# ── 2. sequences.parquet ─────────────────────────────────────────────────────
|
| 66 |
+
for name in dsv["sequences.parquet"]["variables"]:
|
| 67 |
+
if name in META:
|
| 68 |
+
continue
|
| 69 |
+
ent, form = f(name)
|
| 70 |
+
add(name, "", "sequences.parquet", "calculada",
|
| 71 |
+
"scripts/build_sequence_features_v3.py:aggregate (vía ejes_pipeline.py)",
|
| 72 |
+
ent, form or "métrica de la secuencia (ver script)")
|
| 73 |
+
|
| 74 |
+
# ── 3. team_resources.parquet + tasas derivadas ──────────────────────────────
|
| 75 |
+
CRUDAS = {"n_matches": "partidos jugados", "n_intentos": "intentos del recurso",
|
| 76 |
+
"n_exitos": "intentos exitosos", "pv_sum": "Σ pvAdded", "pv_n": "nº de pvAdded sumados",
|
| 77 |
+
"pv_ok_sum": "Σ pvAdded de exitosos", "pv_ok_n": "nº de esos", "n_seqs": "secuencias únicas",
|
| 78 |
+
"tiros": "tiros en esas secuencias", "goles": "goles", "xg_acum": "Σ xG",
|
| 79 |
+
"n_ok_seqs": "secuencias con el recurso exitoso", "xg_ok": "Σ xG de esas",
|
| 80 |
+
"evento_clave": "veces que el recurso fue la acción de MÁS pvAdded del ataque"}
|
| 81 |
+
for name, desc in CRUDAS.items():
|
| 82 |
+
add(name, "", "team_resources.parquet", "calculada",
|
| 83 |
+
"scripts/lowblock_extract_events.py → lowblock_build_artifacts.py",
|
| 84 |
+
"eventos del preprocessed", f"suma cruda por liga·temp·equipo·lado·recurso·bloque: {desc}")
|
| 85 |
+
for name in ["intentos_90", "pv_jugada", "pv_jugada_exitosa", "pct_exito", "tiros_jugada",
|
| 86 |
+
"xg_jugada", "xg_jugada_exitosa", "pct_goles"]:
|
| 87 |
+
ent, form = f(name)
|
| 88 |
+
add(name, "", "team_resources.parquet (derivada en la app)", "calculada",
|
| 89 |
+
"lowblock_data.py:_combine / app.js:_lbCombine",
|
| 90 |
+
ent, form or "tasa recalculada al combinar los bloques elegidos")
|
| 91 |
+
|
| 92 |
+
# ── 4. Ejes ──────────────────────────────────────────────────────────────────
|
| 93 |
+
LBL = {"verticalidad": "Verticalidad", "elaboracion": "Elaboración", "individual": "Juego individual",
|
| 94 |
+
"rotura_profundidad": "Rotura de líneas / profundidad", "amplitud_centro": "Amplitud / centros",
|
| 95 |
+
"robo_alto": "Robo alto", "aereo_segunda": "Aéreo / 2ª jugada"}
|
| 96 |
+
for eje, comps in ejes_def.items():
|
| 97 |
+
add(f"eje_{eje}", LBL.get(eje, eje), "ejes/*.parquet", "calculada",
|
| 98 |
+
"scripts/ejes_build_artifacts.py", ", ".join(comps),
|
| 99 |
+
"promedio de los z-score (dentro de liga-temporada) de sus métricas; en 'ppda' se invierte el signo")
|
| 100 |
+
for name, desc in {"mix_z": "score del eje en z dentro de su liga-temporada",
|
| 101 |
+
"mix_global": "score del eje en unidades globales (comparable entre ligas)",
|
| 102 |
+
"real": "tiros reales en jugadas de ese eje", "esperado": "tiros esperados (modelo P(tiro))",
|
| 103 |
+
"liga_real": "media de la liga", "n_alto": "nº de secuencias 'eje alto' que sostienen el valor",
|
| 104 |
+
"tiros_esp": "tiros esperados de la secuencia (modelo P(tiro))",
|
| 105 |
+
"tiros_real": "tiros reales"}.items():
|
| 106 |
+
add(name, "", "ejes/*.parquet", "calculada", "scripts/ejes_build_artifacts.py",
|
| 107 |
+
"sequences.parquet", desc)
|
| 108 |
+
|
| 109 |
+
# ── 5. goalkicks ─────────────────────────────────────────────────────────────
|
| 110 |
+
for name in dsv.get("goalkicks/team_profiles.parquet", {}).get("variables", []):
|
| 111 |
+
if name in META:
|
| 112 |
+
continue
|
| 113 |
+
add(name, "", "goalkicks/team_profiles.parquet", "calculada",
|
| 114 |
+
"scripts/build_goalkick_artifacts.py", "secuencias que nacen en saque de arco (qualifier 124)",
|
| 115 |
+
"perfil de salida desde el arco", nota="sección de la app todavía en desarrollo (WIP)")
|
| 116 |
+
|
| 117 |
+
OUT.mkdir(parents=True, exist_ok=True)
|
| 118 |
+
cols = ["variable", "nombre_de_uso", "dataset", "origen", "generado_por", "entradas",
|
| 119 |
+
"como_se_calcula", "tipo", "grupos", "nota"]
|
| 120 |
+
with (OUT / "variables.csv").open("w", newline="", encoding="utf-8") as fh:
|
| 121 |
+
w = csv.DictWriter(fh, fieldnames=cols)
|
| 122 |
+
w.writeheader()
|
| 123 |
+
w.writerows(rows)
|
| 124 |
+
|
| 125 |
+
# markdown por dataset
|
| 126 |
+
by_ds: dict[str, list] = {}
|
| 127 |
+
for r in rows:
|
| 128 |
+
by_ds.setdefault(r["dataset"], []).append(r)
|
| 129 |
+
n_dir = sum(1 for r in rows if r["origen"] == "directa")
|
| 130 |
+
md = ["# Diccionario de variables", "",
|
| 131 |
+
"Qué significa cada variable, de dónde sale y —si la calculamos nosotros— con qué fórmula.", "",
|
| 132 |
+
"## Cómo leer este archivo", "",
|
| 133 |
+
"Lo que más importa de cada variable es su **origen**:", "",
|
| 134 |
+
"| Origen | Qué significa |", "|---|---|",
|
| 135 |
+
"| **directa** | viene así del proveedor; nosotros solo la promediamos por partido |",
|
| 136 |
+
"| **calculada** | la computamos nosotros, y acá está de qué sale y cómo |", "",
|
| 137 |
+
f"En total hay **{len(rows)} variables** en {len(by_ds)} datasets: "
|
| 138 |
+
f"**{n_dir} directas** y **{len(rows)-n_dir} calculadas**.", "",
|
| 139 |
+
"Una misma variable puede aparecer **dos veces** si existe en dos datasets con orígenes",
|
| 140 |
+
"distintos (`ppda` es el caso típico: directa del proveedor por equipo, y calculada por",
|
| 141 |
+
"nosotros por jugada). No son intercambiables.", "",
|
| 142 |
+
"> Este archivo lo genera `scripts/gen_diccionario_variables.py`: **no editarlo a mano**.",
|
| 143 |
+
"> Para trabajarlo en Excel, usá [variables.csv](variables.csv).", "",
|
| 144 |
+
"## Los datasets de un vistazo", "",
|
| 145 |
+
"| Dataset | Qué guarda | Variables | Origen |", "|---|---|---|---|"]
|
| 146 |
+
QUE = {"team_stats_agg.parquet": "estadísticas de equipo por temporada (la base de la app)",
|
| 147 |
+
"sequences.parquet": "una fila por jugada: cómo fue construida",
|
| 148 |
+
"team_resources.parquet": "recursos para romper un bloque, por equipo",
|
| 149 |
+
"team_resources.parquet (derivada en la app)": "las tasas que la app recalcula al combinar bloques",
|
| 150 |
+
"ejes/*.parquet": "los 7 ejes de estilo por equipo",
|
| 151 |
+
"goalkicks/team_profiles.parquet": "perfil de salida desde el arco"}
|
| 152 |
+
for ds, rs in by_ds.items():
|
| 153 |
+
d = sum(1 for r in rs if r["origen"] == "directa")
|
| 154 |
+
md.append(f"| `{ds}` | {QUE.get(ds, '')} | {len(rs)} | "
|
| 155 |
+
f"{'todas calculadas' if not d else f'{d} directas / {len(rs)-d} calculadas'} |")
|
| 156 |
+
md.append("")
|
| 157 |
+
for ds, rs in by_ds.items():
|
| 158 |
+
md += [f"## `{ds}`", "",
|
| 159 |
+
"| Variable | Nombre de uso | Origen | De qué sale | Cómo se calcula |", "|---|---|---|---|---|"]
|
| 160 |
+
for r in sorted(rs, key=lambda x: x["variable"]):
|
| 161 |
+
md.append(f"| `{r['variable']}` | {r['nombre_de_uso']} | {r['origen']} | {r['entradas']} | {r['como_se_calcula']} |")
|
| 162 |
+
md.append("")
|
| 163 |
+
(OUT / "variables.md").write_text("\n".join(md), encoding="utf-8")
|
| 164 |
+
# ── tablas por GRUPO (estilo "Estilos de juego - bloque.xlsx") inyectadas en los .md ──────
|
| 165 |
+
def tabla_grupos() -> str:
|
| 166 |
+
porg: dict[str, list[str]] = {}
|
| 167 |
+
for col, gs in groups.items():
|
| 168 |
+
for g in gs:
|
| 169 |
+
porg.setdefault(g, []).append(col)
|
| 170 |
+
out = [f"*{len(porg)} grupos · {sum(len(v) for v in porg.values())} asignaciones. "
|
| 171 |
+
"Una variable puede estar en varios grupos.*", ""]
|
| 172 |
+
for g in sorted(porg):
|
| 173 |
+
cols = sorted(porg[g], key=lambda c: (vd.get(c, {}).get("label", c) or c).lower())
|
| 174 |
+
out += [f"### {g} ({len(cols)})", "", "| Variable | Nombre de uso |", "|---|---|"]
|
| 175 |
+
out += [f"| `{c}` | {vd.get(c, {}).get('label', '')} |" for c in cols]
|
| 176 |
+
out.append("")
|
| 177 |
+
return "\n".join(out)
|
| 178 |
+
|
| 179 |
+
|
| 180 |
+
def tabla_tipos() -> str:
|
| 181 |
+
port: dict[str, list[str]] = {}
|
| 182 |
+
for c, i in vd.items():
|
| 183 |
+
port.setdefault(i.get("tipo", "Otras"), []).append(c)
|
| 184 |
+
out = ["| Tipo | Variables |", "|---|---|"]
|
| 185 |
+
out += [f"| {t} | {len(port[t])} |" for t in sorted(port)]
|
| 186 |
+
return "\n".join(out)
|
| 187 |
+
|
| 188 |
+
|
| 189 |
+
def tabla_ejes() -> str:
|
| 190 |
+
out = ["| Eje | Nombre de uso | Métricas que lo componen |", "|---|---|---|"]
|
| 191 |
+
for eje, comps in ejes_def.items():
|
| 192 |
+
out.append(f"| `eje_{eje}` | {LBL.get(eje, eje)} | " + ", ".join(f"`{c}`" for c in comps) + " |")
|
| 193 |
+
return "\n".join(out)
|
| 194 |
+
|
| 195 |
+
|
| 196 |
+
AUTO = {"grupos": tabla_grupos, "tipos": tabla_tipos, "ejes": tabla_ejes}
|
| 197 |
+
import re as _re
|
| 198 |
+
for md_path in sorted(OUT.glob("*/*.md")):
|
| 199 |
+
txt = md_path.read_text(encoding="utf-8")
|
| 200 |
+
new = txt
|
| 201 |
+
for key, fn in AUTO.items():
|
| 202 |
+
pat = _re.compile(r"(<!-- AUTO:" + key + r" -->)(.*?)(<!-- /AUTO:" + key + r" -->)", _re.S)
|
| 203 |
+
if pat.search(new):
|
| 204 |
+
new = pat.sub(lambda m: m.group(1) + "\n" + fn() + "\n" + m.group(3), new)
|
| 205 |
+
if new != txt:
|
| 206 |
+
md_path.write_text(new, encoding="utf-8")
|
| 207 |
+
print(f" inyectado: reportes/{md_path.name}")
|
| 208 |
+
|
| 209 |
+
|
| 210 |
+
# ── CSV "ancho" por reporte/gráfico (formato de "Estilos de juego - bloque.xlsx"): ───────────
|
| 211 |
+
# una COLUMNA por grupo/categoría, y en las celdas las variables. Se rellena con vacío.
|
| 212 |
+
def _write_wide(path: Path, cats: dict[str, list[str]]) -> None:
|
| 213 |
+
cols = list(cats)
|
| 214 |
+
alto = max((len(v) for v in cats.values()), default=0)
|
| 215 |
+
with path.open("w", newline="", encoding="utf-8") as fh:
|
| 216 |
+
w = csv.writer(fh)
|
| 217 |
+
w.writerow(cols)
|
| 218 |
+
for i in range(alto):
|
| 219 |
+
w.writerow([(cats[c][i] if i < len(cats[c]) else "") for c in cols])
|
| 220 |
+
|
| 221 |
+
|
| 222 |
+
def _pair(cats_cols: dict[str, list[str]]) -> dict:
|
| 223 |
+
"""Para cada categoría deja DOS columnas: el nombre con el que la llamamos y el técnico."""
|
| 224 |
+
out: dict[str, list[str]] = {}
|
| 225 |
+
for cat, cols in cats_cols.items():
|
| 226 |
+
cols = sorted(cols, key=lambda c: (vd.get(c, {}).get("label", c) or c).lower())
|
| 227 |
+
out[cat] = [vd.get(c, {}).get("label", c) or c for c in cols]
|
| 228 |
+
out[f"{cat} · variable"] = list(cols)
|
| 229 |
+
return out
|
| 230 |
+
|
| 231 |
+
|
| 232 |
+
def _cats_grupos() -> dict:
|
| 233 |
+
porg: dict[str, list[str]] = {}
|
| 234 |
+
for col, gs in groups.items():
|
| 235 |
+
for g in gs:
|
| 236 |
+
porg.setdefault(g, []).append(col)
|
| 237 |
+
return _pair({g: porg[g] for g in sorted(porg)})
|
| 238 |
+
|
| 239 |
+
|
| 240 |
+
def _cats_tipos() -> dict:
|
| 241 |
+
port: dict[str, list[str]] = {}
|
| 242 |
+
for c, i in vd.items():
|
| 243 |
+
port.setdefault(i.get("tipo", "Otras"), []).append(c)
|
| 244 |
+
return _pair({t: port[t] for t in sorted(port)})
|
| 245 |
+
|
| 246 |
+
|
| 247 |
+
def _cats_ejes() -> dict:
|
| 248 |
+
# las métricas de los ejes son de sequences.parquet (no tienen label en var_dict)
|
| 249 |
+
out: dict[str, list[str]] = {}
|
| 250 |
+
for e, cs in ejes_def.items():
|
| 251 |
+
out[LBL.get(e, e)] = list(cs)
|
| 252 |
+
return out
|
| 253 |
+
|
| 254 |
+
|
| 255 |
+
def _cats_recursos() -> dict:
|
| 256 |
+
lb = json.loads((ROOT / "webapp-static/site/lowblock.json").read_text(encoding="utf-8"))["options"]
|
| 257 |
+
return {"Lado": ["Ofensivo (of)", "Defensivo (def)"],
|
| 258 |
+
"Bloque": list(lb.get("bloques", {}).values()),
|
| 259 |
+
"Recursos": list(lb.get("recursos", {}).values()),
|
| 260 |
+
"Métricas": list(lb.get("metricas", {}).values())}
|
| 261 |
+
|
| 262 |
+
|
| 263 |
+
# Carpetas espejo de las apps: equipos-y-variables/ · reportes-de-partido/ · modelos/ · analisis/
|
| 264 |
+
_wide = {"equipos-y-variables/top-equipos": _cats_grupos,
|
| 265 |
+
"equipos-y-variables/perfil-y-similares": _cats_grupos,
|
| 266 |
+
"equipos-y-variables/scatter-libre": _cats_tipos,
|
| 267 |
+
"equipos-y-variables/ejes-ataque-defensa": _cats_ejes,
|
| 268 |
+
"equipos-y-variables/recursos": _cats_recursos}
|
| 269 |
+
for rel, fn in _wide.items():
|
| 270 |
+
_write_wide(OUT / f"{rel}.csv", fn())
|
| 271 |
+
cats_json = json.loads((OUT / "_reportes_categorias.json").read_text(encoding="utf-8"))
|
| 272 |
+
for rel, cats in cats_json.items():
|
| 273 |
+
(OUT / rel).parent.mkdir(parents=True, exist_ok=True)
|
| 274 |
+
_write_wide(OUT / f"{rel}.csv", cats)
|
| 275 |
+
print(f" CSV: {len(_wide) + len(cats_json)} archivos")
|
| 276 |
+
|
| 277 |
+
print(f"OK variables.csv / variables.md — {len(rows)} variables, {len(by_ds)} datasets")
|
| 278 |
+
for ds, rs in by_ds.items():
|
| 279 |
+
print(f" {ds:44} {len(rs):4}")
|
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Sube vendor/data al dataset privado `rrc-data` y reinicia el Space RRC.
|
| 2 |
+
|
| 3 |
+
Es el paso que faltaba en la rutina: el Space baja su data de este dataset al bootear
|
| 4 |
+
(``ensure_data`` con ``RR_DATA_REPO``). Subiendo acá los artefactos frescos + reiniciando
|
| 5 |
+
el Space, la app de HF queda actualizada. ``upload_folder`` sube SOLO los archivos que
|
| 6 |
+
cambiaron (dedupe por hash), así que aunque mande toda la carpeta transfiere poco.
|
| 7 |
+
|
| 8 |
+
Usa el token HF ya configurado localmente (whoami = pablogrois). Uso:
|
| 9 |
+
|
| 10 |
+
python racing-reports/scripts/push_data_to_hf.py
|
| 11 |
+
"""
|
| 12 |
+
|
| 13 |
+
from __future__ import annotations
|
| 14 |
+
|
| 15 |
+
from pathlib import Path
|
| 16 |
+
|
| 17 |
+
from huggingface_hub import HfApi
|
| 18 |
+
|
| 19 |
+
DATASET_ID = "pablogrois/rrc-data"
|
| 20 |
+
SPACE_ID = "pablogrois/RRC"
|
| 21 |
+
DATA_DIR = Path(__file__).resolve().parents[1] / "vendor" / "data"
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
def main() -> None:
|
| 25 |
+
if not DATA_DIR.is_dir():
|
| 26 |
+
raise SystemExit(f"No existe {DATA_DIR}")
|
| 27 |
+
api = HfApi()
|
| 28 |
+
who = api.whoami()["name"]
|
| 29 |
+
print(f"[hf] usuario {who} → subiendo {DATA_DIR} a datasets/{DATASET_ID} …", flush=True)
|
| 30 |
+
api.upload_folder(
|
| 31 |
+
folder_path=str(DATA_DIR),
|
| 32 |
+
repo_id=DATASET_ID,
|
| 33 |
+
repo_type="dataset",
|
| 34 |
+
commit_message="Refresh semanal de artefactos (rutina martes)",
|
| 35 |
+
)
|
| 36 |
+
print("[hf] dataset actualizado. Reiniciando Space para que re-sincronice…", flush=True)
|
| 37 |
+
api.restart_space(SPACE_ID)
|
| 38 |
+
print(f"[hf] Space {SPACE_ID} reiniciándose ✓", flush=True)
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
if __name__ == "__main__":
|
| 42 |
+
main()
|
|
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"pases_progresivos": "Pases Progresivos",
|
| 3 |
+
"secuencias_build_up": "Secuencias Build Up",
|
| 4 |
+
"pct_pases_fuera_area_gk": "GK % Pases Fuera del Área",
|
| 5 |
+
"pct_pases_rasos_gk": "GK % Pases Rasos",
|
| 6 |
+
"avg_distancia_porteria_pases_cortos_gk": "GK avg Dist. Porteria en Pases Cortos",
|
| 7 |
+
"pases_progresivos_rival": "Pases Progresivos del Rival",
|
| 8 |
+
"xg_avg_vs_bloque_alto_rival": "xG conc avg vs Bloque Alto",
|
| 9 |
+
"xg_avg_vs_bloque_bajo_rival": "xG conc avg vs Bloque Bajo",
|
| 10 |
+
"xg_avg_vs_bloque_medio_rival": "xG conc avg vs Bloque Medio",
|
| 11 |
+
"xg_secuencias_build_up_rival": "xG conc Build Up",
|
| 12 |
+
"xg_tras_centro_raso_temprano_rival": "xG conc tras Centro Raso Temprano",
|
| 13 |
+
"xg_tras_centro_raso_area_cutback_rival": "xG conc tras Cutback",
|
| 14 |
+
"xg_tras_centro_raso_area_dividido_rival": "xG conc tras Dividido",
|
| 15 |
+
"xg_tras_error_rival": "xG conc tras Error",
|
| 16 |
+
"xg_tras_centro_inswinger_area_rival": "xG conc tras Inswinger",
|
| 17 |
+
"xg_tras_centro_inswinger_temprano_rival": "xG conc tras Inswinger Temprano",
|
| 18 |
+
"xg_tras_centro_outswinger_area_rival": "xG conc tras Outswinger",
|
| 19 |
+
"xg_tras_centro_outswinger_temprano_rival": "xG conc tras Outswinger Temprano",
|
| 20 |
+
"xg_tras_profundidad_media_rival": "xG conc tras Profundidad",
|
| 21 |
+
"xg_tras_profundidad_corta_rival": "xG conc tras Prof. Corta",
|
| 22 |
+
"xg_tras_profundidad_larga_rival": "xG conc tras Prof. Larga",
|
| 23 |
+
"xg_vs_bloque_alto_rival": "xG conc vs Bloque Alto",
|
| 24 |
+
"xg_vs_bloque_bajo_rival": "xG conc vs Bloque Bajo",
|
| 25 |
+
"xg_vs_bloque_medio_rival": "xG conc vs Bloque Medio",
|
| 26 |
+
"pct_centros_aereo_rival": "% Centros Aéreos del Rival",
|
| 27 |
+
"tiros_mas_25_metros_rival": "Tiros Conc. +25 m",
|
| 28 |
+
"xg_tiros_mas_25_metros_rival": "xG Conc. Tiros +25 m",
|
| 29 |
+
"pct_tiros_fuera_area_rival": "% Tiros Fuera del Área del Rival",
|
| 30 |
+
"pct_tiros_cabeza_rival": "% Tiros de Cabeza del Rival",
|
| 31 |
+
"pct_pases_al_area_son_centros_rival": "% Pases al Área que son Centros del Rival",
|
| 32 |
+
"pct_centros_zona_bandas_rival": "% Centros desde Banda del Rival",
|
| 33 |
+
"pct_centros_rasos_zona_bandas_rival": "% Centros Rasos desde Banda del Rival",
|
| 34 |
+
"pct_pases_al_corte_zona_bandas_rival": "% Pases al Corte desde Banda del Rival",
|
| 35 |
+
"pct_pases_hacia_atras_zona_bandas_rival": "% Pases Atrás desde Banda del Rival",
|
| 36 |
+
"pct_cutback_zona_bandas_rival": "% Cutback desde Banda del Rival",
|
| 37 |
+
"pct_dividido_zona_bandas_rival": "% Dividido desde Banda del Rival",
|
| 38 |
+
"pct_takeon_zona_bandas_rival": "% Regate desde Banda del Rival",
|
| 39 |
+
"xg_tras_presion_alta": "xG tras Press Alta",
|
| 40 |
+
"xg_tras_recuperacion_tras_perdida": "xG tras Recup tras Perdida",
|
| 41 |
+
"pct_segundas_jugadas_ganadas_tras_duelo_aereo": "% 2ª Jugada Ganada Tras Duelo Aéreo",
|
| 42 |
+
"pct_segundas_jugadas_ganadas_tras_duelo_aereo_rival": "% 2ª Jugada Ganada Tras Duelo Aéreo del Rival",
|
| 43 |
+
"xg_avg_vs_bloque_alto": "xG avg vs Bloque Alto",
|
| 44 |
+
"xg_avg_vs_bloque_bajo": "xG avg vs Bloque Bajo",
|
| 45 |
+
"xg_avg_vs_bloque_medio": "xG avg vs Bloque Medio",
|
| 46 |
+
"xg_tras_centro_raso_temprano": "xG tras Centro Raso Temprano",
|
| 47 |
+
"xg_tras_centro_raso_area_cutback": "xG tras Cutback",
|
| 48 |
+
"xg_tras_centro_raso_area_dividido": "xG tras Dividido",
|
| 49 |
+
"xg_tras_error": "xG tras Error",
|
| 50 |
+
"xg_tras_centro_inswinger_area": "xG tras Inswinger",
|
| 51 |
+
"xg_tras_centro_inswinger_temprano": "xG tras Inswinger Temprano",
|
| 52 |
+
"xg_tras_centro_outswinger_area": "xG tras Outswinger",
|
| 53 |
+
"xg_tras_centro_outswinger_temprano": "xG tras Outswinger Temprano",
|
| 54 |
+
"xg_tras_profundidad_media": "xG tras Profundidad",
|
| 55 |
+
"xg_tras_profundidad_corta": "xG tras Prof. Corta",
|
| 56 |
+
"xg_tras_profundidad_larga": "xG tras Prof. Larga",
|
| 57 |
+
"xg_vs_bloque_alto": "xG vs Bloque Alto",
|
| 58 |
+
"xg_vs_bloque_bajo": "xG vs Bloque Bajo",
|
| 59 |
+
"xg_vs_bloque_medio": "xG vs Bloque Medio",
|
| 60 |
+
"pct_centros_aereo": "% Centros Aéreos",
|
| 61 |
+
"tiros_mas_25_metros": "Tiros +25 m",
|
| 62 |
+
"pct_tiros_fuera_area": "% Tiros Fuera del Área",
|
| 63 |
+
"pct_tiros_cabeza": "% Tiros de Cabeza",
|
| 64 |
+
"pct_pases_al_area_son_centros": "% Pases al Área que son Centros",
|
| 65 |
+
"pct_centros_zona_bandas": "% Centros desde Banda",
|
| 66 |
+
"pct_centros_rasos_zona_bandas": "% Centros Rasos desde Banda",
|
| 67 |
+
"pct_pases_al_corte_zona_bandas": "% Pases al Corte desde Banda",
|
| 68 |
+
"pct_pases_hacia_atras_zona_bandas": "% Pases Atrás desde Banda",
|
| 69 |
+
"pct_cutback_zona_bandas": "% Cutback desde Banda",
|
| 70 |
+
"pct_dividido_zona_bandas": "% Dividido desde Banda",
|
| 71 |
+
"pct_takeon_zona_bandas": "% Regate desde Banda",
|
| 72 |
+
"avg_distancia_centroide": "Avg Dist. Centroide",
|
| 73 |
+
"avg_ancho_robusto_equipo": "Ancho Robusto Equipo avg",
|
| 74 |
+
"indice_verticalidad_transiciones_avg_rival": "Indice Verticalidad Transiciones Conc. (Avg)",
|
| 75 |
+
"indice_verticalidad_transiciones_suma_rival": "Indice Verticalidad Transiciones Conc. (Suma)",
|
| 76 |
+
"xg_tras_recuperacion_tras_perdida_rival": "xG conc tras Recup tras Perdida",
|
| 77 |
+
"xg_tras_transicion_abp_rival": "xG conc tras Transicion ABP",
|
| 78 |
+
"xg_tras_transicion_bloque_bajo_medio_rival": "xG conc tras Transicion Bloque Bajo-Medio",
|
| 79 |
+
"xg_tras_transicion_juego_directo_rival": "xG conc tras Transicion Juego Directo",
|
| 80 |
+
"indice_verticalidad_transiciones_avg": "Indice Verticalidad Transiciones (Avg)",
|
| 81 |
+
"indice_verticalidad_transiciones_suma": "Indice Verticalidad Transiciones (Suma)",
|
| 82 |
+
"xg_tras_transicion_abp": "xG tras Transicion ABP",
|
| 83 |
+
"xg_tras_transicion_bloque_bajo_medio": "xG tras Transicion Bloque Bajo-Medio",
|
| 84 |
+
"xg_tras_transicion_juego_directo": "xG tras Transicion Juego Directo",
|
| 85 |
+
"avg_ancho_robusto_equipo_rival": "Ancho Robusto Equipo avg del Rival",
|
| 86 |
+
"avg_distancia_centroide_rival": "Avg Dist. Centroide del Rival",
|
| 87 |
+
"avg_distancia_porteria_pases_cortos_gk_rival": "GK avg Dist. Porteria en Pases Cortos del Rival",
|
| 88 |
+
"pct_pases_fuera_area_gk_rival": "GK % Pases Fuera del Área del Rival",
|
| 89 |
+
"pct_pases_rasos_gk_rival": "GK % Pases Rasos del Rival",
|
| 90 |
+
"secuencias_build_up_rival": "Secuencias Build Up del Rival",
|
| 91 |
+
"secuencias_con_tiro": "Secuencias con Tiro",
|
| 92 |
+
"secuencias_con_tiro_rival": "Secuencias con Tiro del Rival",
|
| 93 |
+
"xg_secuencias_build_up": "xG Build Up",
|
| 94 |
+
"xg_tiros_mas_25_metros": "xG Tiros +25 m",
|
| 95 |
+
"xg_tras_presion_alta_rival": "xG conc tras Press Alta",
|
| 96 |
+
"xt_acumulado_rival": "xT Acumulado del Rival"
|
| 97 |
+
}
|
|
The diff for this file is too large to render.
See raw diff
|
|
|