Spaces:
Running
Running
Commit ·
a798829
1
Parent(s): fd8ce11
Ejes de ataque: reportes pre/post partido + scatter equipos + artefactos 28 ligas
Browse files- reports/ejes.py: ejes_pre (predicción por eje vs norma, gen propia × concesión
rival) y ejes_post (firma del partido: ejes vs norma, esperado-vs-real del
modelo, variables que más se movieron)
- ejes_data.py: acceso a artefactos (dev dir → bundle vendor/data/ejes → Azure)
- API /api/ejes/{options,profiles} + sección 5 'Ejes ataque/defensa' (scatter
SVG interactivo) en Equipos y variables
- artefactos bundleados: 28 ligas 25-26, modelo global AUC 0.98, validación
predictor: acierto direccional 58% (63.8% en flechas grandes)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This view is limited to 50 files because it contains too many changes. See raw diff
- .gitignore +3 -0
- scripts/upload_ejes_artifacts.py +55 -0
- src/racing_reports/api/routes_ejes.py +24 -0
- src/racing_reports/api/routes_reports.py +3 -2
- src/racing_reports/ejes_data.py +261 -0
- src/racing_reports/reports/ejes.py +201 -0
- src/racing_reports/runner.py +25 -5
- src/racing_reports/web/app.py +2 -0
- src/racing_reports/web/templates/home.html +142 -2
- vendor/data/ejes/_index.json +30 -0
- vendor/data/ejes/austrian-bundesliga/25-26/ejes_definition.json +1 -0
- vendor/data/ejes/austrian-bundesliga/25-26/match_team_ejes.parquet +3 -0
- vendor/data/ejes/austrian-bundesliga/25-26/match_team_vars.parquet +3 -0
- vendor/data/ejes/austrian-bundesliga/25-26/predictor.json +1 -0
- vendor/data/ejes/austrian-bundesliga/25-26/scales.json +1 -0
- vendor/data/ejes/austrian-bundesliga/25-26/team_profiles.parquet +3 -0
- vendor/data/ejes/belgian-challenger-pro-league/25-26/ejes_definition.json +1 -0
- vendor/data/ejes/belgian-challenger-pro-league/25-26/match_team_ejes.parquet +3 -0
- vendor/data/ejes/belgian-challenger-pro-league/25-26/match_team_vars.parquet +3 -0
- vendor/data/ejes/belgian-challenger-pro-league/25-26/predictor.json +1 -0
- vendor/data/ejes/belgian-challenger-pro-league/25-26/scales.json +1 -0
- vendor/data/ejes/belgian-challenger-pro-league/25-26/team_profiles.parquet +3 -0
- vendor/data/ejes/brack-super-league/25-26/ejes_definition.json +1 -0
- vendor/data/ejes/brack-super-league/25-26/match_team_ejes.parquet +3 -0
- vendor/data/ejes/brack-super-league/25-26/match_team_vars.parquet +3 -0
- vendor/data/ejes/brack-super-league/25-26/predictor.json +1 -0
- vendor/data/ejes/brack-super-league/25-26/scales.json +1 -0
- vendor/data/ejes/brack-super-league/25-26/team_profiles.parquet +3 -0
- vendor/data/ejes/chile-primera/26/ejes_definition.json +1 -0
- vendor/data/ejes/chile-primera/26/match_team_ejes.parquet +3 -0
- vendor/data/ejes/chile-primera/26/match_team_vars.parquet +3 -0
- vendor/data/ejes/chile-primera/26/predictor.json +1 -0
- vendor/data/ejes/chile-primera/26/scales.json +1 -0
- vendor/data/ejes/chile-primera/26/team_profiles.parquet +3 -0
- vendor/data/ejes/croatia-prva-hnl/25-26/ejes_definition.json +1 -0
- vendor/data/ejes/croatia-prva-hnl/25-26/match_team_ejes.parquet +3 -0
- vendor/data/ejes/croatia-prva-hnl/25-26/match_team_vars.parquet +3 -0
- vendor/data/ejes/croatia-prva-hnl/25-26/predictor.json +1 -0
- vendor/data/ejes/croatia-prva-hnl/25-26/scales.json +1 -0
- vendor/data/ejes/croatia-prva-hnl/25-26/team_profiles.parquet +3 -0
- vendor/data/ejes/danish-superligaen/25-26/ejes_definition.json +1 -0
- vendor/data/ejes/danish-superligaen/25-26/match_team_ejes.parquet +3 -0
- vendor/data/ejes/danish-superligaen/25-26/match_team_vars.parquet +3 -0
- vendor/data/ejes/danish-superligaen/25-26/predictor.json +1 -0
- vendor/data/ejes/danish-superligaen/25-26/scales.json +1 -0
- vendor/data/ejes/danish-superligaen/25-26/team_profiles.parquet +3 -0
- vendor/data/ejes/dutch-eerste-divisie/25-26/ejes_definition.json +1 -0
- vendor/data/ejes/dutch-eerste-divisie/25-26/match_team_ejes.parquet +3 -0
- vendor/data/ejes/dutch-eerste-divisie/25-26/match_team_vars.parquet +3 -0
- vendor/data/ejes/dutch-eerste-divisie/25-26/predictor.json +1 -0
.gitignore
CHANGED
|
@@ -40,3 +40,6 @@ vendor/data/processed/
|
|
| 40 |
!vendor/data/modeling/model_peligro_pasillo__*.txt
|
| 41 |
!vendor/data/modeling/team_features_latest.parquet
|
| 42 |
!vendor/data/modeling/matchup_feat_cols.json
|
|
|
|
|
|
|
|
|
|
|
|
| 40 |
!vendor/data/modeling/model_peligro_pasillo__*.txt
|
| 41 |
!vendor/data/modeling/team_features_latest.parquet
|
| 42 |
!vendor/data/modeling/matchup_feat_cols.json
|
| 43 |
+
|
| 44 |
+
# Artefactos de ejes bundleados (chicos, patrón CORE artifacts)
|
| 45 |
+
!vendor/data/ejes/**/*.parquet
|
scripts/upload_ejes_artifacts.py
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Sube los artefactos de EJES a Azure (report_artifacts root) para que el Space los consuma.
|
| 2 |
+
|
| 3 |
+
Recorre data/analysis/next_goal/artifacts/ejes/<slug>/<season>/* del repo Racing y sube cada
|
| 4 |
+
archivo a ``{azure_report_artifacts_root}/ejes/...``. Chicos (~11MB total).
|
| 5 |
+
|
| 6 |
+
Uso: python scripts/upload_ejes_artifacts.py [--source ../data/analysis/next_goal/artifacts/ejes] [--overwrite]
|
| 7 |
+
"""
|
| 8 |
+
|
| 9 |
+
from __future__ import annotations
|
| 10 |
+
|
| 11 |
+
import argparse
|
| 12 |
+
import sys
|
| 13 |
+
from pathlib import Path
|
| 14 |
+
|
| 15 |
+
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
|
| 16 |
+
|
| 17 |
+
from racing_reports.config import DEFAULT_SETTINGS
|
| 18 |
+
from racing_reports.datastore import DataStore, _azure_credential # noqa: F401
|
| 19 |
+
from azure.storage.filedatalake import DataLakeServiceClient
|
| 20 |
+
|
| 21 |
+
DEFAULT_SOURCE = Path(__file__).resolve().parents[2] / "data" / "analysis" / "next_goal" / "artifacts" / "ejes"
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
def main() -> None:
|
| 25 |
+
ap = argparse.ArgumentParser()
|
| 26 |
+
ap.add_argument("--source", type=Path, default=DEFAULT_SOURCE)
|
| 27 |
+
ap.add_argument("--overwrite", action="store_true")
|
| 28 |
+
args = ap.parse_args()
|
| 29 |
+
|
| 30 |
+
src: Path = args.source
|
| 31 |
+
if not src.is_dir():
|
| 32 |
+
raise SystemExit(f"No existe {src}")
|
| 33 |
+
fs = DataStore()._filesystem_client()
|
| 34 |
+
root = DEFAULT_SETTINGS.azure_report_artifacts_root.strip("/")
|
| 35 |
+
files = [p for p in src.rglob("*") if p.is_file() and not p.name.startswith("_")]
|
| 36 |
+
print(f"{len(files)} archivos → {root}/ejes/")
|
| 37 |
+
subidos = saltados = 0
|
| 38 |
+
for p in files:
|
| 39 |
+
rel = p.relative_to(src).as_posix()
|
| 40 |
+
remote = f"{root}/ejes/{rel}"
|
| 41 |
+
fc = fs.get_file_client(remote)
|
| 42 |
+
if not args.overwrite:
|
| 43 |
+
try:
|
| 44 |
+
fc.get_file_properties()
|
| 45 |
+
saltados += 1
|
| 46 |
+
continue
|
| 47 |
+
except Exception:
|
| 48 |
+
pass
|
| 49 |
+
fc.upload_data(p.read_bytes(), overwrite=True)
|
| 50 |
+
subidos += 1
|
| 51 |
+
print(f"subidos: {subidos} | ya estaban: {saltados}")
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
if __name__ == "__main__":
|
| 55 |
+
main()
|
src/racing_reports/api/routes_ejes.py
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Endpoints de la sección "Ejes ataque/defensa" (scatter interactivo de equipos)."""
|
| 2 |
+
|
| 3 |
+
from __future__ import annotations
|
| 4 |
+
|
| 5 |
+
from fastapi import APIRouter, Depends, HTTPException
|
| 6 |
+
|
| 7 |
+
from racing_reports import ejes_data
|
| 8 |
+
from racing_reports.api.deps import require_auth
|
| 9 |
+
|
| 10 |
+
router = APIRouter(prefix="/api/ejes")
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
@router.get("/options", dependencies=[Depends(require_auth)])
|
| 14 |
+
def options() -> dict:
|
| 15 |
+
"""Ligas/temporadas con artefactos de ejes + labels de los ejes."""
|
| 16 |
+
return {"leagues": ejes_data.available(), "ejes": ejes_data.EJE_LABELS}
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
@router.get("/profiles", dependencies=[Depends(require_auth)])
|
| 20 |
+
def profiles(league: str, season: str) -> dict:
|
| 21 |
+
try:
|
| 22 |
+
return ejes_data.profiles_payload(league, season)
|
| 23 |
+
except FileNotFoundError as exc:
|
| 24 |
+
raise HTTPException(status_code=404, detail=f"Sin artefactos de ejes: {exc}")
|
src/racing_reports/api/routes_reports.py
CHANGED
|
@@ -14,7 +14,8 @@ from racing_reports.runner import ReportRunner
|
|
| 14 |
|
| 15 |
router = APIRouter(prefix="/api/reports")
|
| 16 |
|
| 17 |
-
SUPPORTED_REPORTS = {"pre_match", "block_zscore", "post_match", "triple_multitag", "triple_centros",
|
|
|
|
| 18 |
|
| 19 |
|
| 20 |
@router.get(
|
|
@@ -61,7 +62,7 @@ def run(report_type: str, payload: RunRequest) -> RunResponse:
|
|
| 61 |
if not payload.team_a:
|
| 62 |
raise HTTPException(status_code=400, detail="Elegí al menos un equipo (A).")
|
| 63 |
# pre/post necesitan los dos equipos (local + visitante); los de equipo permiten 1.
|
| 64 |
-
if report_type in ("pre_match", "post_match") and not payload.team_b:
|
| 65 |
raise HTTPException(status_code=400, detail="Para previo/post-partido elegí local y visitante.")
|
| 66 |
if report_type == "post_match" and not payload.match_id and not payload.match_date:
|
| 67 |
raise HTTPException(
|
|
|
|
| 14 |
|
| 15 |
router = APIRouter(prefix="/api/reports")
|
| 16 |
|
| 17 |
+
SUPPORTED_REPORTS = {"pre_match", "block_zscore", "post_match", "triple_multitag", "triple_centros",
|
| 18 |
+
"recuperaciones", "ejes_pre", "ejes_post"} # post_match requiere NN
|
| 19 |
|
| 20 |
|
| 21 |
@router.get(
|
|
|
|
| 62 |
if not payload.team_a:
|
| 63 |
raise HTTPException(status_code=400, detail="Elegí al menos un equipo (A).")
|
| 64 |
# pre/post necesitan los dos equipos (local + visitante); los de equipo permiten 1.
|
| 65 |
+
if report_type in ("pre_match", "post_match", "ejes_pre", "ejes_post") and not payload.team_b:
|
| 66 |
raise HTTPException(status_code=400, detail="Para previo/post-partido elegí local y visitante.")
|
| 67 |
if report_type == "post_match" and not payload.match_id and not payload.match_date:
|
| 68 |
raise HTTPException(
|
src/racing_reports/ejes_data.py
ADDED
|
@@ -0,0 +1,261 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Acceso y lógica de los artefactos de EJES de ataque (por liga-temporada).
|
| 2 |
+
|
| 3 |
+
Los artefactos (chicos, ~KB-MB) se generan offline con scripts/ejes_build_artifacts.py del
|
| 4 |
+
repo Racing y viven en Azure bajo ``{report_artifacts_root}/ejes/<slug>/<season>/``:
|
| 5 |
+
|
| 6 |
+
team_profiles.parquet equipo × eje × lado(gen/con): mix_z + real/esperado en eje-alto
|
| 7 |
+
match_team_ejes.parquet matchId × equipo: medias de eje + tiros real/esperado + goles + fecha
|
| 8 |
+
match_team_vars.parquet matchId × equipo: medias de variables (drill-down "qué se movió")
|
| 9 |
+
scales.json σ partido-a-partido, medias/σ de liga, normas por equipo (gen y con)
|
| 10 |
+
predictor.json por eje: coefs {gen, con, intercept} (gen propia + concesión rival)
|
| 11 |
+
|
| 12 |
+
En dev, ``EJES_ARTIFACTS_DIR`` apunta al directorio local y evita Azure.
|
| 13 |
+
"""
|
| 14 |
+
|
| 15 |
+
from __future__ import annotations
|
| 16 |
+
|
| 17 |
+
import json
|
| 18 |
+
import os
|
| 19 |
+
import time
|
| 20 |
+
from functools import lru_cache
|
| 21 |
+
from pathlib import Path
|
| 22 |
+
|
| 23 |
+
import pandas as pd
|
| 24 |
+
|
| 25 |
+
from racing_reports.config import DEFAULT_SETTINGS
|
| 26 |
+
from racing_reports.datastore import DataStore
|
| 27 |
+
|
| 28 |
+
EJE_LABELS = {
|
| 29 |
+
"verticalidad": "Verticalidad",
|
| 30 |
+
"elaboracion": "Elaboración",
|
| 31 |
+
"individual": "Juego individual",
|
| 32 |
+
"rotura_lineas": "Rotura de líneas",
|
| 33 |
+
"amplitud_centro": "Amplitud / centros",
|
| 34 |
+
"profundidad_espalda": "Profundidad / espalda",
|
| 35 |
+
"robo_alto": "Robo alto",
|
| 36 |
+
"aereo_segunda": "Aéreo / 2ª jugada",
|
| 37 |
+
}
|
| 38 |
+
EJES = list(EJE_LABELS)
|
| 39 |
+
|
| 40 |
+
_AVAIL_CACHE: dict[str, object] = {"ts": 0.0, "value": None}
|
| 41 |
+
_AVAIL_TTL = 1800.0
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
def _slug(league: str) -> str:
|
| 45 |
+
return "".join(c.lower() if c.isalnum() else "-" for c in league).strip("-")
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
def _local_dir() -> Path | None:
|
| 49 |
+
raw = os.getenv("EJES_ARTIFACTS_DIR")
|
| 50 |
+
return Path(raw).expanduser() if raw else None
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
def _bundled_dir() -> Path:
|
| 54 |
+
from racing_reports import vendor_env
|
| 55 |
+
return vendor_env.DATA_DIR / "ejes"
|
| 56 |
+
|
| 57 |
+
|
| 58 |
+
def _path(league: str, season: str, fname: str) -> Path:
|
| 59 |
+
"""Orden: dir local de dev (env) → bundle del repo (vendor/data/ejes) → Azure."""
|
| 60 |
+
rel = f"ejes/{_slug(league)}/{season}/{fname}"
|
| 61 |
+
local = _local_dir()
|
| 62 |
+
if local is not None:
|
| 63 |
+
p = local / _slug(league) / season / fname
|
| 64 |
+
if p.exists():
|
| 65 |
+
return p
|
| 66 |
+
raise FileNotFoundError(f"No existe el artefacto local: {p}")
|
| 67 |
+
bundled = _bundled_dir() / _slug(league) / season / fname
|
| 68 |
+
if bundled.exists():
|
| 69 |
+
return bundled
|
| 70 |
+
return DataStore().sync_artifact(rel)
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
@lru_cache(maxsize=64)
|
| 74 |
+
def _scales(league: str, season: str) -> dict:
|
| 75 |
+
return json.loads(_path(league, season, "scales.json").read_text(encoding="utf-8"))
|
| 76 |
+
|
| 77 |
+
|
| 78 |
+
@lru_cache(maxsize=64)
|
| 79 |
+
def _predictor(league: str, season: str) -> dict:
|
| 80 |
+
return json.loads(_path(league, season, "predictor.json").read_text(encoding="utf-8"))
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
@lru_cache(maxsize=32)
|
| 84 |
+
def _match_ejes(league: str, season: str) -> pd.DataFrame:
|
| 85 |
+
return pd.read_parquet(_path(league, season, "match_team_ejes.parquet"))
|
| 86 |
+
|
| 87 |
+
|
| 88 |
+
@lru_cache(maxsize=32)
|
| 89 |
+
def _match_vars(league: str, season: str) -> pd.DataFrame:
|
| 90 |
+
return pd.read_parquet(_path(league, season, "match_team_vars.parquet"))
|
| 91 |
+
|
| 92 |
+
|
| 93 |
+
@lru_cache(maxsize=32)
|
| 94 |
+
def _profiles(league: str, season: str) -> pd.DataFrame:
|
| 95 |
+
return pd.read_parquet(_path(league, season, "team_profiles.parquet"))
|
| 96 |
+
|
| 97 |
+
|
| 98 |
+
def available() -> dict[str, list[str]]:
|
| 99 |
+
"""{liga: [temporadas]} con artefactos de ejes. Local si EJES_ARTIFACTS_DIR; si no, Azure."""
|
| 100 |
+
def _scan(base: Path) -> dict[str, list[str]]:
|
| 101 |
+
idx = {}
|
| 102 |
+
idx_path = base / "_index.json"
|
| 103 |
+
if idx_path.exists():
|
| 104 |
+
idx = json.loads(idx_path.read_text(encoding="utf-8"))
|
| 105 |
+
out: dict[str, list[str]] = {}
|
| 106 |
+
for p in sorted(base.glob("*/*/team_profiles.parquet")):
|
| 107 |
+
slug = p.parent.parent.name
|
| 108 |
+
out.setdefault(idx.get(slug, slug), []).append(p.parent.name)
|
| 109 |
+
return out
|
| 110 |
+
|
| 111 |
+
local = _local_dir()
|
| 112 |
+
if local is not None:
|
| 113 |
+
return _scan(local)
|
| 114 |
+
bundled = _bundled_dir()
|
| 115 |
+
if bundled.is_dir():
|
| 116 |
+
out = _scan(bundled)
|
| 117 |
+
if out:
|
| 118 |
+
return out
|
| 119 |
+
now = time.time()
|
| 120 |
+
if _AVAIL_CACHE["value"] is not None and now - float(_AVAIL_CACHE["ts"]) < _AVAIL_TTL:
|
| 121 |
+
return _AVAIL_CACHE["value"] # type: ignore[return-value]
|
| 122 |
+
root = f"{DEFAULT_SETTINGS.azure_report_artifacts_root}/ejes".strip("/")
|
| 123 |
+
found: dict[str, list[str]] = {}
|
| 124 |
+
try:
|
| 125 |
+
fs = DataStore()._filesystem_client()
|
| 126 |
+
for p in fs.get_paths(path=root, recursive=True):
|
| 127 |
+
name = getattr(p, "name", "") or ""
|
| 128 |
+
if not name.endswith("team_profiles.parquet"):
|
| 129 |
+
continue
|
| 130 |
+
parts = name[len(root):].strip("/").split("/")
|
| 131 |
+
if len(parts) >= 3:
|
| 132 |
+
found.setdefault(parts[0], []).append(parts[1])
|
| 133 |
+
except Exception:
|
| 134 |
+
pass
|
| 135 |
+
_AVAIL_CACHE["value"] = found
|
| 136 |
+
_AVAIL_CACHE["ts"] = now
|
| 137 |
+
return found
|
| 138 |
+
|
| 139 |
+
|
| 140 |
+
def teams(league: str, season: str) -> list[str]:
|
| 141 |
+
return sorted(_profiles(league, season)["equipo"].unique())
|
| 142 |
+
|
| 143 |
+
|
| 144 |
+
def _eje_z(scales: dict, eje_col: str, value: float) -> float:
|
| 145 |
+
mu = scales["eje_match_mean"].get(eje_col, 0.0)
|
| 146 |
+
sd = scales["eje_match_std"].get(eje_col, 1.0) or 1.0
|
| 147 |
+
return (value - mu) / sd
|
| 148 |
+
|
| 149 |
+
|
| 150 |
+
def pre_prediction(league: str, season: str, home: str, away: str) -> dict:
|
| 151 |
+
"""Para cada equipo: por eje, su norma y la predicción del partido (crece/decrece)."""
|
| 152 |
+
sc = _scales(league, season)
|
| 153 |
+
pred = _predictor(league, season)
|
| 154 |
+
out = []
|
| 155 |
+
for team, rival in [(home, away), (away, home)]:
|
| 156 |
+
gen = sc["team_eje_norm_gen"].get(team)
|
| 157 |
+
con = sc["team_eje_norm_con"].get(rival)
|
| 158 |
+
if gen is None or con is None:
|
| 159 |
+
raise ValueError(f"Sin perfil de ejes para {team if gen is None else rival} "
|
| 160 |
+
f"en {league} {season}")
|
| 161 |
+
rows = []
|
| 162 |
+
for eje in EJES:
|
| 163 |
+
ec = f"eje_{eje}"
|
| 164 |
+
c = pred.get(eje)
|
| 165 |
+
norma = gen.get(ec, 0.0)
|
| 166 |
+
if c is None:
|
| 167 |
+
p = norma
|
| 168 |
+
else:
|
| 169 |
+
p = c["intercept"] + c["gen"] * norma + c["con"] * con.get(ec, 0.0)
|
| 170 |
+
sigma = sc["eje_sigma"].get(ec, 1.0) or 1.0
|
| 171 |
+
rows.append(dict(
|
| 172 |
+
eje=eje, label=EJE_LABELS[eje],
|
| 173 |
+
norma_z=round(_eje_z(sc, ec, norma), 2),
|
| 174 |
+
pred_z=round(_eje_z(sc, ec, p), 2),
|
| 175 |
+
delta_sigma=round((p - norma) / sigma, 2),
|
| 176 |
+
))
|
| 177 |
+
out.append(dict(team=team, rival=rival, rows=rows))
|
| 178 |
+
return {"league": league, "season": season, "teams": out}
|
| 179 |
+
|
| 180 |
+
|
| 181 |
+
def _resolve_match(mt: pd.DataFrame, home: str, away: str,
|
| 182 |
+
match_id: str | None, match_date: str | None) -> pd.DataFrame:
|
| 183 |
+
pair = mt[((mt["team"] == home) & (mt["rival"] == away)) |
|
| 184 |
+
((mt["team"] == away) & (mt["rival"] == home))]
|
| 185 |
+
if match_id:
|
| 186 |
+
got = pair[pair["matchId"] == str(match_id)]
|
| 187 |
+
if len(got):
|
| 188 |
+
return got
|
| 189 |
+
if match_date and "fecha" in pair.columns:
|
| 190 |
+
got = pair[pair["fecha"].astype(str).str.startswith(str(match_date)[:10])]
|
| 191 |
+
if len(got):
|
| 192 |
+
return got
|
| 193 |
+
if pair.empty:
|
| 194 |
+
raise ValueError(f"No hay partidos {home} vs {away} en los artefactos.")
|
| 195 |
+
if "fecha" in pair.columns:
|
| 196 |
+
last = pair["fecha"].astype(str).max()
|
| 197 |
+
return pair[pair["fecha"].astype(str) == last]
|
| 198 |
+
return pair[pair["matchId"] == pair["matchId"].iloc[-1]]
|
| 199 |
+
|
| 200 |
+
|
| 201 |
+
def post_signature(league: str, season: str, home: str, away: str,
|
| 202 |
+
match_id: str | None = None, match_date: str | None = None,
|
| 203 |
+
top_movers: int = 8) -> dict:
|
| 204 |
+
"""Firma de ataque del partido: ejes vs norma, ejecución esperado-vs-real, variables movidas."""
|
| 205 |
+
sc = _scales(league, season)
|
| 206 |
+
mt = _match_ejes(league, season)
|
| 207 |
+
mv = _match_vars(league, season)
|
| 208 |
+
rows_match = _resolve_match(mt, home, away, match_id, match_date)
|
| 209 |
+
mid = rows_match["matchId"].iloc[0]
|
| 210 |
+
fecha = str(rows_match["fecha"].iloc[0]) if "fecha" in rows_match.columns else ""
|
| 211 |
+
|
| 212 |
+
teams_out = []
|
| 213 |
+
for _, r in rows_match.iterrows():
|
| 214 |
+
team = r["team"]
|
| 215 |
+
norm = sc["team_eje_norm_gen"].get(team, {})
|
| 216 |
+
ejes_rows = []
|
| 217 |
+
for eje in EJES:
|
| 218 |
+
ec = f"eje_{eje}"
|
| 219 |
+
hoy, norma = float(r[ec]), float(norm.get(ec, 0.0))
|
| 220 |
+
sigma = sc["eje_sigma"].get(ec, 1.0) or 1.0
|
| 221 |
+
ejes_rows.append(dict(
|
| 222 |
+
eje=eje, label=EJE_LABELS[eje],
|
| 223 |
+
partido_z=round(_eje_z(sc, ec, hoy), 2),
|
| 224 |
+
norma_z=round(_eje_z(sc, ec, norma), 2),
|
| 225 |
+
dev_sigma=round((hoy - norma) / sigma, 2),
|
| 226 |
+
))
|
| 227 |
+
movers = []
|
| 228 |
+
vrow = mv[(mv["matchId"] == mid) & (mv["team"] == team)]
|
| 229 |
+
if len(vrow):
|
| 230 |
+
vrow = vrow.iloc[0]
|
| 231 |
+
vnorm = sc["team_var_norm"].get(team, {})
|
| 232 |
+
for var, sigma in sc["var_sigma"].items():
|
| 233 |
+
if var not in vrow or not sigma:
|
| 234 |
+
continue
|
| 235 |
+
hoy_v = float(vrow[var])
|
| 236 |
+
norma_v = float(vnorm.get(var, 0.0))
|
| 237 |
+
movers.append(dict(variable=var, hoy=round(hoy_v, 2), norma=round(norma_v, 2),
|
| 238 |
+
dev_sigma=round((hoy_v - norma_v) / sigma, 2)))
|
| 239 |
+
movers.sort(key=lambda d: -abs(d["dev_sigma"]))
|
| 240 |
+
movers = movers[:top_movers]
|
| 241 |
+
teams_out.append(dict(
|
| 242 |
+
team=team, rival=r["rival"], n_seq=int(r["n_seq"]),
|
| 243 |
+
tiros_real=int(r["tiros_real"]), tiros_esperados=round(float(r["tiros_esp"]), 1),
|
| 244 |
+
goles=int(r["goles"]), ejes=ejes_rows, movers=movers,
|
| 245 |
+
))
|
| 246 |
+
return {"league": league, "season": season, "match_id": mid, "fecha": fecha,
|
| 247 |
+
"teams": teams_out}
|
| 248 |
+
|
| 249 |
+
|
| 250 |
+
def profiles_payload(league: str, season: str) -> dict:
|
| 251 |
+
"""Payload para el scatter interactivo: por equipo × lado × eje: mix_z y dif (pp vs liga)."""
|
| 252 |
+
df = _profiles(league, season)
|
| 253 |
+
out: dict[str, dict] = {}
|
| 254 |
+
for _, r in df.iterrows():
|
| 255 |
+
eq = out.setdefault(r["equipo"], {"gen": {}, "con": {}})
|
| 256 |
+
dif = (r["real"] - r["liga_real"]) if pd.notna(r["real"]) else None
|
| 257 |
+
eq[r["lado"]][r["eje"]] = {
|
| 258 |
+
"z": float(r["mix_z"]),
|
| 259 |
+
"dif": round(float(dif), 1) if dif is not None else None,
|
| 260 |
+
}
|
| 261 |
+
return {"league": league, "season": season, "ejes": EJE_LABELS, "teams": out}
|
src/racing_reports/reports/ejes.py
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Reportes de EJES de ataque: previo (qué ejes crecen/decrecen) y post (firma del partido).
|
| 2 |
+
|
| 3 |
+
Ambos consumen SOLO los artefactos chicos de ejes (ejes_data) — no bajan el preprocessed.
|
| 4 |
+
Devuelven ReportBundle con figura matplotlib + HTML autocontenido (estilo oscuro de la app).
|
| 5 |
+
"""
|
| 6 |
+
|
| 7 |
+
from __future__ import annotations
|
| 8 |
+
|
| 9 |
+
from pathlib import Path
|
| 10 |
+
|
| 11 |
+
import matplotlib
|
| 12 |
+
matplotlib.use("Agg")
|
| 13 |
+
import matplotlib.pyplot as plt
|
| 14 |
+
|
| 15 |
+
from racing_reports import ejes_data
|
| 16 |
+
from racing_reports.reports.bundle import FigureArtifact, ReportBundle
|
| 17 |
+
from racing_reports.reports.common import png_to_data_uri, save_figure
|
| 18 |
+
|
| 19 |
+
BG, FG, MUT = "#10141a", "#e5e7eb", "#9ca3af"
|
| 20 |
+
UP, DOWN, DOT = "#34d399", "#f87171", "#facc15"
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
def _style_axes(ax):
|
| 24 |
+
ax.set_facecolor(BG)
|
| 25 |
+
for s in ax.spines.values():
|
| 26 |
+
s.set_color("#374151")
|
| 27 |
+
ax.tick_params(colors=MUT, labelsize=9)
|
| 28 |
+
ax.axvline(0, color="#4b5563", lw=1, ls="--")
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
def _html_shell(title: str, subtitle: str, body: str) -> str:
|
| 32 |
+
return f"""<!doctype html><html lang="es"><head><meta charset="utf-8">
|
| 33 |
+
<title>{title}</title><style>
|
| 34 |
+
body{{background:{BG};color:{FG};font-family:-apple-system,'Segoe UI',Roboto,sans-serif;
|
| 35 |
+
margin:0;padding:24px;max-width:1100px;margin:auto}}
|
| 36 |
+
h1{{font-size:22px;color:#4ade80;margin:0 0 4px}} h2{{font-size:16px;margin:24px 0 8px;color:#a7f3d0}}
|
| 37 |
+
p.sub{{color:{MUT};font-size:13px;margin:0 0 18px}}
|
| 38 |
+
table{{border-collapse:collapse;width:100%;font-size:12.5px;margin:8px 0 18px}}
|
| 39 |
+
th,td{{padding:5px 9px;border-bottom:1px solid #1f2937;text-align:left}}
|
| 40 |
+
th{{color:{MUT};text-transform:uppercase;font-size:10px;letter-spacing:.05em}}
|
| 41 |
+
td.pos{{color:{UP}}} td.neg{{color:{DOWN}}}
|
| 42 |
+
img{{max-width:100%;border-radius:12px;margin:6px 0 14px}}
|
| 43 |
+
.note{{color:{MUT};font-size:11.5px}}
|
| 44 |
+
.grid{{display:grid;grid-template-columns:1fr 1fr;gap:24px}}
|
| 45 |
+
@media(max-width:800px){{.grid{{grid-template-columns:1fr}}}}
|
| 46 |
+
</style></head><body><h1>{title}</h1><p class="sub">{subtitle}</p>{body}</body></html>"""
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
def _cls(v: float) -> str:
|
| 50 |
+
return "pos" if v > 0 else ("neg" if v < 0 else "")
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
# ────────────────────────── PREVIO ──────────────────────────
|
| 54 |
+
|
| 55 |
+
def _fig_pre(pred: dict):
|
| 56 |
+
fig, axes = plt.subplots(1, 2, figsize=(12.5, 5.2), sharex=True)
|
| 57 |
+
fig.patch.set_facecolor(BG)
|
| 58 |
+
for ax, tinfo in zip(axes, pred["teams"]):
|
| 59 |
+
_style_axes(ax)
|
| 60 |
+
rows = tinfo["rows"]
|
| 61 |
+
ys = range(len(rows))
|
| 62 |
+
for y, r in zip(ys, rows):
|
| 63 |
+
a, b = r["norma_z"], r["pred_z"]
|
| 64 |
+
color = UP if b >= a else DOWN
|
| 65 |
+
ax.plot([a, b], [y, y], color=color, lw=3, solid_capstyle="round", zorder=2)
|
| 66 |
+
ax.scatter([a], [y], color=DOT, s=42, zorder=3)
|
| 67 |
+
ax.scatter([b], [y], color=color, s=64, zorder=3,
|
| 68 |
+
marker=">" if b >= a else "<")
|
| 69 |
+
ax.set_yticks(list(ys))
|
| 70 |
+
ax.set_yticklabels([r["label"] for r in rows], color=FG, fontsize=10)
|
| 71 |
+
ax.invert_yaxis()
|
| 72 |
+
ax.set_title(f"{tinfo['team']} (vs {tinfo['rival']})", color=FG, fontsize=12)
|
| 73 |
+
ax.set_xlabel("z vs liga (medias de partido)", color=MUT, fontsize=9)
|
| 74 |
+
fig.suptitle("Ejes de ataque esperados — punto amarillo = su norma, flecha = predicción del partido",
|
| 75 |
+
color=FG, fontsize=11, y=1.0)
|
| 76 |
+
fig.tight_layout()
|
| 77 |
+
return fig
|
| 78 |
+
|
| 79 |
+
|
| 80 |
+
def generate_pre(out_path: Path, league: str, season: str,
|
| 81 |
+
home_name: str, away_name: str) -> ReportBundle:
|
| 82 |
+
pred = ejes_data.pre_prediction(league, season, home_name, away_name)
|
| 83 |
+
out_dir = out_path.parent
|
| 84 |
+
fig = _fig_pre(pred)
|
| 85 |
+
png, svg = save_figure(fig, out_dir, "ejes_pre_prediccion")
|
| 86 |
+
plt.close(fig)
|
| 87 |
+
|
| 88 |
+
tables = []
|
| 89 |
+
for tinfo in pred["teams"]:
|
| 90 |
+
rows = "".join(
|
| 91 |
+
f"<tr><td>{r['label']}</td><td>{r['norma_z']:+.2f}</td>"
|
| 92 |
+
f"<td>{r['pred_z']:+.2f}</td>"
|
| 93 |
+
f"<td class='{_cls(r['delta_sigma'])}'>{r['delta_sigma']:+.2f}σ</td></tr>"
|
| 94 |
+
for r in sorted(tinfo["rows"], key=lambda x: -abs(x["delta_sigma"]))
|
| 95 |
+
)
|
| 96 |
+
tables.append(
|
| 97 |
+
f"<div><h2>{tinfo['team']}</h2>"
|
| 98 |
+
f"<table><tr><th>eje</th><th>su norma (z)</th><th>predicción (z)</th>"
|
| 99 |
+
f"<th>Δ esperado</th></tr>{rows}</table></div>"
|
| 100 |
+
)
|
| 101 |
+
body = (
|
| 102 |
+
f"<img src='{png_to_data_uri(png)}' alt='ejes previstos'>"
|
| 103 |
+
f"<div class='grid'>{''.join(tables)}</div>"
|
| 104 |
+
"<p class='note'>Predicción = generación propia × concesión del rival (regresión por eje, "
|
| 105 |
+
"leave-one-match-out). Δ en σ partido-a-partido: ±1σ = variación normal entre partidos. "
|
| 106 |
+
"El rival moldea sobre todo la elaboración y la rotura de líneas; robo alto y profundidad "
|
| 107 |
+
"son más oportunistas (menos predecibles).</p>"
|
| 108 |
+
)
|
| 109 |
+
html = _html_shell(
|
| 110 |
+
f"Ejes de ataque — previo: {home_name} vs {away_name}",
|
| 111 |
+
f"{league} {season} · qué dimensiones de ataque se esperan crecer/decrecer vs la norma de cada equipo",
|
| 112 |
+
body,
|
| 113 |
+
)
|
| 114 |
+
out_path.write_text(html, encoding="utf-8")
|
| 115 |
+
return ReportBundle(
|
| 116 |
+
report_type="ejes_pre", html_path=out_path,
|
| 117 |
+
figures=[FigureArtifact(name="ejes_pre_prediccion", title="Ejes esperados del partido",
|
| 118 |
+
section="Ejes de ataque", png_path=png, svg_path=svg)],
|
| 119 |
+
meta={"league": league, "season": season},
|
| 120 |
+
)
|
| 121 |
+
|
| 122 |
+
|
| 123 |
+
# ────────────────────────── POST ──────────────────────────
|
| 124 |
+
|
| 125 |
+
def _fig_post(sig: dict):
|
| 126 |
+
fig, axes = plt.subplots(1, 2, figsize=(12.5, 5.2), sharex=True)
|
| 127 |
+
fig.patch.set_facecolor(BG)
|
| 128 |
+
for ax, tinfo in zip(axes, sig["teams"]):
|
| 129 |
+
_style_axes(ax)
|
| 130 |
+
rows = tinfo["ejes"]
|
| 131 |
+
ys = range(len(rows))
|
| 132 |
+
vals = [r["dev_sigma"] for r in rows]
|
| 133 |
+
ax.barh(list(ys), vals, color=[UP if v >= 0 else DOWN for v in vals], height=0.55)
|
| 134 |
+
ax.set_yticks(list(ys))
|
| 135 |
+
ax.set_yticklabels([r["label"] for r in rows], color=FG, fontsize=10)
|
| 136 |
+
ax.invert_yaxis()
|
| 137 |
+
ax.set_title(f"{tinfo['team']} — {tinfo['tiros_real']} tiros "
|
| 138 |
+
f"(esp. {tinfo['tiros_esperados']}) · {tinfo['goles']} gol(es)",
|
| 139 |
+
color=FG, fontsize=11)
|
| 140 |
+
ax.set_xlabel("desvío vs su norma (σ partido-a-partido)", color=MUT, fontsize=9)
|
| 141 |
+
fig.suptitle("Firma de ataque del partido — qué usó de más (verde) y de menos (rojo) cada equipo",
|
| 142 |
+
color=FG, fontsize=11, y=1.0)
|
| 143 |
+
fig.tight_layout()
|
| 144 |
+
return fig
|
| 145 |
+
|
| 146 |
+
|
| 147 |
+
def generate_post(out_path: Path, league: str, season: str, home_name: str, away_name: str,
|
| 148 |
+
match_id: str | None = None, match_date: str | None = None) -> ReportBundle:
|
| 149 |
+
sig = ejes_data.post_signature(league, season, home_name, away_name,
|
| 150 |
+
match_id=match_id, match_date=match_date)
|
| 151 |
+
out_dir = out_path.parent
|
| 152 |
+
fig = _fig_post(sig)
|
| 153 |
+
png, svg = save_figure(fig, out_dir, "ejes_post_firma")
|
| 154 |
+
plt.close(fig)
|
| 155 |
+
|
| 156 |
+
blocks = []
|
| 157 |
+
for tinfo in sig["teams"]:
|
| 158 |
+
dif = tinfo["tiros_real"] - tinfo["tiros_esperados"]
|
| 159 |
+
ejec = (f"<p>Ejecución del día: <b>{tinfo['tiros_real']} tiros</b> vs "
|
| 160 |
+
f"{tinfo['tiros_esperados']} esperados por el modelo según sus jugadas "
|
| 161 |
+
f"(<span style='color:{UP if dif >= 0 else DOWN}'>{dif:+.1f}</span>) · "
|
| 162 |
+
f"{tinfo['goles']} gol(es) · {tinfo['n_seq']} secuencias.</p>")
|
| 163 |
+
ejes_rows = "".join(
|
| 164 |
+
f"<tr><td>{r['label']}</td><td>{r['partido_z']:+.2f}</td>"
|
| 165 |
+
f"<td>{r['norma_z']:+.2f}</td>"
|
| 166 |
+
f"<td class='{_cls(r['dev_sigma'])}'>{r['dev_sigma']:+.2f}σ</td></tr>"
|
| 167 |
+
for r in sorted(tinfo["ejes"], key=lambda x: -abs(x["dev_sigma"]))
|
| 168 |
+
)
|
| 169 |
+
movers_rows = "".join(
|
| 170 |
+
f"<tr><td><code>{m['variable']}</code></td><td>{m['hoy']}</td>"
|
| 171 |
+
f"<td>{m['norma']}</td>"
|
| 172 |
+
f"<td class='{_cls(m['dev_sigma'])}'>{m['dev_sigma']:+.1f}σ</td></tr>"
|
| 173 |
+
for m in tinfo["movers"]
|
| 174 |
+
)
|
| 175 |
+
blocks.append(
|
| 176 |
+
f"<div><h2>{tinfo['team']}</h2>{ejec}"
|
| 177 |
+
f"<table><tr><th>eje</th><th>partido (z)</th><th>su norma (z)</th><th>desvío</th></tr>"
|
| 178 |
+
f"{ejes_rows}</table>"
|
| 179 |
+
f"<h2 style='font-size:13px'>Variables que más se movieron</h2>"
|
| 180 |
+
f"<table><tr><th>variable</th><th>hoy</th><th>norma</th><th>desvío</th></tr>"
|
| 181 |
+
f"{movers_rows}</table></div>"
|
| 182 |
+
)
|
| 183 |
+
body = (
|
| 184 |
+
f"<img src='{png_to_data_uri(png)}' alt='firma del partido'>"
|
| 185 |
+
f"<div class='grid'>{''.join(blocks)}</div>"
|
| 186 |
+
"<p class='note'>Desvíos en σ partido-a-partido (±1σ = partido normal, ±2σ = inusual). "
|
| 187 |
+
"«Esperados» = suma de P(tiro) del modelo neutral sobre las jugadas reales del equipo: "
|
| 188 |
+
"positivo = sobre-ejecutó sus jugadas, negativo = las desperdició.</p>"
|
| 189 |
+
)
|
| 190 |
+
html = _html_shell(
|
| 191 |
+
f"Firma de ataque — {home_name} vs {away_name}" + (f" ({sig['fecha'][:10]})" if sig["fecha"] else ""),
|
| 192 |
+
f"{league} {season} · qué caracterizó el ataque de cada equipo vs su propia norma",
|
| 193 |
+
body,
|
| 194 |
+
)
|
| 195 |
+
out_path.write_text(html, encoding="utf-8")
|
| 196 |
+
return ReportBundle(
|
| 197 |
+
report_type="ejes_post", html_path=out_path,
|
| 198 |
+
figures=[FigureArtifact(name="ejes_post_firma", title="Firma de ataque del partido",
|
| 199 |
+
section="Ejes de ataque", png_path=png, svg_path=svg)],
|
| 200 |
+
meta={"league": league, "season": season, "match_id": sig["match_id"], "fecha": sig["fecha"]},
|
| 201 |
+
)
|
src/racing_reports/runner.py
CHANGED
|
@@ -13,11 +13,12 @@ from racing_reports.config import DEFAULT_SETTINGS, Settings
|
|
| 13 |
from racing_reports.datastore import DataStore
|
| 14 |
from racing_reports.match_index import MatchIndex
|
| 15 |
from racing_reports.models import ReportRequest, ReportResult
|
| 16 |
-
from racing_reports.reports import block_zscore, post_match, pre_match, recuperaciones, triple_multitag
|
| 17 |
from racing_reports.reports.bundle import ReportBundle
|
| 18 |
from racing_reports.utils import git_commit, slugify, utc_now_iso, write_json
|
| 19 |
|
| 20 |
-
VALID_REPORTS = {"pre_match", "post_match", "block_zscore", "triple_multitag", "triple_centros",
|
|
|
|
| 21 |
|
| 22 |
|
| 23 |
def _norm(text: str) -> str:
|
|
@@ -73,7 +74,8 @@ class ReportRunner:
|
|
| 73 |
# post_match siempre corre el pre_match del mismo partido antes.
|
| 74 |
if "post_match" in seen and "pre_match" not in seen:
|
| 75 |
seen = ["pre_match"] + seen
|
| 76 |
-
order = {"pre_match": 0, "block_zscore": 1, "triple_multitag": 2, "triple_centros": 3,
|
|
|
|
| 77 |
return sorted(dict.fromkeys(seen), key=lambda r: order[r])
|
| 78 |
|
| 79 |
def run(self, request: ReportRequest) -> ReportResult:
|
|
@@ -98,10 +100,10 @@ class ReportRunner:
|
|
| 98 |
home_name = match["home_team"]
|
| 99 |
away_name = match["away_team"]
|
| 100 |
match_date = match["date"]
|
| 101 |
-
elif "post_match"
|
| 102 |
# Partido reciente sin matchId en el dataset: usamos lo que mandó el front
|
| 103 |
# (local/visitante/fecha). El matchId real se resuelve más abajo desde el
|
| 104 |
-
# preprocessed
|
| 105 |
home_name = request.home_team
|
| 106 |
away_name = request.away_team
|
| 107 |
match_date = request.match_date or None
|
|
@@ -197,6 +199,24 @@ class ReportRunner:
|
|
| 197 |
venue_a=flt.get("venue_a", flt.get("venue", "both")),
|
| 198 |
venue_b=flt.get("venue_b", flt.get("venue", "both")),
|
| 199 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 200 |
elif report_type == "post_match":
|
| 201 |
# Si el partido no traía matchId (reciente, no está en el dataset),
|
| 202 |
# lo resolvemos del preprocessed ya descargado por local/visitante/fecha.
|
|
|
|
| 13 |
from racing_reports.datastore import DataStore
|
| 14 |
from racing_reports.match_index import MatchIndex
|
| 15 |
from racing_reports.models import ReportRequest, ReportResult
|
| 16 |
+
from racing_reports.reports import block_zscore, ejes, post_match, pre_match, recuperaciones, triple_multitag
|
| 17 |
from racing_reports.reports.bundle import ReportBundle
|
| 18 |
from racing_reports.utils import git_commit, slugify, utc_now_iso, write_json
|
| 19 |
|
| 20 |
+
VALID_REPORTS = {"pre_match", "post_match", "block_zscore", "triple_multitag", "triple_centros",
|
| 21 |
+
"recuperaciones", "ejes_pre", "ejes_post"}
|
| 22 |
|
| 23 |
|
| 24 |
def _norm(text: str) -> str:
|
|
|
|
| 74 |
# post_match siempre corre el pre_match del mismo partido antes.
|
| 75 |
if "post_match" in seen and "pre_match" not in seen:
|
| 76 |
seen = ["pre_match"] + seen
|
| 77 |
+
order = {"pre_match": 0, "block_zscore": 1, "triple_multitag": 2, "triple_centros": 3,
|
| 78 |
+
"recuperaciones": 4, "post_match": 5, "ejes_pre": 6, "ejes_post": 7}
|
| 79 |
return sorted(dict.fromkeys(seen), key=lambda r: order[r])
|
| 80 |
|
| 81 |
def run(self, request: ReportRequest) -> ReportResult:
|
|
|
|
| 100 |
home_name = match["home_team"]
|
| 101 |
away_name = match["away_team"]
|
| 102 |
match_date = match["date"]
|
| 103 |
+
elif {"post_match", "ejes_post"} & set(report_types):
|
| 104 |
# Partido reciente sin matchId en el dataset: usamos lo que mandó el front
|
| 105 |
# (local/visitante/fecha). El matchId real se resuelve más abajo desde el
|
| 106 |
+
# preprocessed (post_match) o desde los artefactos de ejes (ejes_post).
|
| 107 |
home_name = request.home_team
|
| 108 |
away_name = request.away_team
|
| 109 |
match_date = request.match_date or None
|
|
|
|
| 199 |
venue_a=flt.get("venue_a", flt.get("venue", "both")),
|
| 200 |
venue_b=flt.get("venue_b", flt.get("venue", "both")),
|
| 201 |
)
|
| 202 |
+
elif report_type == "ejes_pre":
|
| 203 |
+
result = ejes.generate_pre(
|
| 204 |
+
out_path=out_path,
|
| 205 |
+
league=request.league,
|
| 206 |
+
season=str(request.season),
|
| 207 |
+
home_name=home_name,
|
| 208 |
+
away_name=away_name,
|
| 209 |
+
)
|
| 210 |
+
elif report_type == "ejes_post":
|
| 211 |
+
result = ejes.generate_post(
|
| 212 |
+
out_path=out_path,
|
| 213 |
+
league=request.league,
|
| 214 |
+
season=str(request.season),
|
| 215 |
+
home_name=home_name,
|
| 216 |
+
away_name=away_name,
|
| 217 |
+
match_id=request.match_id or None,
|
| 218 |
+
match_date=match_date,
|
| 219 |
+
)
|
| 220 |
elif report_type == "post_match":
|
| 221 |
# Si el partido no traía matchId (reciente, no está en el dataset),
|
| 222 |
# lo resolvemos del preprocessed ya descargado por local/visitante/fecha.
|
src/racing_reports/web/app.py
CHANGED
|
@@ -17,6 +17,7 @@ from racing_reports.api.routes_jobs import router as api_jobs_router
|
|
| 17 |
from racing_reports.api.routes_meta import router as api_meta_router
|
| 18 |
from racing_reports.api.routes_reports import router as api_reports_router
|
| 19 |
from racing_reports.api.routes_team_vars import router as api_team_vars_router
|
|
|
|
| 20 |
from racing_reports.config import DEFAULT_SETTINGS
|
| 21 |
from racing_reports.datastore import DataStore
|
| 22 |
from racing_reports.match_index import MatchIndex
|
|
@@ -41,6 +42,7 @@ app.include_router(api_meta_router)
|
|
| 41 |
app.include_router(api_reports_router)
|
| 42 |
app.include_router(api_jobs_router)
|
| 43 |
app.include_router(api_team_vars_router)
|
|
|
|
| 44 |
|
| 45 |
# Estado en memoria (single container en HF Space). Re-export para retrocompat.
|
| 46 |
Job = jobs_mod.Job
|
|
|
|
| 17 |
from racing_reports.api.routes_meta import router as api_meta_router
|
| 18 |
from racing_reports.api.routes_reports import router as api_reports_router
|
| 19 |
from racing_reports.api.routes_team_vars import router as api_team_vars_router
|
| 20 |
+
from racing_reports.api.routes_ejes import router as api_ejes_router
|
| 21 |
from racing_reports.config import DEFAULT_SETTINGS
|
| 22 |
from racing_reports.datastore import DataStore
|
| 23 |
from racing_reports.match_index import MatchIndex
|
|
|
|
| 42 |
app.include_router(api_reports_router)
|
| 43 |
app.include_router(api_jobs_router)
|
| 44 |
app.include_router(api_team_vars_router)
|
| 45 |
+
app.include_router(api_ejes_router)
|
| 46 |
|
| 47 |
# Estado en memoria (single container en HF Space). Re-export para retrocompat.
|
| 48 |
Job = jobs_mod.Job
|
src/racing_reports/web/templates/home.html
CHANGED
|
@@ -199,6 +199,19 @@
|
|
| 199 |
</div>
|
| 200 |
</template>
|
| 201 |
</article>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 202 |
</section>
|
| 203 |
</div>
|
| 204 |
</template>
|
|
@@ -439,6 +452,55 @@
|
|
| 439 |
</table>
|
| 440 |
</div>
|
| 441 |
</section>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 442 |
</div>
|
| 443 |
</template>
|
| 444 |
|
|
@@ -549,6 +611,10 @@
|
|
| 549 |
tvpLeague:'', tvpSeason:'', tvpSeasons:[], tvpTeam:'', tvpTeams:[], tvpScope:'liga',
|
| 550 |
tvpVars:[''], tvpResult:null, tvpLoading:false, tvpError:'', tvpZmax:3, tvpShowMean:false, tvpShowBest:false,
|
| 551 |
tvsScope:'all', tvsResult:null, tvsLoading:false, tvsError:'',
|
|
|
|
|
|
|
|
|
|
|
|
|
| 552 |
|
| 553 |
async init() { await this.loadLeagues(); await this.loadSeasons(false); await this.loadTeams(); this._refreshHealth(); },
|
| 554 |
async _getJSON(u){ const r=await fetch(u); if(!r.ok) throw new Error((await r.json().catch(()=>({detail:r.statusText}))).detail); return r.json(); },
|
|
@@ -578,6 +644,7 @@
|
|
| 578 |
this.tvpOnLeague();
|
| 579 |
this.tvLoaded = true;
|
| 580 |
} catch(e){ this.tvError = 'No se pudieron cargar las opciones: '+e; }
|
|
|
|
| 581 |
},
|
| 582 |
tvpPct(z){ const m=this.tvpZmax||3; const c=Math.max(-m,Math.min(m,z)); return 50 + c/m*50; },
|
| 583 |
tvpAddVar(){ this.tvpVars.push(''); },
|
|
@@ -711,7 +778,7 @@
|
|
| 711 |
async onSeasonChange(){ await this.loadTeams(); },
|
| 712 |
|
| 713 |
async _refreshHealth(){ try{ const r=await fetch('/api/health'); if(r.ok){ this.preprocessedCached=!!(await r.json()).preprocessed_cached; } }catch(_e){} },
|
| 714 |
-
reportTitle(id){ return ({pre_match:'Reporte previo (head-to-head)',block_zscore:'Bloques (z-score)',triple_multitag:'Triple Análisis (Multi-Tag)',triple_centros:'Triple Análisis (Centros)',recuperaciones:'Recuperaciones',post_match:'Reporte post-partido'})[id]||id; },
|
| 715 |
visibleFigures(rt,figs){ return this.onlyFigure ? figs.filter(f=>f.name===this.onlyFigure) : figs; },
|
| 716 |
async toggleCatalog(id){
|
| 717 |
const r=this.reports[id]; r.catalogOpen=!r.catalogOpen;
|
|
@@ -720,7 +787,7 @@
|
|
| 720 |
async runFull(id){ await this.runOne(id, null); },
|
| 721 |
async runOne(id, figName){
|
| 722 |
if (!this.teamA){ alert('Elegí el Equipo A.'); return; }
|
| 723 |
-
const isMatch = (id==='pre_match');
|
| 724 |
if (isMatch && !this.teamB){ alert('Elegí local y visitante.'); return; }
|
| 725 |
const teamB = isMatch ? this.teamB : (this.compareTwo ? this.teamB : '');
|
| 726 |
if (teamB && teamB===this.teamA){ alert('A y B deben ser distintos.'); return; }
|
|
@@ -751,6 +818,79 @@
|
|
| 751 |
},
|
| 752 |
_pmErr(m){ this.postMatchMsg=m; this.postMatchMsgError=true; },
|
| 753 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 754 |
async _post(id, body, figName, title){
|
| 755 |
let resp;
|
| 756 |
try { resp=await fetch(`/api/reports/${id}/run`,{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify(body)}); }
|
|
|
|
| 199 |
</div>
|
| 200 |
</template>
|
| 201 |
</article>
|
| 202 |
+
|
| 203 |
+
<article class="bg-ink-700 border border-ink-600 rounded-2xl p-5">
|
| 204 |
+
<h3 class="font-semibold">Ejes de ataque — previo</h3>
|
| 205 |
+
<p class="text-xs text-gray-400 mt-1 mb-3">Qué dimensiones de ataque (verticalidad, elaboración, 1v1, rotura de líneas, profundidad…) se espera que crezcan o decrezcan para cada equipo vs su norma, según la generación propia y la concesión del rival.</p>
|
| 206 |
+
<button @click="runFull('ejes_pre')" class="bg-racing-500 hover:bg-racing-600 text-racing-900 font-semibold px-4 py-2 rounded-lg text-sm">Generar ejes previo</button>
|
| 207 |
+
</article>
|
| 208 |
+
|
| 209 |
+
<article class="bg-ink-700 border border-ink-600 rounded-2xl p-5">
|
| 210 |
+
<h3 class="font-semibold">Ejes de ataque — post-partido (firma)</h3>
|
| 211 |
+
<p class="text-xs text-gray-400 mt-1 mb-3">Del último cruce jugado entre <strong x-text="teamA||'A'"></strong> y <strong x-text="teamB||'B'"></strong>: qué ejes usó de más/menos cada equipo vs su norma, ejecución del día (tiros reales vs esperados por el modelo) y las variables que más se movieron.</p>
|
| 212 |
+
<button @click="ejRunPost()" class="bg-racing-500 hover:bg-racing-600 text-racing-900 font-semibold px-4 py-2 rounded-lg text-sm">Generar firma del partido</button>
|
| 213 |
+
<p class="text-xs mt-2" :class="ejPostMsgError ? 'text-red-300' : 'text-gray-400'" x-text="ejPostMsg"></p>
|
| 214 |
+
</article>
|
| 215 |
</section>
|
| 216 |
</div>
|
| 217 |
</template>
|
|
|
|
| 452 |
</table>
|
| 453 |
</div>
|
| 454 |
</section>
|
| 455 |
+
|
| 456 |
+
<!-- ---- Ejes ataque/defensa (scatter interactivo) ---- -->
|
| 457 |
+
<section class="bg-ink-700 border border-ink-600 rounded-2xl p-5 mt-2">
|
| 458 |
+
<h2 class="text-lg font-semibold text-racing-500 mb-1">5. Ejes ataque/defensa</h2>
|
| 459 |
+
<p class="text-xs text-gray-400 mb-3">Los 8 ejes de ataque por equipo: qué GENERA cada uno y qué CONCEDE, en identidad (z vs su liga) o rendimiento (pp de tiro vs liga en jugadas de ese eje). Hover = equipo y valores.</p>
|
| 460 |
+
<div class="flex flex-wrap items-end gap-3 mb-3">
|
| 461 |
+
<div>
|
| 462 |
+
<label class="block text-xs text-gray-400 mb-1">Liga</label>
|
| 463 |
+
<select x-model="ejLeague" @change="ejOnLeague()" class="bg-ink-800 border border-ink-600 rounded-lg px-3 py-2 text-sm">
|
| 464 |
+
<template x-for="l in ejLeagueList" :key="l"><option :value="l" x-text="l"></option></template>
|
| 465 |
+
</select>
|
| 466 |
+
</div>
|
| 467 |
+
<div>
|
| 468 |
+
<label class="block text-xs text-gray-400 mb-1">Temporada</label>
|
| 469 |
+
<select x-model="ejSeason" @change="ejLoad()" class="bg-ink-800 border border-ink-600 rounded-lg px-3 py-2 text-sm">
|
| 470 |
+
<template x-for="s in ejSeasons" :key="s"><option :value="s" x-text="s"></option></template>
|
| 471 |
+
</select>
|
| 472 |
+
</div>
|
| 473 |
+
<div>
|
| 474 |
+
<label class="block text-xs text-gray-400 mb-1">Eje X</label>
|
| 475 |
+
<select x-model="ejX" @change="ejDraw()" class="bg-ink-800 border border-ink-600 rounded-lg px-3 py-2 text-sm">
|
| 476 |
+
<template x-for="(lbl,k) in ejLabels" :key="k"><option :value="k" x-text="lbl"></option></template>
|
| 477 |
+
</select>
|
| 478 |
+
</div>
|
| 479 |
+
<div>
|
| 480 |
+
<label class="block text-xs text-gray-400 mb-1">Eje Y</label>
|
| 481 |
+
<select x-model="ejY" @change="ejDraw()" class="bg-ink-800 border border-ink-600 rounded-lg px-3 py-2 text-sm">
|
| 482 |
+
<template x-for="(lbl,k) in ejLabels" :key="k"><option :value="k" x-text="lbl"></option></template>
|
| 483 |
+
</select>
|
| 484 |
+
</div>
|
| 485 |
+
<div>
|
| 486 |
+
<label class="block text-xs text-gray-400 mb-1">Lado</label>
|
| 487 |
+
<select x-model="ejLado" @change="ejDraw()" class="bg-ink-800 border border-ink-600 rounded-lg px-3 py-2 text-sm">
|
| 488 |
+
<option value="gen">Generación</option><option value="con">Concesión</option>
|
| 489 |
+
</select>
|
| 490 |
+
</div>
|
| 491 |
+
<div>
|
| 492 |
+
<label class="block text-xs text-gray-400 mb-1">Métrica</label>
|
| 493 |
+
<select x-model="ejMet" @change="ejDraw()" class="bg-ink-800 border border-ink-600 rounded-lg px-3 py-2 text-sm">
|
| 494 |
+
<option value="z">Identidad (z)</option><option value="dif">Rendimiento (pp vs liga)</option>
|
| 495 |
+
</select>
|
| 496 |
+
</div>
|
| 497 |
+
</div>
|
| 498 |
+
<p class="text-xs text-red-300 mb-2" x-show="ejError" x-text="ejError"></p>
|
| 499 |
+
<div id="ejwrap" style="position:relative">
|
| 500 |
+
<svg id="ejsvg" width="100%" height="440" viewBox="0 0 980 440"></svg>
|
| 501 |
+
<div id="ejtip" style="position:absolute;display:none;pointer-events:none;background:#1f2937;border:1px solid #4b5563;border-radius:8px;padding:6px 10px;font-size:12px;max-width:230px;z-index:10"></div>
|
| 502 |
+
</div>
|
| 503 |
+
</section>
|
| 504 |
</div>
|
| 505 |
</template>
|
| 506 |
|
|
|
|
| 611 |
tvpLeague:'', tvpSeason:'', tvpSeasons:[], tvpTeam:'', tvpTeams:[], tvpScope:'liga',
|
| 612 |
tvpVars:[''], tvpResult:null, tvpLoading:false, tvpError:'', tvpZmax:3, tvpShowMean:false, tvpShowBest:false,
|
| 613 |
tvsScope:'all', tvsResult:null, tvsLoading:false, tvsError:'',
|
| 614 |
+
// Ejes ataque/defensa (scatter)
|
| 615 |
+
ejLeagues:{}, ejLeagueList:[], ejLeague:'', ejSeason:'', ejSeasons:[], ejLabels:{},
|
| 616 |
+
ejX:'elaboracion', ejY:'verticalidad', ejLado:'gen', ejMet:'z', ejData:null, ejError:'', ejLoaded:false,
|
| 617 |
+
ejPostMsg:'', ejPostMsgError:false,
|
| 618 |
|
| 619 |
async init() { await this.loadLeagues(); await this.loadSeasons(false); await this.loadTeams(); this._refreshHealth(); },
|
| 620 |
async _getJSON(u){ const r=await fetch(u); if(!r.ok) throw new Error((await r.json().catch(()=>({detail:r.statusText}))).detail); return r.json(); },
|
|
|
|
| 644 |
this.tvpOnLeague();
|
| 645 |
this.tvLoaded = true;
|
| 646 |
} catch(e){ this.tvError = 'No se pudieron cargar las opciones: '+e; }
|
| 647 |
+
this.ejInit();
|
| 648 |
},
|
| 649 |
tvpPct(z){ const m=this.tvpZmax||3; const c=Math.max(-m,Math.min(m,z)); return 50 + c/m*50; },
|
| 650 |
tvpAddVar(){ this.tvpVars.push(''); },
|
|
|
|
| 778 |
async onSeasonChange(){ await this.loadTeams(); },
|
| 779 |
|
| 780 |
async _refreshHealth(){ try{ const r=await fetch('/api/health'); if(r.ok){ this.preprocessedCached=!!(await r.json()).preprocessed_cached; } }catch(_e){} },
|
| 781 |
+
reportTitle(id){ return ({pre_match:'Reporte previo (head-to-head)',block_zscore:'Bloques (z-score)',triple_multitag:'Triple Análisis (Multi-Tag)',triple_centros:'Triple Análisis (Centros)',recuperaciones:'Recuperaciones',post_match:'Reporte post-partido',ejes_pre:'Ejes de ataque — previo',ejes_post:'Ejes de ataque — firma del partido'})[id]||id; },
|
| 782 |
visibleFigures(rt,figs){ return this.onlyFigure ? figs.filter(f=>f.name===this.onlyFigure) : figs; },
|
| 783 |
async toggleCatalog(id){
|
| 784 |
const r=this.reports[id]; r.catalogOpen=!r.catalogOpen;
|
|
|
|
| 787 |
async runFull(id){ await this.runOne(id, null); },
|
| 788 |
async runOne(id, figName){
|
| 789 |
if (!this.teamA){ alert('Elegí el Equipo A.'); return; }
|
| 790 |
+
const isMatch = (id==='pre_match' || id==='ejes_pre');
|
| 791 |
if (isMatch && !this.teamB){ alert('Elegí local y visitante.'); return; }
|
| 792 |
const teamB = isMatch ? this.teamB : (this.compareTwo ? this.teamB : '');
|
| 793 |
if (teamB && teamB===this.teamA){ alert('A y B deben ser distintos.'); return; }
|
|
|
|
| 818 |
},
|
| 819 |
_pmErr(m){ this.postMatchMsg=m; this.postMatchMsgError=true; },
|
| 820 |
|
| 821 |
+
async ejRunPost(){
|
| 822 |
+
this.ejPostMsg=''; this.ejPostMsgError=false;
|
| 823 |
+
if (!this.teamA||!this.teamB){ this.ejPostMsg='Elegí los dos equipos.'; this.ejPostMsgError=true; return; }
|
| 824 |
+
if (this.teamA===this.teamB){ this.ejPostMsg='A y B deben ser distintos.'; this.ejPostMsgError=true; return; }
|
| 825 |
+
this.ejPostMsg='Usa el último cruce jugado entre ambos (según artefactos de ejes).';
|
| 826 |
+
await this._post('ejes_post', { league:this.league, season:this.season, team_a:this.teamA, team_b:this.teamB, filters:{}, only:[] }, null, `Ejes — firma: ${this.teamA} vs ${this.teamB}`);
|
| 827 |
+
},
|
| 828 |
+
async ejInit(){
|
| 829 |
+
if (this.ejLoaded) return;
|
| 830 |
+
try {
|
| 831 |
+
const o = await this._getJSON('/api/ejes/options');
|
| 832 |
+
this.ejLeagues = o.leagues||{}; this.ejLabels = o.ejes||{};
|
| 833 |
+
this.ejLeagueList = Object.keys(this.ejLeagues).sort();
|
| 834 |
+
if (!this.ejLeagueList.length){ this.ejError='No hay artefactos de ejes disponibles.'; return; }
|
| 835 |
+
this.ejLeague = this.ejLeagueList.find(l=>l.toLowerCase().includes('segunda')) || this.ejLeagueList[0];
|
| 836 |
+
this.ejLoaded = true;
|
| 837 |
+
this.ejOnLeague();
|
| 838 |
+
} catch(e){ this.ejError='Error cargando ejes: '+e; }
|
| 839 |
+
},
|
| 840 |
+
ejOnLeague(){
|
| 841 |
+
this.ejSeasons = (this.ejLeagues[this.ejLeague]||[]).slice().sort().reverse();
|
| 842 |
+
this.ejSeason = this.ejSeasons[0]||'';
|
| 843 |
+
this.ejLoad();
|
| 844 |
+
},
|
| 845 |
+
async ejLoad(){
|
| 846 |
+
this.ejError=''; this.ejData=null;
|
| 847 |
+
if (!this.ejLeague||!this.ejSeason) return;
|
| 848 |
+
try {
|
| 849 |
+
this.ejData = await this._getJSON(`/api/ejes/profiles?league=${encodeURIComponent(this.ejLeague)}&season=${encodeURIComponent(this.ejSeason)}`);
|
| 850 |
+
await this.$nextTick(); this.ejDraw();
|
| 851 |
+
} catch(e){ this.ejError='Error: '+e; }
|
| 852 |
+
},
|
| 853 |
+
ejDraw(){
|
| 854 |
+
const svg=document.getElementById('ejsvg'), tip=document.getElementById('ejtip'), wrap=document.getElementById('ejwrap');
|
| 855 |
+
if (!svg||!this.ejData) return;
|
| 856 |
+
svg.innerHTML='';
|
| 857 |
+
const NS='http://www.w3.org/2000/svg', W=980, H=440, M={l:56,r:20,t:14,b:46};
|
| 858 |
+
const met=this.ejMet, lado=this.ejLado, ex=this.ejX, ey=this.ejY, labels=this.ejLabels;
|
| 859 |
+
const pts=Object.entries(this.ejData.teams).map(([team,d])=>{
|
| 860 |
+
const a=(d[lado]||{})[ex]||{}, b=(d[lado]||{})[ey]||{};
|
| 861 |
+
return {team, x:a[met], y:b[met]};
|
| 862 |
+
}).filter(p=>p.x!=null&&p.y!=null);
|
| 863 |
+
if (!pts.length) return;
|
| 864 |
+
const ext=Math.max(...pts.map(p=>Math.max(Math.abs(p.x),Math.abs(p.y))))*1.15||1;
|
| 865 |
+
const X=v=>M.l+((v+ext)/(2*ext))*(W-M.l-M.r), Y=v=>H-M.b-((v+ext)/(2*ext))*(H-M.t-M.b);
|
| 866 |
+
const el=(tag,attrs)=>{const e=document.createElementNS(NS,tag);for(const k in attrs)e.setAttribute(k,attrs[k]);svg.appendChild(e);return e;};
|
| 867 |
+
el('line',{x1:M.l,y1:Y(0),x2:W-M.r,y2:Y(0),stroke:'#4b5563','stroke-dasharray':'4 4'});
|
| 868 |
+
el('line',{x1:X(0),y1:M.t,x2:X(0),y2:H-M.b,stroke:'#4b5563','stroke-dasharray':'4 4'});
|
| 869 |
+
const unit = met==='z'?'':'pp';
|
| 870 |
+
const tx1=el('text',{x:W-M.r,y:Y(0)-8,'font-size':'12','text-anchor':'end',fill:'#9ca3af'}); tx1.textContent=(labels[ex]||ex)+' alto →';
|
| 871 |
+
const ty1=el('text',{x:X(0)+6,y:M.t+12,'font-size':'12',fill:'#9ca3af'}); ty1.textContent='↑ '+(labels[ey]||ey)+' alto';
|
| 872 |
+
[-1,-0.5,0.5,1].forEach(f=>{
|
| 873 |
+
const v=+(f*ext).toFixed(1);
|
| 874 |
+
const a=el('text',{x:X(v),y:H-M.b+16,'font-size':'11','text-anchor':'middle',fill:'#6b7280'}); a.textContent=v+unit;
|
| 875 |
+
const b=el('text',{x:M.l-8,y:Y(v)+4,'font-size':'11','text-anchor':'end',fill:'#6b7280'}); b.textContent=v+unit;
|
| 876 |
+
});
|
| 877 |
+
pts.forEach(pt=>{
|
| 878 |
+
const racing = pt.team==='Racing de Santander';
|
| 879 |
+
const c=el('circle',{cx:X(pt.x),cy:Y(pt.y),r:racing?8:6,fill:racing?'#f59e0b':'#9ca3af','fill-opacity':racing?1:0.7,stroke:'#111827','stroke-width':1});
|
| 880 |
+
c.style.cursor='pointer';
|
| 881 |
+
if (racing){ const l=el('text',{x:X(pt.x)+11,y:Y(pt.y)+4,'font-size':'12','font-weight':'600',fill:'#e5e7eb'}); l.textContent='Racing'; }
|
| 882 |
+
c.addEventListener('mousemove',ev=>{
|
| 883 |
+
const r=wrap.getBoundingClientRect();
|
| 884 |
+
tip.style.display='block';
|
| 885 |
+
tip.style.left=Math.min(ev.clientX-r.left+14,r.width-240)+'px';
|
| 886 |
+
tip.style.top=(ev.clientY-r.top+10)+'px';
|
| 887 |
+
const fx=met==='z'?pt.x.toFixed(2):pt.x.toFixed(1)+'pp', fy=met==='z'?pt.y.toFixed(2):pt.y.toFixed(1)+'pp';
|
| 888 |
+
tip.innerHTML='<b>'+pt.team+'</b><br>'+(labels[ex]||ex)+': '+fx+'<br>'+(labels[ey]||ey)+': '+fy;
|
| 889 |
+
c.setAttribute('r',racing?10:8);
|
| 890 |
+
});
|
| 891 |
+
c.addEventListener('mouseleave',()=>{ tip.style.display='none'; c.setAttribute('r',racing?8:6); });
|
| 892 |
+
});
|
| 893 |
+
},
|
| 894 |
async _post(id, body, figName, title){
|
| 895 |
let resp;
|
| 896 |
try { resp=await fetch(`/api/reports/${id}/run`,{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify(body)}); }
|
vendor/data/ejes/_index.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"english-football-league---championship": "English Football League - Championship",
|
| 3 |
+
"uefa-conference-league": "UEFA Conference League",
|
| 4 |
+
"danish-superligaen": "Danish Superligaen",
|
| 5 |
+
"english-premier-league": "English Premier League",
|
| 6 |
+
"spanish-segunda-division": "Spanish Segunda Division",
|
| 7 |
+
"french-ligue-1": "French Ligue 1",
|
| 8 |
+
"belgian-challenger-pro-league": "Belgian Challenger Pro League",
|
| 9 |
+
"serbian-super-liga": "Serbian Super Liga",
|
| 10 |
+
"chile-primera": "Chile Primera",
|
| 11 |
+
"spanish-la-liga": "Spanish La Liga",
|
| 12 |
+
"norwegian-eliteserien": "Norwegian Eliteserien",
|
| 13 |
+
"polish-ekstraklasa": "Polish Ekstraklasa",
|
| 14 |
+
"swedish-allsvenskan": "Swedish Allsvenskan",
|
| 15 |
+
"italian-serie-a": "Italian Serie A",
|
| 16 |
+
"german-bundesliga": "German Bundesliga",
|
| 17 |
+
"liga-profesional-argentina": "Liga Profesional Argentina",
|
| 18 |
+
"dutch-eredivisie": "Dutch Eredivisie",
|
| 19 |
+
"croatia-prva-hnl": "Croatia Prva HNL",
|
| 20 |
+
"uefa-champions-league": "UEFA Champions League",
|
| 21 |
+
"french-ligue-2": "French Ligue 2",
|
| 22 |
+
"uefa-europa-league": "UEFA Europa League",
|
| 23 |
+
"ecuador-liga-pro": "Ecuador Liga Pro",
|
| 24 |
+
"brack-super-league": "Brack Super League",
|
| 25 |
+
"portuguese-primeira-liga": "Portuguese Primeira Liga",
|
| 26 |
+
"dutch-eerste-divisie": "Dutch Eerste Divisie",
|
| 27 |
+
"italian-serie-b": "Italian Serie B",
|
| 28 |
+
"german-bundesliga-zwei": "German Bundesliga Zwei",
|
| 29 |
+
"austrian-bundesliga": "Austrian Bundesliga"
|
| 30 |
+
}
|
vendor/data/ejes/austrian-bundesliga/25-26/ejes_definition.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
|
vendor/data/ejes/austrian-bundesliga/25-26/match_team_ejes.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:34ac9709b1400fa0f71928e8538614ea303347633aa3836934bd6af16f0c57a0
|
| 3 |
+
size 50362
|
vendor/data/ejes/austrian-bundesliga/25-26/match_team_vars.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:369d7898e2b3bfea976781f4c9157f5e1ee61f0f787961eec669b47e88f66b0d
|
| 3 |
+
size 188615
|
vendor/data/ejes/austrian-bundesliga/25-26/predictor.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": {"gen": 0.8698, "con": 0.7797, "intercept": 0.0142}, "elaboracion": {"gen": 0.8787, "con": 0.8584, "intercept": 0.0001}, "individual": {"gen": 0.8901, "con": 0.5205, "intercept": 0.0002}, "rotura_lineas": {"gen": 0.7177, "con": 0.8074, "intercept": -0.0006}, "amplitud_centro": {"gen": 0.7346, "con": 0.7682, "intercept": -0.0003}, "profundidad_espalda": {"gen": 0.5978, "con": 0.8096, "intercept": -0.0008}, "robo_alto": {"gen": 0.8745, "con": 0.7521, "intercept": 0.0036}, "aereo_segunda": {"gen": 0.8563, "con": 0.803, "intercept": 0.0004}}
|
vendor/data/ejes/austrian-bundesliga/25-26/scales.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"var_sigma": {"atk_l": 2.2706, "atk_w": 1.2243, "ball_distance": 44.4577, "behind_line_ok": 0.023, "broke_last_line": 0.0154, "broke_second_last": 0.041, "cross_pvadded_max": 0.0013, "dang_runs": 0.0682, "deep_completions": 0.1132, "def_h": 3.0438, "dribbles_box": 0.0098, "dribbles_last_third": 0.0221, "duration_s": 18.4642, "hold_max": 1.5917, "hold_mean": 1.0796, "hold_min": 1.0543, "line_breaks": 0.221, "max_x": 3.9481, "n_centros": 0.0456, "n_events": 1.725, "n_involved": 0.1619, "n_passes": 0.5913, "opt_quality_mean": 0.1432, "paredes": 0.0976, "pass_options_mean": 1.5337, "passes_behind_line": 0.0388, "pct_adentro": 0.0381, "pct_afuera": 0.0364, "pct_cortos": 0.0458, "pct_headpass": 0.0156, "pct_largos": 0.0471, "pct_launch": 0.0374, "pct_layoff": 0.0051, "pct_medios": 0.0381, "pct_switch": 0.0044, "pct_through": 0.0041, "pct_verticales": 0.0575, "pelotazos_espalda": 0.0338, "press_final": 0.4181, "press_media": 0.2789, "prog_x": 2.5661, "start_x": 4.5257, "starts_from_dispossess": 0.0161, "takeons_ok": 0.0195, "tempo": 0.0397, "transition_speed": 0.6923, "verticalidad_media": 0.0731}, "eje_sigma": {"eje_verticalidad": 0.1181, "eje_elaboracion": 0.1026, "eje_individual": 0.0618, "eje_rotura_lineas": 0.064, "eje_amplitud_centro": 0.0577, "eje_profundidad_espalda": 0.0861, "eje_robo_alto": 0.0959, "eje_aereo_segunda": 0.069}, "eje_match_mean": {"eje_verticalidad": -0.0219, "eje_elaboracion": -0.0002, "eje_individual": -0.0006, "eje_rotura_lineas": 0.0012, "eje_amplitud_centro": 0.0005, "eje_profundidad_espalda": 0.002, "eje_robo_alto": -0.0058, "eje_aereo_segunda": -0.0007}, "eje_match_std": {"eje_verticalidad": 0.1337, "eje_elaboracion": 0.1181, "eje_individual": 0.0709, "eje_rotura_lineas": 0.0679, "eje_amplitud_centro": 0.061, "eje_profundidad_espalda": 0.0894, "eje_robo_alto": 0.1101, "eje_aereo_segunda": 0.0777}, "team_var_norm": {"Austria Wien": {"atk_l": 37.247, "atk_w": 32.686, "ball_distance": 95.8914, "behind_line_ok": 0.0588, "broke_last_line": 0.0385, "broke_second_last": 0.1505, "cross_pvadded_max": 0.0006, "dang_runs": 0.1003, "deep_completions": 0.3634, "def_h": 29.9407, "dribbles_box": 0.0129, "dribbles_last_third": 0.0537, "duration_s": 23.1901, "hold_max": 9.295, "hold_mean": 5.7404, "hold_min": 3.6356, "line_breaks": 0.4531, "max_x": 69.8701, "n_centros": 0.1382, "n_events": 5.158, "n_involved": 1.8105, "n_passes": 2.7692, "opt_quality_mean": 0.0356, "paredes": 0.2203, "pass_options_mean": 8.9608, "passes_behind_line": 0.1417, "pct_adentro": 0.5338, "pct_afuera": 0.3929, "pct_cortos": 0.3773, "pct_headpass": 0.051, "pct_largos": 0.2148, "pct_launch": 0.1055, "pct_layoff": 0.0081, "pct_medios": 0.3364, "pct_switch": 0.0038, "pct_through": 0.0024, "pct_verticales": 0.5019, "pelotazos_espalda": 0.1037, "press_final": 2.5633, "press_media": 1.9129, "prog_x": 24.159, "start_x": 46.5474, "starts_from_dispossess": 0.0354, "takeons_ok": 0.0416, "tempo": 0.3993, "transition_speed": 3.7005, "verticalidad_media": 0.3542}, "Blau-Weiß Linz": {"atk_l": 40.3425, "atk_w": 32.0728, "ball_distance": 95.329, "behind_line_ok": 0.0407, "broke_last_line": 0.0209, "broke_second_last": 0.1355, "cross_pvadded_max": 0.0007, "dang_runs": 0.0886, "deep_completions": 0.3024, "def_h": 31.1582, "dribbles_box": 0.0061, "dribbles_last_third": 0.0382, "duration_s": 23.8606, "hold_max": 9.6337, "hold_mean": 5.5424, "hold_min": 3.3149, "line_breaks": 0.4172, "max_x": 68.1032, "n_centros": 0.1065, "n_events": 5.1708, "n_involved": 1.8724, "n_passes": 2.6514, "opt_quality_mean": 0.0319, "paredes": 0.1892, "pass_options_mean": 8.7267, "passes_behind_line": 0.1273, "pct_adentro": 0.5311, "pct_afuera": 0.3883, "pct_cortos": 0.3636, "pct_headpass": 0.053, "pct_largos": 0.2152, "pct_launch": 0.1207, "pct_layoff": 0.0104, "pct_medios": 0.3414, "pct_switch": 0.004, "pct_through": 0.0022, "pct_verticales": 0.5002, "pelotazos_espalda": 0.0979, "press_final": 2.5448, "press_media": 1.9086, "prog_x": 24.2207, "start_x": 45.1211, "starts_from_dispossess": 0.0421, "takeons_ok": 0.0362, "tempo": 0.4309, "transition_speed": 4.1346, "verticalidad_media": 0.3545}, "Grazer AK": {"atk_l": 40.2141, "atk_w": 32.9616, "ball_distance": 98.1642, "behind_line_ok": 0.0507, "broke_last_line": 0.0238, "broke_second_last": 0.1241, "cross_pvadded_max": 0.0003, "dang_runs": 0.1149, "deep_completions": 0.2145, "def_h": 32.8187, "dribbles_box": 0.0077, "dribbles_last_third": 0.0413, "duration_s": 23.4329, "hold_max": 10.3087, "hold_mean": 6.4454, "hold_min": 4.2461, "line_breaks": 0.4437, "max_x": 66.4975, "n_centros": 0.0956, "n_events": 4.9511, "n_involved": 1.7903, "n_passes": 2.5623, "opt_quality_mean": -0.0602, "paredes": 0.1616, "pass_options_mean": 8.6827, "passes_behind_line": 0.145, "pct_adentro": 0.5227, "pct_afuera": 0.3887, "pct_cortos": 0.3186, "pct_headpass": 0.0532, "pct_largos": 0.2686, "pct_launch": 0.1167, "pct_layoff": 0.0118, "pct_medios": 0.325, "pct_switch": 0.0053, "pct_through": 0.003, "pct_verticales": 0.5119, "pelotazos_espalda": 0.1131, "press_final": 2.4958, "press_media": 1.8163, "prog_x": 25.7852, "start_x": 41.848, "starts_from_dispossess": 0.0338, "takeons_ok": 0.0375, "tempo": 0.3873, "transition_speed": 4.142, "verticalidad_media": 0.3695}, "Hartberg": {"atk_l": 40.9458, "atk_w": 32.2481, "ball_distance": 94.8591, "behind_line_ok": 0.0527, "broke_last_line": 0.0221, "broke_second_last": 0.1256, "cross_pvadded_max": 0.0007, "dang_runs": 0.0981, "deep_completions": 0.2012, "def_h": 35.3189, "dribbles_box": 0.0091, "dribbles_last_third": 0.0426, "duration_s": 28.7856, "hold_max": 10.7828, "hold_mean": 6.949, "hold_min": 4.7359, "line_breaks": 0.4465, "max_x": 63.3581, "n_centros": 0.0694, "n_events": 5.277, "n_involved": 1.6715, "n_passes": 2.5464, "opt_quality_mean": -0.1231, "paredes": 0.1739, "pass_options_mean": 8.8033, "passes_behind_line": 0.1367, "pct_adentro": 0.4849, "pct_afuera": 0.4285, "pct_cortos": 0.3245, "pct_headpass": 0.0411, "pct_largos": 0.2704, "pct_launch": 0.1133, "pct_layoff": 0.0106, "pct_medios": 0.3197, "pct_switch": 0.0068, "pct_through": 0.003, "pct_verticales": 0.5487, "pelotazos_espalda": 0.1058, "press_final": 2.6448, "press_media": 1.8088, "prog_x": 27.5093, "start_x": 37.1227, "starts_from_dispossess": 0.0421, "takeons_ok": 0.038, "tempo": 0.3486, "transition_speed": 4.1107, "verticalidad_media": 0.4257}, "LASK": {"atk_l": 41.2851, "atk_w": 32.9391, "ball_distance": 128.0927, "behind_line_ok": 0.0561, "broke_last_line": 0.0327, "broke_second_last": 0.1543, "cross_pvadded_max": 0.0016, "dang_runs": 0.1747, "deep_completions": 0.3753, "def_h": 31.0286, "dribbles_box": 0.0128, "dribbles_last_third": 0.0554, "duration_s": 32.9366, "hold_max": 10.1356, "hold_mean": 6.0665, "hold_min": 3.8436, "line_breaks": 0.5511, "max_x": 68.8257, "n_centros": 0.1395, "n_events": 5.9959, "n_involved": 1.8257, "n_passes": 2.9937, "opt_quality_mean": 0.076, "paredes": 0.232, "pass_options_mean": 8.9176, "passes_behind_line": 0.1284, "pct_adentro": 0.514, "pct_afuera": 0.3894, "pct_cortos": 0.35, "pct_headpass": 0.0425, "pct_largos": 0.21, "pct_launch": 0.0799, "pct_layoff": 0.0084, "pct_medios": 0.3444, "pct_switch": 0.0057, "pct_through": 0.0036, "pct_verticales": 0.4663, "pelotazos_espalda": 0.0923, "press_final": 2.5412, "press_media": 1.8247, "prog_x": 25.0972, "start_x": 44.8983, "starts_from_dispossess": 0.0402, "takeons_ok": 0.0577, "tempo": 0.353, "transition_speed": 3.3731, "verticalidad_media": 0.3412}, "Rapid": {"atk_l": 41.5174, "atk_w": 32.1031, "ball_distance": 141.9981, "behind_line_ok": 0.05, "broke_last_line": 0.024, "broke_second_last": 0.1525, "cross_pvadded_max": 0.0013, "dang_runs": 0.1577, "deep_completions": 0.2972, "def_h": 30.8785, "dribbles_box": 0.0139, "dribbles_last_third": 0.0612, "duration_s": 29.5006, "hold_max": 10.5411, "hold_mean": 6.2131, "hold_min": 3.8774, "line_breaks": 0.684, "max_x": 68.8984, "n_centros": 0.1429, "n_events": 6.0217, "n_involved": 1.9196, "n_passes": 3.3233, "opt_quality_mean": 0.0602, "paredes": 0.2988, "pass_options_mean": 9.0017, "passes_behind_line": 0.1311, "pct_adentro": 0.5146, "pct_afuera": 0.4005, "pct_cortos": 0.3702, "pct_headpass": 0.0482, "pct_largos": 0.1975, "pct_launch": 0.0816, "pct_layoff": 0.01, "pct_medios": 0.3486, "pct_switch": 0.0043, "pct_through": 0.0033, "pct_verticales": 0.4505, "pelotazos_espalda": 0.0937, "press_final": 2.603, "press_media": 1.8846, "prog_x": 24.9013, "start_x": 44.9249, "starts_from_dispossess": 0.0455, "takeons_ok": 0.0588, "tempo": 0.3932, "transition_speed": 3.3221, "verticalidad_media": 0.2935}, "Rheindorf Altach": {"atk_l": 39.4675, "atk_w": 31.7876, "ball_distance": 96.4901, "behind_line_ok": 0.0442, "broke_last_line": 0.0224, "broke_second_last": 0.1538, "cross_pvadded_max": 0.0008, "dang_runs": 0.105, "deep_completions": 0.2442, "def_h": 32.1346, "dribbles_box": 0.0104, "dribbles_last_third": 0.0438, "duration_s": 33.3833, "hold_max": 9.9646, "hold_mean": 6.1328, "hold_min": 4.0123, "line_breaks": 0.4756, "max_x": 67.0237, "n_centros": 0.1018, "n_events": 6.0242, "n_involved": 1.7962, "n_passes": 2.7682, "opt_quality_mean": -0.0168, "paredes": 0.207, "pass_options_mean": 8.7443, "passes_behind_line": 0.1371, "pct_adentro": 0.5031, "pct_afuera": 0.4164, "pct_cortos": 0.3587, "pct_headpass": 0.0558, "pct_largos": 0.232, "pct_launch": 0.1228, "pct_layoff": 0.0113, "pct_medios": 0.33, "pct_switch": 0.0058, "pct_through": 0.0014, "pct_verticales": 0.504, "pelotazos_espalda": 0.1091, "press_final": 2.423, "press_media": 1.8048, "prog_x": 24.8434, "start_x": 43.2419, "starts_from_dispossess": 0.0376, "takeons_ok": 0.0406, "tempo": 0.3904, "transition_speed": 3.7629, "verticalidad_media": 0.3538}, "Ried": {"atk_l": 38.9549, "atk_w": 32.3391, "ball_distance": 85.088, "behind_line_ok": 0.0501, "broke_last_line": 0.0276, "broke_second_last": 0.127, "cross_pvadded_max": 0.001, "dang_runs": 0.0733, "deep_completions": 0.2673, "def_h": 29.5834, "dribbles_box": 0.0098, "dribbles_last_third": 0.0581, "duration_s": 21.8472, "hold_max": 11.7491, "hold_mean": 7.7604, "hold_min": 5.4566, "line_breaks": 0.4445, "max_x": 68.8824, "n_centros": 0.0974, "n_events": 4.8076, "n_involved": 1.7582, "n_passes": 2.4681, "opt_quality_mean": 0.0981, "paredes": 0.1307, "pass_options_mean": 8.5107, "passes_behind_line": 0.1205, "pct_adentro": 0.5328, "pct_afuera": 0.3765, "pct_cortos": 0.3386, "pct_headpass": 0.0604, "pct_largos": 0.2558, "pct_launch": 0.1117, "pct_layoff": 0.0072, "pct_medios": 0.3173, "pct_switch": 0.0073, "pct_through": 0.0047, "pct_verticales": 0.5036, "pelotazos_espalda": 0.0936, "press_final": 2.4642, "press_media": 1.8193, "prog_x": 24.0286, "start_x": 46.0996, "starts_from_dispossess": 0.0416, "takeons_ok": 0.0509, "tempo": 0.3592, "transition_speed": 3.6727, "verticalidad_media": 0.3676}, "Salzburg": {"atk_l": 39.2285, "atk_w": 32.0684, "ball_distance": 131.7378, "behind_line_ok": 0.0494, "broke_last_line": 0.0308, "broke_second_last": 0.1669, "cross_pvadded_max": 0.0017, "dang_runs": 0.1174, "deep_completions": 0.3746, "def_h": 30.1495, "dribbles_box": 0.0165, "dribbles_last_third": 0.078, "duration_s": 22.8739, "hold_max": 8.86, "hold_mean": 5.2821, "hold_min": 3.2415, "line_breaks": 0.6184, "max_x": 69.0844, "n_centros": 0.1169, "n_events": 5.4983, "n_involved": 1.926, "n_passes": 3.3505, "opt_quality_mean": 0.112, "paredes": 0.3006, "pass_options_mean": 8.9275, "passes_behind_line": 0.1135, "pct_adentro": 0.5313, "pct_afuera": 0.388, "pct_cortos": 0.4335, "pct_headpass": 0.0382, "pct_largos": 0.1608, "pct_launch": 0.0677, "pct_layoff": 0.0099, "pct_medios": 0.3259, "pct_switch": 0.004, "pct_through": 0.0042, "pct_verticales": 0.4583, "pelotazos_espalda": 0.0722, "press_final": 2.7401, "press_media": 1.9344, "prog_x": 23.1434, "start_x": 46.906, "starts_from_dispossess": 0.0484, "takeons_ok": 0.0615, "tempo": 0.3852, "transition_speed": 3.0373, "verticalidad_media": 0.2968}, "Sturm Graz": {"atk_l": 36.3699, "atk_w": 32.3511, "ball_distance": 91.0502, "behind_line_ok": 0.051, "broke_last_line": 0.0259, "broke_second_last": 0.162, "cross_pvadded_max": 0.0015, "dang_runs": 0.1131, "deep_completions": 0.3484, "def_h": 29.1157, "dribbles_box": 0.0178, "dribbles_last_third": 0.0769, "duration_s": 20.4032, "hold_max": 9.5345, "hold_mean": 6.0523, "hold_min": 4.0559, "line_breaks": 0.4662, "max_x": 70.1849, "n_centros": 0.1193, "n_events": 4.8627, "n_involved": 1.8065, "n_passes": 2.6476, "opt_quality_mean": 0.0896, "paredes": 0.2027, "pass_options_mean": 8.8573, "passes_behind_line": 0.1187, "pct_adentro": 0.5315, "pct_afuera": 0.3776, "pct_cortos": 0.3846, "pct_headpass": 0.0449, "pct_largos": 0.2107, "pct_launch": 0.0849, "pct_layoff": 0.0109, "pct_medios": 0.3148, "pct_switch": 0.0022, "pct_through": 0.0031, "pct_verticales": 0.4816, "pelotazos_espalda": 0.0821, "press_final": 2.6735, "press_media": 1.9529, "prog_x": 24.1674, "start_x": 47.5494, "starts_from_dispossess": 0.0416, "takeons_ok": 0.0565, "tempo": 0.3991, "transition_speed": 3.7804, "verticalidad_media": 0.3456}, "WSG Tirol": {"atk_l": 40.0213, "atk_w": 32.019, "ball_distance": 96.3509, "behind_line_ok": 0.0423, "broke_last_line": 0.0179, "broke_second_last": 0.1501, "cross_pvadded_max": 0.0008, "dang_runs": 0.0978, "deep_completions": 0.2368, "def_h": 31.3692, "dribbles_box": 0.0077, "dribbles_last_third": 0.0466, "duration_s": 21.532, "hold_max": 10.6256, "hold_mean": 6.7855, "hold_min": 4.4376, "line_breaks": 0.4576, "max_x": 67.0537, "n_centros": 0.101, "n_events": 4.8154, "n_involved": 1.8301, "n_passes": 2.5913, "opt_quality_mean": 0.0194, "paredes": 0.1677, "pass_options_mean": 8.6004, "passes_behind_line": 0.1213, "pct_adentro": 0.5455, "pct_afuera": 0.3705, "pct_cortos": 0.3451, "pct_headpass": 0.0612, "pct_largos": 0.2378, "pct_launch": 0.1137, "pct_layoff": 0.0107, "pct_medios": 0.3352, "pct_switch": 0.0068, "pct_through": 0.0036, "pct_verticales": 0.4902, "pelotazos_espalda": 0.0993, "press_final": 2.5085, "press_media": 1.8154, "prog_x": 23.1411, "start_x": 45.3298, "starts_from_dispossess": 0.0368, "takeons_ok": 0.0364, "tempo": 0.3957, "transition_speed": 3.8002, "verticalidad_media": 0.3514}, "Wolfsberger AC": {"atk_l": 41.192, "atk_w": 32.9606, "ball_distance": 118.7524, "behind_line_ok": 0.0584, "broke_last_line": 0.0234, "broke_second_last": 0.1606, "cross_pvadded_max": 0.0009, "dang_runs": 0.1349, "deep_completions": 0.3315, "def_h": 31.9163, "dribbles_box": 0.0093, "dribbles_last_third": 0.0415, "duration_s": 25.9303, "hold_max": 9.9586, "hold_mean": 5.9875, "hold_min": 3.7005, "line_breaks": 0.5378, "max_x": 68.2962, "n_centros": 0.1089, "n_events": 5.5011, "n_involved": 1.8751, "n_passes": 3.0365, "opt_quality_mean": -0.0127, "paredes": 0.2402, "pass_options_mean": 8.5688, "passes_behind_line": 0.1457, "pct_adentro": 0.534, "pct_afuera": 0.394, "pct_cortos": 0.3343, "pct_headpass": 0.0417, "pct_largos": 0.2253, "pct_launch": 0.0923, "pct_layoff": 0.0112, "pct_medios": 0.3695, "pct_switch": 0.0062, "pct_through": 0.003, "pct_verticales": 0.4906, "pelotazos_espalda": 0.11, "press_final": 2.4757, "press_media": 1.8019, "prog_x": 26.2267, "start_x": 42.9304, "starts_from_dispossess": 0.0396, "takeons_ok": 0.0429, "tempo": 0.3935, "transition_speed": 3.8297, "verticalidad_media": 0.3405}}, "team_eje_norm_gen": {"Austria Wien": {"eje_verticalidad": -0.0177, "eje_elaboracion": 0.0116, "eje_individual": -0.0068, "eje_rotura_lineas": 0.0135, "eje_amplitud_centro": 0.0197, "eje_profundidad_espalda": 0.0476, "eje_robo_alto": 0.0223, "eje_aereo_segunda": -0.0029}, "Blau-Weiß Linz": {"eje_verticalidad": -0.0028, "eje_elaboracion": -0.0189, "eje_individual": -0.0478, "eje_rotura_lineas": -0.0297, "eje_amplitud_centro": -0.0164, "eje_profundidad_espalda": -0.0086, "eje_robo_alto": 0.0124, "eje_aereo_segunda": 0.0341}, "Grazer AK": {"eje_verticalidad": 0.0465, "eje_elaboracion": -0.0674, "eje_individual": -0.0305, "eje_rotura_lineas": -0.0251, "eje_amplitud_centro": -0.0191, "eje_profundidad_espalda": -0.0027, "eje_robo_alto": -0.0708, "eje_aereo_segunda": 0.0372}, "Hartberg": {"eje_verticalidad": 0.0993, "eje_elaboracion": -0.0555, "eje_individual": -0.0314, "eje_rotura_lineas": -0.0262, "eje_amplitud_centro": -0.0003, "eje_profundidad_espalda": -0.0172, "eje_robo_alto": -0.1389, "eje_aereo_segunda": 0.0014}, "LASK": {"eje_verticalidad": -0.0708, "eje_elaboracion": 0.0234, "eje_individual": 0.0383, "eje_rotura_lineas": 0.0263, "eje_amplitud_centro": 0.0303, "eje_profundidad_espalda": 0.0296, "eje_robo_alto": 0.0033, "eje_aereo_segunda": -0.0498}, "Rapid": {"eje_verticalidad": -0.1135, "eje_elaboracion": 0.0874, "eje_individual": 0.042, "eje_rotura_lineas": 0.0269, "eje_amplitud_centro": 0.0348, "eje_profundidad_espalda": -0.0011, "eje_robo_alto": 0.0173, "eje_aereo_segunda": -0.0273}, "Rheindorf Altach": {"eje_verticalidad": -0.0043, "eje_elaboracion": 0.0016, "eje_individual": -0.0219, "eje_rotura_lineas": -0.0124, "eje_amplitud_centro": 0.0157, "eje_profundidad_espalda": -0.0086, "eje_robo_alto": -0.0346, "eje_aereo_segunda": 0.0476}, "Ried": {"eje_verticalidad": 0.0145, "eje_elaboracion": -0.0755, "eje_individual": -0.008, "eje_rotura_lineas": -0.008, "eje_amplitud_centro": -0.0152, "eje_profundidad_espalda": -0.0189, "eje_robo_alto": 0.0295, "eje_aereo_segunda": 0.019}, "Salzburg": {"eje_verticalidad": -0.1426, "eje_elaboracion": 0.127, "eje_individual": 0.0543, "eje_rotura_lineas": 0.0433, "eje_amplitud_centro": -0.0055, "eje_profundidad_espalda": -0.0055, "eje_robo_alto": 0.0621, "eje_aereo_segunda": -0.0652}, "Sturm Graz": {"eje_verticalidad": -0.0395, "eje_elaboracion": -0.0024, "eje_individual": 0.0493, "eje_rotura_lineas": 0.0066, "eje_amplitud_centro": -0.0241, "eje_profundidad_espalda": -0.0009, "eje_robo_alto": 0.0568, "eje_aereo_segunda": -0.0246}, "WSG Tirol": {"eje_verticalidad": -0.0089, "eje_elaboracion": -0.0465, "eje_individual": -0.0321, "eje_rotura_lineas": -0.012, "eje_amplitud_centro": -0.0201, "eje_profundidad_espalda": -0.0327, "eje_robo_alto": 0.0028, "eje_aereo_segunda": 0.0432}, "Wolfsberger AC": {"eje_verticalidad": -0.0203, "eje_elaboracion": 0.0144, "eje_individual": -0.0139, "eje_rotura_lineas": 0.0107, "eje_amplitud_centro": 0.0057, "eje_profundidad_espalda": 0.0442, "eje_robo_alto": -0.0354, "eje_aereo_segunda": -0.02}}, "team_eje_norm_con": {"Austria Wien": {"eje_verticalidad": -0.0239, "eje_elaboracion": 0.0268, "eje_individual": 0.0092, "eje_rotura_lineas": -0.0036, "eje_amplitud_centro": -0.0231, "eje_profundidad_espalda": -0.0253, "eje_robo_alto": -0.0593, "eje_aereo_segunda": -0.0105}, "Blau-Weiß Linz": {"eje_verticalidad": 0.0105, "eje_elaboracion": -0.017, "eje_individual": -0.0059, "eje_rotura_lineas": -0.0179, "eje_amplitud_centro": -0.0295, "eje_profundidad_espalda": -0.0107, "eje_robo_alto": 0.0003, "eje_aereo_segunda": 0.0337}, "Grazer AK": {"eje_verticalidad": -0.0044, "eje_elaboracion": -0.0095, "eje_individual": -0.0306, "eje_rotura_lineas": -0.0187, "eje_amplitud_centro": 0.0067, "eje_profundidad_espalda": 0.0015, "eje_robo_alto": 0.0139, "eje_aereo_segunda": 0.0236}, "Hartberg": {"eje_verticalidad": -0.1528, "eje_elaboracion": 0.1432, "eje_individual": 0.0429, "eje_rotura_lineas": 0.0668, "eje_amplitud_centro": 0.061, "eje_profundidad_espalda": 0.1009, "eje_robo_alto": 0.0981, "eje_aereo_segunda": -0.0786}, "LASK": {"eje_verticalidad": -0.0583, "eje_elaboracion": 0.0429, "eje_individual": -0.0034, "eje_rotura_lineas": 0.0262, "eje_amplitud_centro": 0.0068, "eje_profundidad_espalda": 0.0189, "eje_robo_alto": 0.0036, "eje_aereo_segunda": -0.0408}, "Rapid": {"eje_verticalidad": -0.0182, "eje_elaboracion": -0.001, "eje_individual": -0.0053, "eje_rotura_lineas": 0.0174, "eje_amplitud_centro": -0.0055, "eje_profundidad_espalda": 0.0079, "eje_robo_alto": -0.0211, "eje_aereo_segunda": -0.0008}, "Rheindorf Altach": {"eje_verticalidad": 0.013, "eje_elaboracion": -0.057, "eje_individual": 0.0056, "eje_rotura_lineas": -0.0279, "eje_amplitud_centro": 0.0006, "eje_profundidad_espalda": 0.0212, "eje_robo_alto": 0.0106, "eje_aereo_segunda": 0.0153}, "Ried": {"eje_verticalidad": 0.0104, "eje_elaboracion": -0.0453, "eje_individual": -0.0006, "eje_rotura_lineas": -0.0161, "eje_amplitud_centro": -0.0011, "eje_profundidad_espalda": -0.0012, "eje_robo_alto": -0.018, "eje_aereo_segunda": 0.0303}, "Salzburg": {"eje_verticalidad": 0.0184, "eje_elaboracion": -0.0499, "eje_individual": -0.0167, "eje_rotura_lineas": -0.0182, "eje_amplitud_centro": -0.0074, "eje_profundidad_espalda": -0.0265, "eje_robo_alto": -0.0592, "eje_aereo_segunda": 0.009}, "Sturm Graz": {"eje_verticalidad": 0.0475, "eje_elaboracion": -0.0673, "eje_individual": 0.001, "eje_rotura_lineas": -0.0246, "eje_amplitud_centro": -0.0011, "eje_profundidad_espalda": -0.0324, "eje_robo_alto": -0.0528, "eje_aereo_segunda": 0.0263}, "WSG Tirol": {"eje_verticalidad": -0.067, "eje_elaboracion": 0.0289, "eje_individual": -0.0234, "eje_rotura_lineas": 0.0196, "eje_amplitud_centro": 0.0064, "eje_profundidad_espalda": -0.015, "eje_robo_alto": 0.0153, "eje_aereo_segunda": 0.0025}, "Wolfsberger AC": {"eje_verticalidad": -0.0402, "eje_elaboracion": 0.0072, "eje_individual": 0.0199, "eje_rotura_lineas": 0.0122, "eje_amplitud_centro": -0.0069, "eje_profundidad_espalda": -0.0141, "eje_robo_alto": 0.0011, "eje_aereo_segunda": -0.0201}}}
|
vendor/data/ejes/austrian-bundesliga/25-26/team_profiles.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1784b7725e7c99c700c598a05c435111093633695beb78b206a076c9b86dedff
|
| 3 |
+
size 8157
|
vendor/data/ejes/belgian-challenger-pro-league/25-26/ejes_definition.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
|
vendor/data/ejes/belgian-challenger-pro-league/25-26/match_team_ejes.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4cfab575bd22847b5ff6a5b97be3c5479d525e1bcf91cb4d8ce62ee364669212
|
| 3 |
+
size 67505
|
vendor/data/ejes/belgian-challenger-pro-league/25-26/match_team_vars.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2061185f9c5c4ce62dfed0afa9b3bc3b4be377c0b5684d646c30dec3e7e883e9
|
| 3 |
+
size 249583
|
vendor/data/ejes/belgian-challenger-pro-league/25-26/predictor.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": {"gen": 0.9531, "con": 0.4901, "intercept": 0.013}, "elaboracion": {"gen": -0.1909, "con": -0.2175, "intercept": 0.5071}, "individual": {"gen": -0.1567, "con": -0.172, "intercept": 0.3343}, "rotura_lineas": {"gen": 0.9102, "con": 0.7676, "intercept": 0.0}, "amplitud_centro": {"gen": -0.1782, "con": -0.2534, "intercept": 0.2314}, "profundidad_espalda": {"gen": -0.1951, "con": -0.3453, "intercept": 0.223}, "robo_alto": {"gen": 0.8256, "con": 0.7802, "intercept": 0.0057}, "aereo_segunda": {"gen": 0.9255, "con": 0.6728, "intercept": 0.0007}}
|
vendor/data/ejes/belgian-challenger-pro-league/25-26/scales.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"var_sigma": {"atk_l": 1.7236, "atk_w": 1.3367, "ball_distance": 45.3685, "behind_line_ok": 0.029, "broke_last_line": 0.0186, "broke_second_last": 0.0467, "cross_pvadded_max": 0.0158, "dang_runs": 0.0845, "deep_completions": 8.084, "def_h": 2.9379, "dribbles_box": 0.3954, "dribbles_last_third": 1.7019, "duration_s": 410.166, "hold_max": 27.4279, "hold_mean": 0.8223, "hold_min": 0.8067, "line_breaks": 0.2539, "max_x": 4.8193, "n_centros": 2.6303, "n_events": 128.7672, "n_involved": 0.1519, "n_passes": 71.4463, "opt_quality_mean": 0.1382, "paredes": 7.4493, "pass_options_mean": 1.9819, "passes_behind_line": 0.0477, "pct_adentro": 0.0333, "pct_afuera": 0.0318, "pct_cortos": 0.0526, "pct_headpass": 0.014, "pct_largos": 0.0441, "pct_launch": 0.0311, "pct_layoff": 0.0052, "pct_medios": 0.0427, "pct_switch": 0.0047, "pct_through": 0.0035, "pct_verticales": 0.0483, "pelotazos_espalda": 0.0383, "press_final": 0.4256, "press_media": 0.2962, "prog_x": 5.9722, "start_x": 5.5229, "starts_from_dispossess": 0.0171, "takeons_ok": 1.343, "tempo": 0.0393, "transition_speed": 0.6974, "verticalidad_media": 0.0573}, "eje_sigma": {"eje_verticalidad": 0.105, "eje_elaboracion": 4.8283, "eje_individual": 3.6518, "eje_rotura_lineas": 0.0663, "eje_amplitud_centro": 2.1898, "eje_profundidad_espalda": 1.9536, "eje_robo_alto": 0.1165, "eje_aereo_segunda": 0.0651}, "eje_match_mean": {"eje_verticalidad": -0.0293, "eje_elaboracion": 0.36, "eje_individual": 0.2516, "eje_rotura_lineas": -0.0001, "eje_amplitud_centro": 0.1616, "eje_profundidad_espalda": 0.1448, "eje_robo_alto": -0.0094, "eje_aereo_segunda": -0.0011}, "eje_match_std": {"eje_verticalidad": 0.1307, "eje_elaboracion": 4.8926, "eje_individual": 3.7017, "eje_rotura_lineas": 0.0752, "eje_amplitud_centro": 2.2192, "eje_profundidad_espalda": 1.9796, "eje_robo_alto": 0.1263, "eje_aereo_segunda": 0.0749}, "team_var_norm": {"Anderlecht II": {"atk_l": 42.7023, "atk_w": 33.6565, "ball_distance": 108.4924, "behind_line_ok": 0.039, "broke_last_line": 0.0329, "broke_second_last": 0.1626, "cross_pvadded_max": 0.0007, "dang_runs": 0.1557, "deep_completions": 0.3214, "def_h": 33.0482, "dribbles_box": 0.0086, "dribbles_last_third": 0.0596, "duration_s": 21.3761, "hold_max": 9.6916, "hold_mean": 5.5692, "hold_min": 3.1803, "line_breaks": 0.5548, "max_x": 66.6222, "n_centros": 0.1146, "n_events": 5.1205, "n_involved": 1.7985, "n_passes": 3.1867, "opt_quality_mean": 0.0335, "paredes": 0.2571, "pass_options_mean": 8.3246, "passes_behind_line": 0.1044, "pct_adentro": 0.5025, "pct_afuera": 0.3977, "pct_cortos": 0.3868, "pct_headpass": 0.0251, "pct_largos": 0.1748, "pct_launch": 0.0722, "pct_layoff": 0.0103, "pct_medios": 0.3397, "pct_switch": 0.0043, "pct_through": 0.0031, "pct_verticales": 0.4433, "pelotazos_espalda": 0.0788, "press_final": 2.4448, "press_media": 1.7429, "prog_x": 24.205, "start_x": 43.9027, "starts_from_dispossess": 0.0428, "takeons_ok": 0.0503, "tempo": 0.3429, "transition_speed": 3.0991, "verticalidad_media": 0.2968}, "Beerschot": {"atk_l": 42.0656, "atk_w": 32.7335, "ball_distance": 132.7431, "behind_line_ok": 0.0659, "broke_last_line": 0.0359, "broke_second_last": 0.1651, "cross_pvadded_max": 0.0019, "dang_runs": 0.1623, "deep_completions": 0.432, "def_h": 29.485, "dribbles_box": 0.0135, "dribbles_last_third": 0.0638, "duration_s": 38.6316, "hold_max": 10.2034, "hold_mean": 5.4474, "hold_min": 3.1964, "line_breaks": 0.7118, "max_x": 70.6205, "n_centros": 0.1534, "n_events": 6.8399, "n_involved": 1.9132, "n_passes": 3.3892, "opt_quality_mean": 0.1204, "paredes": 0.2979, "pass_options_mean": 8.9905, "passes_behind_line": 0.1352, "pct_adentro": 0.5198, "pct_afuera": 0.3892, "pct_cortos": 0.4038, "pct_headpass": 0.0434, "pct_largos": 0.179, "pct_launch": 0.0746, "pct_layoff": 0.0103, "pct_medios": 0.3271, "pct_switch": 0.0026, "pct_through": 0.0026, "pct_verticales": 0.4541, "pelotazos_espalda": 0.0905, "press_final": 2.4449, "press_media": 1.803, "prog_x": 24.2624, "start_x": 47.5923, "starts_from_dispossess": 0.044, "takeons_ok": 0.0482, "tempo": 0.3688, "transition_speed": 3.0466, "verticalidad_media": 0.292}, "Beveren": {"atk_l": 41.0241, "atk_w": 33.3067, "ball_distance": 122.413, "behind_line_ok": 0.0808, "broke_last_line": 0.048, "broke_second_last": 0.1845, "cross_pvadded_max": 0.0016, "dang_runs": 0.1393, "deep_completions": 0.466, "def_h": 29.3237, "dribbles_box": 0.0103, "dribbles_last_third": 0.0567, "duration_s": 28.2254, "hold_max": 8.6793, "hold_mean": 4.8505, "hold_min": 2.7619, "line_breaks": 0.6345, "max_x": 71.179, "n_centros": 0.1604, "n_events": 5.8005, "n_involved": 1.9507, "n_passes": 3.3716, "opt_quality_mean": 0.093, "paredes": 0.3283, "pass_options_mean": 8.6394, "passes_behind_line": 0.1482, "pct_adentro": 0.5238, "pct_afuera": 0.3987, "pct_cortos": 0.3809, "pct_headpass": 0.0528, "pct_largos": 0.1811, "pct_launch": 0.0836, "pct_layoff": 0.0098, "pct_medios": 0.362, "pct_switch": 0.0053, "pct_through": 0.0026, "pct_verticales": 0.4627, "pelotazos_espalda": 0.1065, "press_final": 2.3571, "press_media": 1.8452, "prog_x": 23.8641, "start_x": 48.3481, "starts_from_dispossess": 0.0423, "takeons_ok": 0.0468, "tempo": 0.3802, "transition_speed": 3.2266, "verticalidad_media": 0.305}, "Club Brugge II": {"atk_l": 44.162, "atk_w": 33.1305, "ball_distance": 147.6823, "behind_line_ok": 0.0541, "broke_last_line": 0.0352, "broke_second_last": 0.1646, "cross_pvadded_max": 0.0007, "dang_runs": 0.171, "deep_completions": 0.3324, "def_h": 33.8166, "dribbles_box": 0.0116, "dribbles_last_third": 0.0631, "duration_s": 34.7632, "hold_max": 9.2318, "hold_mean": 4.9813, "hold_min": 2.6801, "line_breaks": 0.6448, "max_x": 64.8806, "n_centros": 0.1024, "n_events": 6.5448, "n_involved": 1.9336, "n_passes": 3.7212, "opt_quality_mean": -0.0205, "paredes": 0.3756, "pass_options_mean": 8.8121, "passes_behind_line": 0.1158, "pct_adentro": 0.5125, "pct_afuera": 0.3976, "pct_cortos": 0.4346, "pct_headpass": 0.0362, "pct_largos": 0.1508, "pct_launch": 0.0581, "pct_layoff": 0.0114, "pct_medios": 0.3251, "pct_switch": 0.0044, "pct_through": 0.0026, "pct_verticales": 0.4396, "pelotazos_espalda": 0.0749, "press_final": 2.434, "press_media": 1.8098, "prog_x": 24.3783, "start_x": 41.5743, "starts_from_dispossess": 0.0428, "takeons_ok": 0.0608, "tempo": 0.3505, "transition_speed": 2.9031, "verticalidad_media": 0.293}, "Eupen": {"atk_l": 41.2861, "atk_w": 33.2173, "ball_distance": 143.9648, "behind_line_ok": 0.0603, "broke_last_line": 0.0322, "broke_second_last": 0.14, "cross_pvadded_max": 0.0054, "dang_runs": 0.1731, "deep_completions": 4.1136, "def_h": 33.6418, "dribbles_box": 0.069, "dribbles_last_third": 0.3257, "duration_s": 200.8216, "hold_max": 11.6946, "hold_mean": 5.6515, "hold_min": 3.3081, "line_breaks": 0.6267, "max_x": 65.5531, "n_centros": 1.0627, "n_events": 58.6838, "n_involved": 1.914, "n_passes": 34.4793, "opt_quality_mean": -0.0468, "paredes": 3.9103, "pass_options_mean": 8.661, "passes_behind_line": 0.1352, "pct_adentro": 0.5129, "pct_afuera": 0.4048, "pct_cortos": 0.3855, "pct_headpass": 0.0474, "pct_largos": 0.1885, "pct_launch": 0.0874, "pct_layoff": 0.013, "pct_medios": 0.3453, "pct_switch": 0.0034, "pct_through": 0.0026, "pct_verticales": 0.4774, "pelotazos_espalda": 0.0985, "press_final": 2.5297, "press_media": 1.8093, "prog_x": 26.4393, "start_x": 40.2952, "starts_from_dispossess": 0.0384, "takeons_ok": 0.287, "tempo": 0.3612, "transition_speed": 3.0764, "verticalidad_media": 0.3318}, "Francs Borains": {"atk_l": 41.514, "atk_w": 32.453, "ball_distance": 99.395, "behind_line_ok": 0.0491, "broke_last_line": 0.0293, "broke_second_last": 0.1348, "cross_pvadded_max": 0.0009, "dang_runs": 0.1231, "deep_completions": 0.3149, "def_h": 31.8689, "dribbles_box": 0.0068, "dribbles_last_third": 0.0436, "duration_s": 22.832, "hold_max": 8.9889, "hold_mean": 5.2805, "hold_min": 3.1411, "line_breaks": 0.512, "max_x": 67.4857, "n_centros": 0.1434, "n_events": 5.0785, "n_involved": 1.8496, "n_passes": 2.8164, "opt_quality_mean": 0.0405, "paredes": 0.2249, "pass_options_mean": 8.8496, "passes_behind_line": 0.1101, "pct_adentro": 0.5087, "pct_afuera": 0.3955, "pct_cortos": 0.4125, "pct_headpass": 0.0506, "pct_largos": 0.1864, "pct_launch": 0.091, "pct_layoff": 0.0119, "pct_medios": 0.306, "pct_switch": 0.0027, "pct_through": 0.0028, "pct_verticales": 0.4912, "pelotazos_espalda": 0.0777, "press_final": 2.4829, "press_media": 1.9075, "prog_x": 23.9258, "start_x": 44.6318, "starts_from_dispossess": 0.0488, "takeons_ok": 0.0428, "tempo": 0.3932, "transition_speed": 3.7052, "verticalidad_media": 0.3595}, "Genk II": {"atk_l": 43.4091, "atk_w": 33.2013, "ball_distance": 132.6249, "behind_line_ok": 0.0577, "broke_last_line": 0.0305, "broke_second_last": 0.1619, "cross_pvadded_max": 0.0013, "dang_runs": 0.1497, "deep_completions": 0.3047, "def_h": 33.6594, "dribbles_box": 0.0157, "dribbles_last_third": 0.0744, "duration_s": 32.5447, "hold_max": 10.0733, "hold_mean": 5.4793, "hold_min": 3.0274, "line_breaks": 0.5921, "max_x": 65.5494, "n_centros": 0.1036, "n_events": 6.1324, "n_involved": 1.8419, "n_passes": 3.3311, "opt_quality_mean": -0.0034, "paredes": 0.295, "pass_options_mean": 9.037, "passes_behind_line": 0.1225, "pct_adentro": 0.4893, "pct_afuera": 0.4155, "pct_cortos": 0.3732, "pct_headpass": 0.0311, "pct_largos": 0.1645, "pct_launch": 0.0679, "pct_layoff": 0.0099, "pct_medios": 0.368, "pct_switch": 0.0038, "pct_through": 0.0035, "pct_verticales": 0.4403, "pelotazos_espalda": 0.0862, "press_final": 2.6084, "press_media": 1.8353, "prog_x": 24.8843, "start_x": 41.9394, "starts_from_dispossess": 0.0473, "takeons_ok": 0.0746, "tempo": 0.3442, "transition_speed": 3.0561, "verticalidad_media": 0.2966}, "Gent II": {"atk_l": 41.7624, "atk_w": 32.2808, "ball_distance": 149.3387, "behind_line_ok": 0.0532, "broke_last_line": 0.035, "broke_second_last": 0.1945, "cross_pvadded_max": 0.0007, "dang_runs": 0.1451, "deep_completions": 0.3367, "def_h": 32.2867, "dribbles_box": 0.0089, "dribbles_last_third": 0.0544, "duration_s": 13.2771, "hold_max": 8.7088, "hold_mean": 4.8438, "hold_min": 2.6242, "line_breaks": 0.8061, "max_x": 66.1935, "n_centros": 0.0923, "n_events": 4.9849, "n_involved": 1.9343, "n_passes": 3.845, "opt_quality_mean": 0.0191, "paredes": 0.402, "pass_options_mean": 9.0581, "passes_behind_line": 0.1207, "pct_adentro": 0.5149, "pct_afuera": 0.3979, "pct_cortos": 0.4521, "pct_headpass": 0.031, "pct_largos": 0.1475, "pct_launch": 0.0635, "pct_layoff": 0.0118, "pct_medios": 0.3148, "pct_switch": 0.0045, "pct_through": 0.0025, "pct_verticales": 0.4174, "pelotazos_espalda": 0.0892, "press_final": 2.7271, "press_media": 2.0007, "prog_x": 22.855, "start_x": 44.6312, "starts_from_dispossess": 0.0481, "takeons_ok": 0.0507, "tempo": 0.3756, "transition_speed": 2.7206, "verticalidad_media": 0.2474}, "Kortrijk": {"atk_l": 43.5605, "atk_w": 33.7216, "ball_distance": 95.2631, "behind_line_ok": 0.0476, "broke_last_line": 0.0355, "broke_second_last": 0.1465, "cross_pvadded_max": 0.0014, "dang_runs": 0.1479, "deep_completions": 0.3544, "def_h": 30.4878, "dribbles_box": 0.0126, "dribbles_last_third": 0.058, "duration_s": 35.5824, "hold_max": 9.2574, "hold_mean": 5.5852, "hold_min": 3.3717, "line_breaks": 0.5453, "max_x": 68.8767, "n_centros": 0.1434, "n_events": 6.2775, "n_involved": 1.8281, "n_passes": 2.8543, "opt_quality_mean": 0.0733, "paredes": 0.2063, "pass_options_mean": 8.7037, "passes_behind_line": 0.1116, "pct_adentro": 0.54, "pct_afuera": 0.3711, "pct_cortos": 0.3921, "pct_headpass": 0.049, "pct_largos": 0.1961, "pct_launch": 0.0836, "pct_layoff": 0.0087, "pct_medios": 0.3241, "pct_switch": 0.006, "pct_through": 0.0038, "pct_verticales": 0.4743, "pelotazos_espalda": 0.0792, "press_final": 2.4428, "press_media": 1.8601, "prog_x": 23.2068, "start_x": 46.9456, "starts_from_dispossess": 0.0473, "takeons_ok": 0.0503, "tempo": 0.3756, "transition_speed": 3.5697, "verticalidad_media": 0.3395}, "Lierse SK": {"atk_l": 42.1223, "atk_w": 32.8715, "ball_distance": 97.8209, "behind_line_ok": 0.0481, "broke_last_line": 0.0259, "broke_second_last": 0.1459, "cross_pvadded_max": 0.0013, "dang_runs": 0.1267, "deep_completions": 0.3098, "def_h": 31.8162, "dribbles_box": 0.0098, "dribbles_last_third": 0.0637, "duration_s": 33.9616, "hold_max": 10.3114, "hold_mean": 5.938, "hold_min": 3.4401, "line_breaks": 0.4807, "max_x": 66.8774, "n_centros": 0.1211, "n_events": 6.1301, "n_involved": 1.8072, "n_passes": 2.9127, "opt_quality_mean": 0.004, "paredes": 0.2363, "pass_options_mean": 8.1575, "passes_behind_line": 0.1095, "pct_adentro": 0.527, "pct_afuera": 0.3893, "pct_cortos": 0.3835, "pct_headpass": 0.0539, "pct_largos": 0.1943, "pct_launch": 0.0848, "pct_layoff": 0.0109, "pct_medios": 0.3391, "pct_switch": 0.003, "pct_through": 0.0024, "pct_verticales": 0.4971, "pelotazos_espalda": 0.0791, "press_final": 2.3644, "press_media": 1.7755, "prog_x": 24.5163, "start_x": 43.2991, "starts_from_dispossess": 0.0436, "takeons_ok": 0.0481, "tempo": 0.3822, "transition_speed": 3.8771, "verticalidad_media": 0.3607}, "Liège": {"atk_l": 44.2965, "atk_w": 34.1653, "ball_distance": 119.7471, "behind_line_ok": 0.0513, "broke_last_line": 0.0343, "broke_second_last": 0.1416, "cross_pvadded_max": 0.0046, "dang_runs": 0.17, "deep_completions": 3.7874, "def_h": 31.9325, "dribbles_box": 0.1921, "dribbles_last_third": 0.933, "duration_s": 196.089, "hold_max": 11.1615, "hold_mean": 5.4194, "hold_min": 3.0601, "line_breaks": 0.5182, "max_x": 69.4685, "n_centros": 1.4151, "n_events": 61.8827, "n_involved": 1.8517, "n_passes": 33.2507, "opt_quality_mean": 0.018, "paredes": 3.5776, "pass_options_mean": 8.443, "passes_behind_line": 0.1223, "pct_adentro": 0.5067, "pct_afuera": 0.4052, "pct_cortos": 0.3932, "pct_headpass": 0.0462, "pct_largos": 0.2032, "pct_launch": 0.0806, "pct_layoff": 0.0104, "pct_medios": 0.3167, "pct_switch": 0.0068, "pct_through": 0.0022, "pct_verticales": 0.4753, "pelotazos_espalda": 0.0963, "press_final": 2.2958, "press_media": 1.6661, "prog_x": 28.5441, "start_x": 41.837, "starts_from_dispossess": 0.036, "takeons_ok": 0.5617, "tempo": 0.3793, "transition_speed": 3.8322, "verticalidad_media": 0.3432}, "Lokeren": {"atk_l": 41.6753, "atk_w": 32.9383, "ball_distance": 114.6654, "behind_line_ok": 0.0519, "broke_last_line": 0.0378, "broke_second_last": 0.1478, "cross_pvadded_max": 0.0012, "dang_runs": 0.1852, "deep_completions": 0.3777, "def_h": 30.3535, "dribbles_box": 0.0101, "dribbles_last_third": 0.0549, "duration_s": 27.2507, "hold_max": 9.9458, "hold_mean": 5.8119, "hold_min": 3.4874, "line_breaks": 0.4988, "max_x": 69.1177, "n_centros": 0.1448, "n_events": 5.4704, "n_involved": 1.8222, "n_passes": 3.0185, "opt_quality_mean": 0.1096, "paredes": 0.2751, "pass_options_mean": 9.0033, "passes_behind_line": 0.1122, "pct_adentro": 0.5227, "pct_afuera": 0.3866, "pct_cortos": 0.3817, "pct_headpass": 0.0396, "pct_largos": 0.1826, "pct_launch": 0.0863, "pct_layoff": 0.009, "pct_medios": 0.346, "pct_switch": 0.0045, "pct_through": 0.002, "pct_verticales": 0.4616, "pelotazos_espalda": 0.078, "press_final": 2.446, "press_media": 1.8837, "prog_x": 23.6324, "start_x": 46.7383, "starts_from_dispossess": 0.0442, "takeons_ok": 0.0349, "tempo": 0.3666, "transition_speed": 3.1511, "verticalidad_media": 0.3215}, "Lommel": {"atk_l": 40.4236, "atk_w": 32.9588, "ball_distance": 145.5206, "behind_line_ok": 0.069, "broke_last_line": 0.0333, "broke_second_last": 0.1828, "cross_pvadded_max": 0.0012, "dang_runs": 0.1753, "deep_completions": 0.4156, "def_h": 31.2309, "dribbles_box": 0.0113, "dribbles_last_third": 0.0564, "duration_s": 50.0875, "hold_max": 27.1252, "hold_mean": 5.339, "hold_min": 3.1094, "line_breaks": 0.7645, "max_x": 69.0498, "n_centros": 0.1305, "n_events": 6.4798, "n_involved": 2.0312, "n_passes": 3.6517, "opt_quality_mean": 0.0406, "paredes": 0.3232, "pass_options_mean": 8.2109, "passes_behind_line": 0.1479, "pct_adentro": 0.5191, "pct_afuera": 0.4043, "pct_cortos": 0.4003, "pct_headpass": 0.0485, "pct_largos": 0.1814, "pct_launch": 0.0717, "pct_layoff": 0.0133, "pct_medios": 0.3426, "pct_switch": 0.0045, "pct_through": 0.0017, "pct_verticales": 0.4706, "pelotazos_espalda": 0.1014, "press_final": 2.3953, "press_media": 1.7672, "prog_x": 25.1036, "start_x": 45.3203, "starts_from_dispossess": 0.046, "takeons_ok": 0.0456, "tempo": 0.3966, "transition_speed": 3.4375, "verticalidad_media": 0.313}, "Olympic Charleroi": {"atk_l": 43.3373, "atk_w": 32.8301, "ball_distance": 117.0654, "behind_line_ok": 0.0482, "broke_last_line": 0.02, "broke_second_last": 0.14, "cross_pvadded_max": 0.0009, "dang_runs": 0.1221, "deep_completions": 0.2858, "def_h": 32.3939, "dribbles_box": 0.0081, "dribbles_last_third": 0.0492, "duration_s": 34.4007, "hold_max": 9.7202, "hold_mean": 5.6716, "hold_min": 3.388, "line_breaks": 0.5785, "max_x": 66.2159, "n_centros": 0.1223, "n_events": 6.233, "n_involved": 1.837, "n_passes": 3.0139, "opt_quality_mean": -0.0241, "paredes": 0.2505, "pass_options_mean": 8.7328, "passes_behind_line": 0.1256, "pct_adentro": 0.5084, "pct_afuera": 0.4043, "pct_cortos": 0.4054, "pct_headpass": 0.0474, "pct_largos": 0.2089, "pct_launch": 0.0973, "pct_layoff": 0.0152, "pct_medios": 0.2994, "pct_switch": 0.0059, "pct_through": 0.0014, "pct_verticales": 0.4963, "pelotazos_espalda": 0.0964, "press_final": 2.3912, "press_media": 1.7622, "prog_x": 24.3065, "start_x": 42.942, "starts_from_dispossess": 0.0408, "takeons_ok": 0.0476, "tempo": 0.3739, "transition_speed": 3.4394, "verticalidad_media": 0.3514}, "Patro Eisden": {"atk_l": 40.7889, "atk_w": 31.0971, "ball_distance": 69.4859, "behind_line_ok": 0.0522, "broke_last_line": 0.019, "broke_second_last": 0.1131, "cross_pvadded_max": 0.0018, "dang_runs": 0.0696, "deep_completions": 0.2626, "def_h": 29.1936, "dribbles_box": 0.0132, "dribbles_last_third": 0.0613, "duration_s": 15.0711, "hold_max": 10.6945, "hold_mean": 7.2828, "hold_min": 5.0543, "line_breaks": 0.2825, "max_x": 70.1495, "n_centros": 0.119, "n_events": 3.7661, "n_involved": 1.5966, "n_passes": 1.9794, "opt_quality_mean": 0.1028, "paredes": 0.1008, "pass_options_mean": 8.4335, "passes_behind_line": 0.1436, "pct_adentro": 0.5086, "pct_afuera": 0.3836, "pct_cortos": 0.286, "pct_headpass": 0.0647, "pct_largos": 0.2893, "pct_launch": 0.1263, "pct_layoff": 0.0069, "pct_medios": 0.3176, "pct_switch": 0.0099, "pct_through": 0.0011, "pct_verticales": 0.5376, "pelotazos_espalda": 0.1189, "press_final": 2.5623, "press_media": 1.7991, "prog_x": 25.5681, "start_x": 46.1599, "starts_from_dispossess": 0.0434, "takeons_ok": 0.0381, "tempo": 0.3051, "transition_speed": 3.8294, "verticalidad_media": 0.4438}, "RWDM Brussels": {"atk_l": 44.5889, "atk_w": 32.7814, "ball_distance": 126.3501, "behind_line_ok": 0.0557, "broke_last_line": 0.0334, "broke_second_last": 0.1499, "cross_pvadded_max": 0.0108, "dang_runs": 0.1531, "deep_completions": 3.2993, "def_h": 33.9682, "dribbles_box": 0.2305, "dribbles_last_third": 0.9096, "duration_s": 208.0172, "hold_max": 12.2753, "hold_mean": 5.3627, "hold_min": 2.9605, "line_breaks": 0.6851, "max_x": 65.5213, "n_centros": 1.1851, "n_events": 60.7024, "n_involved": 1.8167, "n_passes": 32.9945, "opt_quality_mean": -0.039, "paredes": 2.7825, "pass_options_mean": 8.6849, "passes_behind_line": 0.1248, "pct_adentro": 0.4861, "pct_afuera": 0.4266, "pct_cortos": 0.4077, "pct_headpass": 0.0337, "pct_largos": 0.1904, "pct_launch": 0.0928, "pct_layoff": 0.0106, "pct_medios": 0.3157, "pct_switch": 0.0064, "pct_through": 0.0029, "pct_verticales": 0.4534, "pelotazos_espalda": 0.0945, "press_final": 2.4507, "press_media": 1.7771, "prog_x": 27.0312, "start_x": 39.9094, "starts_from_dispossess": 0.0442, "takeons_ok": 0.8729, "tempo": 0.3455, "transition_speed": 3.1456, "verticalidad_media": 0.2988}, "Seraing": {"atk_l": 42.2413, "atk_w": 32.7421, "ball_distance": 98.6247, "behind_line_ok": 0.0606, "broke_last_line": 0.0223, "broke_second_last": 0.1165, "cross_pvadded_max": 0.0009, "dang_runs": 0.1247, "deep_completions": 0.2551, "def_h": 32.4281, "dribbles_box": 0.0112, "dribbles_last_third": 0.061, "duration_s": 19.018, "hold_max": 9.7375, "hold_mean": 6.1973, "hold_min": 4.0815, "line_breaks": 0.4699, "max_x": 67.664, "n_centros": 0.1124, "n_events": 4.4732, "n_involved": 1.7262, "n_passes": 2.4728, "opt_quality_mean": -0.0353, "paredes": 0.1765, "pass_options_mean": 8.8384, "passes_behind_line": 0.1774, "pct_adentro": 0.492, "pct_afuera": 0.4009, "pct_cortos": 0.2993, "pct_headpass": 0.0406, "pct_largos": 0.2587, "pct_launch": 0.1084, "pct_layoff": 0.0078, "pct_medios": 0.3354, "pct_switch": 0.0043, "pct_through": 0.0015, "pct_verticales": 0.5002, "pelotazos_espalda": 0.148, "press_final": 2.5008, "press_media": 1.812, "prog_x": 26.6399, "start_x": 42.569, "starts_from_dispossess": 0.051, "takeons_ok": 0.0493, "tempo": 0.3332, "transition_speed": 3.7335, "verticalidad_media": 0.3755}}, "team_eje_norm_gen": {"Anderlecht II": {"eje_verticalidad": -0.0891, "eje_elaboracion": -0.0068, "eje_individual": -0.0012, "eje_rotura_lineas": 0.0093, "eje_amplitud_centro": -0.0126, "eje_profundidad_espalda": -0.0522, "eje_robo_alto": -0.0156, "eje_aereo_segunda": -0.0589}, "Beerschot": {"eje_verticalidad": -0.0817, "eje_elaboracion": 0.0326, "eje_individual": 0.0132, "eje_rotura_lineas": 0.0288, "eje_amplitud_centro": 0.0002, "eje_profundidad_espalda": 0.0344, "eje_robo_alto": 0.0557, "eje_aereo_segunda": -0.0171}, "Beveren": {"eje_verticalidad": -0.0555, "eje_elaboracion": 0.0191, "eje_individual": -0.0083, "eje_rotura_lineas": 0.0497, "eje_amplitud_centro": 0.0332, "eje_profundidad_espalda": 0.0811, "eje_robo_alto": 0.0657, "eje_aereo_segunda": 0.0127}, "Club Brugge II": {"eje_verticalidad": -0.1206, "eje_elaboracion": 0.084, "eje_individual": 0.0231, "eje_rotura_lineas": 0.0204, "eje_amplitud_centro": -0.0221, "eje_profundidad_espalda": -0.0291, "eje_robo_alto": -0.0589, "eje_aereo_segunda": -0.0481}, "Eupen": {"eje_verticalidad": -0.0335, "eje_elaboracion": 2.216, "eje_individual": 0.6012, "eje_rotura_lineas": -0.0018, "eje_amplitud_centro": 0.776, "eje_profundidad_espalda": 0.9321, "eje_robo_alto": -0.0932, "eje_aereo_segunda": 0.0254}, "Francs Borains": {"eje_verticalidad": 0.0105, "eje_elaboracion": -0.0109, "eje_individual": -0.036, "eje_rotura_lineas": -0.0207, "eje_amplitud_centro": -0.0013, "eje_profundidad_espalda": -0.0402, "eje_robo_alto": 0.0124, "eje_aereo_segunda": 0.0304}, "Genk II": {"eje_verticalidad": -0.1028, "eje_elaboracion": 0.0059, "eje_individual": 0.0494, "eje_rotura_lineas": 0.0121, "eje_amplitud_centro": -0.0081, "eje_profundidad_espalda": -0.0177, "eje_robo_alto": -0.0411, "eje_aereo_segunda": -0.0545}, "Gent II": {"eje_verticalidad": -0.1686, "eje_elaboracion": 0.0954, "eje_individual": -0.0078, "eje_rotura_lineas": 0.0563, "eje_amplitud_centro": -0.0295, "eje_profundidad_espalda": -0.0133, "eje_robo_alto": 0.0107, "eje_aereo_segunda": -0.0495}, "Kortrijk": {"eje_verticalidad": -0.0064, "eje_elaboracion": -0.0211, "eje_individual": 0.0038, "eje_rotura_lineas": 0.0057, "eje_amplitud_centro": -0.0025, "eje_profundidad_espalda": -0.0298, "eje_robo_alto": 0.0518, "eje_aereo_segunda": -0.002}, "Lierse SK": {"eje_verticalidad": 0.0311, "eje_elaboracion": -0.0175, "eje_individual": -0.0057, "eje_rotura_lineas": -0.0239, "eje_amplitud_centro": -0.0235, "eje_profundidad_espalda": -0.0417, "eje_robo_alto": -0.0249, "eje_aereo_segunda": 0.0227}, "Liège": {"eje_verticalidad": 0.0112, "eje_elaboracion": 2.0841, "eje_individual": 1.6722, "eje_rotura_lineas": -0.0124, "eje_amplitud_centro": 1.0921, "eje_profundidad_espalda": 0.8321, "eje_robo_alto": -0.0705, "eje_aereo_segunda": -0.0018}, "Lokeren": {"eje_verticalidad": -0.0535, "eje_elaboracion": -0.0081, "eje_individual": -0.0086, "eje_rotura_lineas": -0.0069, "eje_amplitud_centro": 0.0036, "eje_profundidad_espalda": -0.0203, "eje_robo_alto": 0.0404, "eje_aereo_segunda": -0.0168}, "Lommel": {"eje_verticalidad": -0.0372, "eje_elaboracion": 0.053, "eje_individual": 0.0029, "eje_rotura_lineas": 0.0368, "eje_amplitud_centro": 0.0085, "eje_profundidad_espalda": 0.052, "eje_robo_alto": 0.0184, "eje_aereo_segunda": 0.0076}, "Olympic Charleroi": {"eje_verticalidad": 0.0175, "eje_elaboracion": 0.0049, "eje_individual": -0.0238, "eje_rotura_lineas": -0.0316, "eje_amplitud_centro": 0.0106, "eje_profundidad_espalda": -0.0213, "eje_robo_alto": -0.0382, "eje_aereo_segunda": 0.0514}, "Patro Eisden": {"eje_verticalidad": 0.1667, "eje_elaboracion": -0.1636, "eje_individual": -0.0263, "eje_rotura_lineas": -0.0846, "eje_amplitud_centro": 0.0149, "eje_profundidad_espalda": 0.0091, "eje_robo_alto": 0.0278, "eje_aereo_segunda": 0.0788}, "RWDM Brussels": {"eje_verticalidad": -0.0653, "eje_elaboracion": 1.8768, "eje_individual": 2.0355, "eje_rotura_lineas": 0.0143, "eje_amplitud_centro": 0.9189, "eje_profundidad_espalda": 0.7181, "eje_robo_alto": -0.0862, "eje_aereo_segunda": -0.0109}, "Seraing": {"eje_verticalidad": 0.0774, "eje_elaboracion": -0.1142, "eje_individual": -0.0042, "eje_rotura_lineas": -0.0548, "eje_amplitud_centro": -0.0113, "eje_profundidad_espalda": 0.0648, "eje_robo_alto": -0.0204, "eje_aereo_segunda": 0.0081}}, "team_eje_norm_con": {"Anderlecht II": {"eje_verticalidad": -0.012, "eje_elaboracion": -0.0183, "eje_individual": 0.0076, "eje_rotura_lineas": -0.0111, "eje_amplitud_centro": 0.002, "eje_profundidad_espalda": -0.014, "eje_robo_alto": 0.0142, "eje_aereo_segunda": -0.012}, "Beerschot": {"eje_verticalidad": 0.0139, "eje_elaboracion": -0.0249, "eje_individual": -0.0317, "eje_rotura_lineas": -0.0235, "eje_amplitud_centro": -0.0137, "eje_profundidad_espalda": -0.0207, "eje_robo_alto": -0.045, "eje_aereo_segunda": 0.0081}, "Beveren": {"eje_verticalidad": 0.0191, "eje_elaboracion": 2.1284, "eje_individual": 1.6812, "eje_rotura_lineas": -0.0299, "eje_amplitud_centro": 1.0614, "eje_profundidad_espalda": 0.785, "eje_robo_alto": -0.1204, "eje_aereo_segunda": 0.0316}, "Club Brugge II": {"eje_verticalidad": -0.0461, "eje_elaboracion": -0.0182, "eje_individual": -0.0177, "eje_rotura_lineas": -0.0067, "eje_amplitud_centro": -0.0087, "eje_profundidad_espalda": 0.0107, "eje_robo_alto": 0.0328, "eje_aereo_segunda": 0.0001}, "Eupen": {"eje_verticalidad": -0.0577, "eje_elaboracion": 0.0046, "eje_individual": -0.0148, "eje_rotura_lineas": 0.0069, "eje_amplitud_centro": 0.0046, "eje_profundidad_espalda": 0.0267, "eje_robo_alto": 0.0534, "eje_aereo_segunda": -0.0182}, "Francs Borains": {"eje_verticalidad": -0.0058, "eje_elaboracion": -0.0011, "eje_individual": 0.0042, "eje_rotura_lineas": -0.0137, "eje_amplitud_centro": -0.0117, "eje_profundidad_espalda": -0.0029, "eje_robo_alto": -0.0007, "eje_aereo_segunda": 0.0064}, "Genk II": {"eje_verticalidad": -0.0647, "eje_elaboracion": 0.0407, "eje_individual": -0.0086, "eje_rotura_lineas": 0.0473, "eje_amplitud_centro": -0.0031, "eje_profundidad_espalda": 0.0743, "eje_robo_alto": 0.0387, "eje_aereo_segunda": -0.0348}, "Gent II": {"eje_verticalidad": -0.0189, "eje_elaboracion": -0.0131, "eje_individual": -0.0016, "eje_rotura_lineas": 0.0035, "eje_amplitud_centro": 0.0089, "eje_profundidad_espalda": -0.015, "eje_robo_alto": 0.0033, "eje_aereo_segunda": 0.0253}, "Kortrijk": {"eje_verticalidad": -0.0141, "eje_elaboracion": 1.8951, "eje_individual": 2.0863, "eje_rotura_lineas": -0.0483, "eje_amplitud_centro": 0.9248, "eje_profundidad_espalda": 0.6927, "eje_robo_alto": -0.0624, "eje_aereo_segunda": 0.0225}, "Lierse SK": {"eje_verticalidad": -0.0249, "eje_elaboracion": -0.0226, "eje_individual": -0.0147, "eje_rotura_lineas": -0.0182, "eje_amplitud_centro": 0.0031, "eje_profundidad_espalda": -0.025, "eje_robo_alto": 0.028, "eje_aereo_segunda": -0.0125}, "Liège": {"eje_verticalidad": -0.0499, "eje_elaboracion": 2.1574, "eje_individual": 0.6529, "eje_rotura_lineas": 0.0207, "eje_amplitud_centro": 0.7732, "eje_profundidad_espalda": 0.8994, "eje_robo_alto": -0.0266, "eje_aereo_segunda": 0.004}, "Lokeren": {"eje_verticalidad": -0.0021, "eje_elaboracion": -0.0192, "eje_individual": 0.0122, "eje_rotura_lineas": -0.0165, "eje_amplitud_centro": 0.0142, "eje_profundidad_espalda": -0.0082, "eje_robo_alto": -0.0098, "eje_aereo_segunda": 0.0128}, "Lommel": {"eje_verticalidad": -0.032, "eje_elaboracion": 0.0017, "eje_individual": 0.0122, "eje_rotura_lineas": 0.0209, "eje_amplitud_centro": 0.034, "eje_profundidad_espalda": 0.003, "eje_robo_alto": -0.0247, "eje_aereo_segunda": -0.0197}, "Olympic Charleroi": {"eje_verticalidad": -0.046, "eje_elaboracion": 0.0036, "eje_individual": 0.0143, "eje_rotura_lineas": 0.0238, "eje_amplitud_centro": -0.0062, "eje_profundidad_espalda": 0.0236, "eje_robo_alto": 0.0112, "eje_aereo_segunda": -0.0166}, "Patro Eisden": {"eje_verticalidad": -0.0303, "eje_elaboracion": 0.0282, "eje_individual": 0.0009, "eje_rotura_lineas": 0.0022, "eje_amplitud_centro": -0.0101, "eje_profundidad_espalda": 0.0313, "eje_robo_alto": -0.068, "eje_aereo_segunda": 0.0181}, "RWDM Brussels": {"eje_verticalidad": -0.0824, "eje_elaboracion": 0.0241, "eje_individual": 0.0172, "eje_rotura_lineas": 0.0099, "eje_amplitud_centro": 0.0136, "eje_profundidad_espalda": 0.0045, "eje_robo_alto": 0.0384, "eje_aereo_segunda": -0.032}, "Seraing": {"eje_verticalidad": -0.051, "eje_elaboracion": 0.0274, "eje_individual": -0.0209, "eje_rotura_lineas": 0.0314, "eje_amplitud_centro": 0.0003, "eje_profundidad_espalda": 0.0227, "eje_robo_alto": -0.01, "eje_aereo_segunda": -0.0033}}}
|
vendor/data/ejes/belgian-challenger-pro-league/25-26/team_profiles.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c96ca30896feb447836dc4476899dc2bea156cc6c8265dd5327f8a205202ea56
|
| 3 |
+
size 9409
|
vendor/data/ejes/brack-super-league/25-26/ejes_definition.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
|
vendor/data/ejes/brack-super-league/25-26/match_team_ejes.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9694803e00fc1e1be9a89f103e5d7eff4d3e958e29ec964ac58d307bfc5c310b
|
| 3 |
+
size 56973
|
vendor/data/ejes/brack-super-league/25-26/match_team_vars.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5049cc2b4c6306d07c867da81e703879a02a8108c04d1ffc088810740e64d69f
|
| 3 |
+
size 214947
|
vendor/data/ejes/brack-super-league/25-26/predictor.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": {"gen": 1.0206, "con": 1.0026, "intercept": 0.0362}, "elaboracion": {"gen": 1.0267, "con": 1.0234, "intercept": -0.0076}, "individual": {"gen": 0.7772, "con": 0.7108, "intercept": -0.0006}, "rotura_lineas": {"gen": 0.9583, "con": 0.8562, "intercept": -0.0022}, "amplitud_centro": {"gen": 0.9513, "con": 0.7053, "intercept": -0.0014}, "profundidad_espalda": {"gen": 0.7497, "con": -0.2288, "intercept": 0.0007}, "robo_alto": {"gen": 0.7979, "con": 0.8299, "intercept": 0.0017}, "aereo_segunda": {"gen": 1.0202, "con": 1.0162, "intercept": 0.0038}}
|
vendor/data/ejes/brack-super-league/25-26/scales.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"var_sigma": {"atk_l": 2.0642, "atk_w": 1.3481, "ball_distance": 40.9674, "behind_line_ok": 0.0221, "broke_last_line": 0.017, "broke_second_last": 0.0418, "cross_pvadded_max": 0.0016, "dang_runs": 0.0904, "deep_completions": 0.1071, "def_h": 2.6611, "dribbles_box": 0.0101, "dribbles_last_third": 0.0257, "duration_s": 19.0334, "hold_max": 1.8121, "hold_mean": 0.8577, "hold_min": 0.8283, "line_breaks": 0.2163, "max_x": 3.572, "n_centros": 0.0425, "n_events": 1.7417, "n_involved": 0.1569, "n_passes": 0.5156, "opt_quality_mean": 0.126, "paredes": 0.0909, "pass_options_mean": 1.1759, "passes_behind_line": 0.033, "pct_adentro": 0.0332, "pct_afuera": 0.032, "pct_cortos": 0.0459, "pct_headpass": 0.0153, "pct_largos": 0.0441, "pct_launch": 0.0366, "pct_layoff": 0.0055, "pct_medios": 0.0426, "pct_switch": 0.0042, "pct_through": 0.0033, "pct_verticales": 0.0508, "pelotazos_espalda": 0.0273, "press_final": 0.3012, "press_media": 0.1654, "prog_x": 2.2192, "start_x": 4.2262, "starts_from_dispossess": 0.0169, "takeons_ok": 0.0212, "tempo": 0.0367, "transition_speed": 0.6634, "verticalidad_media": 0.0614}, "eje_sigma": {"eje_verticalidad": 0.107, "eje_elaboracion": 0.0929, "eje_individual": 0.0648, "eje_rotura_lineas": 0.062, "eje_amplitud_centro": 0.051, "eje_profundidad_espalda": 0.0755, "eje_robo_alto": 0.0872, "eje_aereo_segunda": 0.0692}, "eje_match_mean": {"eje_verticalidad": -0.0354, "eje_elaboracion": 0.0072, "eje_individual": 0.0013, "eje_rotura_lineas": 0.0027, "eje_amplitud_centro": 0.0021, "eje_profundidad_espalda": 0.0014, "eje_robo_alto": -0.0027, "eje_aereo_segunda": -0.0037}, "eje_match_std": {"eje_verticalidad": 0.1361, "eje_elaboracion": 0.1226, "eje_individual": 0.0687, "eje_rotura_lineas": 0.0704, "eje_amplitud_centro": 0.0591, "eje_profundidad_espalda": 0.0796, "eje_robo_alto": 0.0941, "eje_aereo_segunda": 0.0794}, "team_var_norm": {"Basel": {"atk_l": 42.258, "atk_w": 33.4803, "ball_distance": 127.7972, "behind_line_ok": 0.0523, "broke_last_line": 0.0282, "broke_second_last": 0.1778, "cross_pvadded_max": 0.0016, "dang_runs": 0.1629, "deep_completions": 0.4001, "def_h": 30.9579, "dribbles_box": 0.0101, "dribbles_last_third": 0.0545, "duration_s": 22.8874, "hold_max": 10.2808, "hold_mean": 5.5909, "hold_min": 3.2931, "line_breaks": 0.7564, "max_x": 68.012, "n_centros": 0.1375, "n_events": 5.4097, "n_involved": 1.9312, "n_passes": 3.2461, "opt_quality_mean": 0.0657, "paredes": 0.2622, "pass_options_mean": 8.9557, "passes_behind_line": 0.1069, "pct_adentro": 0.5183, "pct_afuera": 0.399, "pct_cortos": 0.4055, "pct_headpass": 0.0397, "pct_largos": 0.1626, "pct_launch": 0.0598, "pct_layoff": 0.0113, "pct_medios": 0.3504, "pct_switch": 0.005, "pct_through": 0.0022, "pct_verticales": 0.4509, "pelotazos_espalda": 0.0698, "press_final": 2.5701, "press_media": 1.9258, "prog_x": 23.9828, "start_x": 45.2871, "starts_from_dispossess": 0.0391, "takeons_ok": 0.0534, "tempo": 0.3838, "transition_speed": 3.2631, "verticalidad_media": 0.315}, "Grasshoppers": {"atk_l": 37.7086, "atk_w": 31.0446, "ball_distance": 69.3553, "behind_line_ok": 0.0396, "broke_last_line": 0.0174, "broke_second_last": 0.1545, "cross_pvadded_max": 0.0009, "dang_runs": 0.0896, "deep_completions": 0.2503, "def_h": 31.6653, "dribbles_box": 0.0115, "dribbles_last_third": 0.0613, "duration_s": 23.4133, "hold_max": 9.2896, "hold_mean": 5.7543, "hold_min": 3.5208, "line_breaks": 0.3832, "max_x": 67.6675, "n_centros": 0.103, "n_events": 4.8571, "n_involved": 1.7285, "n_passes": 2.3021, "opt_quality_mean": -0.0253, "paredes": 0.1286, "pass_options_mean": 8.5867, "passes_behind_line": 0.1167, "pct_adentro": 0.5231, "pct_afuera": 0.387, "pct_cortos": 0.3621, "pct_headpass": 0.0524, "pct_largos": 0.2287, "pct_launch": 0.1331, "pct_layoff": 0.0123, "pct_medios": 0.3204, "pct_switch": 0.0025, "pct_through": 0.0022, "pct_verticales": 0.5591, "pelotazos_espalda": 0.0881, "press_final": 2.8495, "press_media": 2.0158, "prog_x": 24.764, "start_x": 44.257, "starts_from_dispossess": 0.0451, "takeons_ok": 0.0443, "tempo": 0.3914, "transition_speed": 4.2343, "verticalidad_media": 0.4435}, "Lausanne-Sport": {"atk_l": 38.8278, "atk_w": 32.6399, "ball_distance": 91.5638, "behind_line_ok": 0.0506, "broke_last_line": 0.0278, "broke_second_last": 0.1602, "cross_pvadded_max": 0.0006, "dang_runs": 0.1137, "deep_completions": 0.3493, "def_h": 30.7873, "dribbles_box": 0.0162, "dribbles_last_third": 0.0739, "duration_s": 26.6981, "hold_max": 9.1563, "hold_mean": 5.3985, "hold_min": 3.2764, "line_breaks": 0.5083, "max_x": 68.5327, "n_centros": 0.1068, "n_events": 5.4702, "n_involved": 1.8314, "n_passes": 2.7939, "opt_quality_mean": 0.0208, "paredes": 0.2351, "pass_options_mean": 8.9163, "passes_behind_line": 0.1222, "pct_adentro": 0.5076, "pct_afuera": 0.4013, "pct_cortos": 0.4101, "pct_headpass": 0.0462, "pct_largos": 0.1997, "pct_launch": 0.0839, "pct_layoff": 0.0128, "pct_medios": 0.3, "pct_switch": 0.005, "pct_through": 0.0026, "pct_verticales": 0.5031, "pelotazos_espalda": 0.0842, "press_final": 2.6922, "press_media": 1.9663, "prog_x": 24.6712, "start_x": 45.2118, "starts_from_dispossess": 0.0499, "takeons_ok": 0.0592, "tempo": 0.3938, "transition_speed": 3.6844, "verticalidad_media": 0.3755}, "Lugano": {"atk_l": 44.0516, "atk_w": 34.0, "ball_distance": 178.7105, "behind_line_ok": 0.0548, "broke_last_line": 0.0295, "broke_second_last": 0.1744, "cross_pvadded_max": 0.0018, "dang_runs": 0.2261, "deep_completions": 0.3556, "def_h": 33.7349, "dribbles_box": 0.01, "dribbles_last_third": 0.0543, "duration_s": 30.8973, "hold_max": 10.6258, "hold_mean": 5.6272, "hold_min": 3.0464, "line_breaks": 0.9145, "max_x": 65.5655, "n_centros": 0.1274, "n_events": 6.3272, "n_involved": 2.063, "n_passes": 3.7795, "opt_quality_mean": -0.0294, "paredes": 0.3574, "pass_options_mean": 9.1374, "passes_behind_line": 0.1254, "pct_adentro": 0.4991, "pct_afuera": 0.4189, "pct_cortos": 0.3939, "pct_headpass": 0.0467, "pct_largos": 0.1882, "pct_launch": 0.0657, "pct_layoff": 0.0136, "pct_medios": 0.3367, "pct_switch": 0.0073, "pct_through": 0.0018, "pct_verticales": 0.4515, "pelotazos_espalda": 0.0917, "press_final": 2.4642, "press_media": 1.8049, "prog_x": 25.5635, "start_x": 40.9438, "starts_from_dispossess": 0.0422, "takeons_ok": 0.0456, "tempo": 0.3945, "transition_speed": 3.3062, "verticalidad_media": 0.2846}, "Luzern": {"atk_l": 41.0489, "atk_w": 33.9607, "ball_distance": 115.2857, "behind_line_ok": 0.0556, "broke_last_line": 0.0385, "broke_second_last": 0.1568, "cross_pvadded_max": 0.0018, "dang_runs": 0.1661, "deep_completions": 0.3965, "def_h": 30.8324, "dribbles_box": 0.0142, "dribbles_last_third": 0.0624, "duration_s": 30.7545, "hold_max": 10.566, "hold_mean": 5.585, "hold_min": 3.1367, "line_breaks": 0.5346, "max_x": 69.0115, "n_centros": 0.1325, "n_events": 5.8825, "n_involved": 1.8058, "n_passes": 2.9752, "opt_quality_mean": 0.0584, "paredes": 0.2582, "pass_options_mean": 9.0343, "passes_behind_line": 0.124, "pct_adentro": 0.509, "pct_afuera": 0.3971, "pct_cortos": 0.3683, "pct_headpass": 0.0422, "pct_largos": 0.2016, "pct_launch": 0.0892, "pct_layoff": 0.0103, "pct_medios": 0.3371, "pct_switch": 0.0054, "pct_through": 0.0024, "pct_verticales": 0.4717, "pelotazos_espalda": 0.0871, "press_final": 2.4714, "press_media": 1.8438, "prog_x": 25.6722, "start_x": 44.6815, "starts_from_dispossess": 0.049, "takeons_ok": 0.0516, "tempo": 0.3791, "transition_speed": 3.4946, "verticalidad_media": 0.3363}, "Servette": {"atk_l": 40.2602, "atk_w": 32.3993, "ball_distance": 118.3388, "behind_line_ok": 0.0475, "broke_last_line": 0.036, "broke_second_last": 0.1633, "cross_pvadded_max": 0.002, "dang_runs": 0.1297, "deep_completions": 0.4005, "def_h": 31.2757, "dribbles_box": 0.0136, "dribbles_last_third": 0.0643, "duration_s": 30.9129, "hold_max": 9.8099, "hold_mean": 5.3569, "hold_min": 3.1321, "line_breaks": 0.6423, "max_x": 68.2627, "n_centros": 0.1576, "n_events": 6.02, "n_involved": 1.8827, "n_passes": 3.1736, "opt_quality_mean": 0.0516, "paredes": 0.2862, "pass_options_mean": 8.8523, "passes_behind_line": 0.1091, "pct_adentro": 0.5108, "pct_afuera": 0.4066, "pct_cortos": 0.4008, "pct_headpass": 0.0523, "pct_largos": 0.1842, "pct_launch": 0.081, "pct_layoff": 0.01, "pct_medios": 0.3337, "pct_switch": 0.0041, "pct_through": 0.0022, "pct_verticales": 0.4841, "pelotazos_espalda": 0.0738, "press_final": 2.5267, "press_media": 1.9451, "prog_x": 24.3002, "start_x": 44.9372, "starts_from_dispossess": 0.0495, "takeons_ok": 0.0554, "tempo": 0.3778, "transition_speed": 3.2156, "verticalidad_media": 0.3457}, "Sion": {"atk_l": 41.3183, "atk_w": 33.8306, "ball_distance": 127.156, "behind_line_ok": 0.0558, "broke_last_line": 0.0333, "broke_second_last": 0.1746, "cross_pvadded_max": 0.0016, "dang_runs": 0.1729, "deep_completions": 0.3948, "def_h": 31.7667, "dribbles_box": 0.0153, "dribbles_last_third": 0.0609, "duration_s": 26.2345, "hold_max": 9.7877, "hold_mean": 5.5369, "hold_min": 3.205, "line_breaks": 0.5921, "max_x": 68.3492, "n_centros": 0.1533, "n_events": 5.615, "n_involved": 1.8937, "n_passes": 3.1287, "opt_quality_mean": -0.0129, "paredes": 0.2621, "pass_options_mean": 8.9506, "passes_behind_line": 0.1395, "pct_adentro": 0.5169, "pct_afuera": 0.3981, "pct_cortos": 0.3951, "pct_headpass": 0.0389, "pct_largos": 0.2144, "pct_launch": 0.0985, "pct_layoff": 0.0085, "pct_medios": 0.3064, "pct_switch": 0.0045, "pct_through": 0.0025, "pct_verticales": 0.492, "pelotazos_espalda": 0.1052, "press_final": 2.4425, "press_media": 1.8403, "prog_x": 26.0884, "start_x": 43.2497, "starts_from_dispossess": 0.0433, "takeons_ok": 0.0509, "tempo": 0.3991, "transition_speed": 3.7288, "verticalidad_media": 0.3386}, "St.Gallen": {"atk_l": 37.1532, "atk_w": 33.4167, "ball_distance": 70.8807, "behind_line_ok": 0.0562, "broke_last_line": 0.0221, "broke_second_last": 0.1344, "cross_pvadded_max": 0.0011, "dang_runs": 0.1038, "deep_completions": 0.2762, "def_h": 29.3755, "dribbles_box": 0.0136, "dribbles_last_third": 0.0657, "duration_s": 22.7726, "hold_max": 9.8448, "hold_mean": 6.2881, "hold_min": 4.1124, "line_breaks": 0.3362, "max_x": 70.4772, "n_centros": 0.1109, "n_events": 4.6458, "n_involved": 1.6649, "n_passes": 2.1697, "opt_quality_mean": 0.0529, "paredes": 0.1289, "pass_options_mean": 8.7616, "passes_behind_line": 0.1436, "pct_adentro": 0.515, "pct_afuera": 0.3752, "pct_cortos": 0.3253, "pct_headpass": 0.0549, "pct_largos": 0.2553, "pct_launch": 0.134, "pct_layoff": 0.006, "pct_medios": 0.311, "pct_switch": 0.0034, "pct_through": 0.0032, "pct_verticales": 0.5497, "pelotazos_espalda": 0.12, "press_final": 2.6868, "press_media": 1.914, "prog_x": 26.3439, "start_x": 45.825, "starts_from_dispossess": 0.0416, "takeons_ok": 0.0426, "tempo": 0.3667, "transition_speed": 4.6027, "verticalidad_media": 0.4539}, "Thun": {"atk_l": 36.2251, "atk_w": 34.7242, "ball_distance": 76.0086, "behind_line_ok": 0.0564, "broke_last_line": 0.0266, "broke_second_last": 0.1434, "cross_pvadded_max": 0.0011, "dang_runs": 0.1235, "deep_completions": 0.3642, "def_h": 28.0748, "dribbles_box": 0.0149, "dribbles_last_third": 0.0636, "duration_s": 22.342, "hold_max": 10.068, "hold_mean": 6.2997, "hold_min": 4.089, "line_breaks": 0.337, "max_x": 72.2959, "n_centros": 0.1172, "n_events": 4.7611, "n_involved": 1.7121, "n_passes": 2.2981, "opt_quality_mean": 0.1012, "paredes": 0.1549, "pass_options_mean": 8.6315, "passes_behind_line": 0.1242, "pct_adentro": 0.5255, "pct_afuera": 0.3709, "pct_cortos": 0.3267, "pct_headpass": 0.0645, "pct_largos": 0.2387, "pct_launch": 0.1277, "pct_layoff": 0.0085, "pct_medios": 0.3317, "pct_switch": 0.0031, "pct_through": 0.0025, "pct_verticales": 0.5261, "pelotazos_espalda": 0.0971, "press_final": 2.5688, "press_media": 1.8732, "prog_x": 26.3031, "start_x": 47.5403, "starts_from_dispossess": 0.0446, "takeons_ok": 0.0418, "tempo": 0.3676, "transition_speed": 4.5059, "verticalidad_media": 0.4247}, "Winterthur": {"atk_l": 39.0714, "atk_w": 33.2012, "ball_distance": 92.8824, "behind_line_ok": 0.0439, "broke_last_line": 0.0214, "broke_second_last": 0.1554, "cross_pvadded_max": 0.0012, "dang_runs": 0.1055, "deep_completions": 0.2569, "def_h": 33.5989, "dribbles_box": 0.0094, "dribbles_last_third": 0.0397, "duration_s": 24.467, "hold_max": 10.1128, "hold_mean": 5.8267, "hold_min": 3.4498, "line_breaks": 0.4923, "max_x": 65.4645, "n_centros": 0.1052, "n_events": 5.0876, "n_involved": 1.7994, "n_passes": 2.6311, "opt_quality_mean": -0.0661, "paredes": 0.1868, "pass_options_mean": 8.801, "passes_behind_line": 0.1257, "pct_adentro": 0.5, "pct_afuera": 0.4098, "pct_cortos": 0.3607, "pct_headpass": 0.0531, "pct_largos": 0.2434, "pct_launch": 0.1059, "pct_layoff": 0.0122, "pct_medios": 0.3069, "pct_switch": 0.0062, "pct_through": 0.0015, "pct_verticales": 0.5286, "pelotazos_espalda": 0.0985, "press_final": 2.7137, "press_media": 1.9168, "prog_x": 25.6351, "start_x": 41.0936, "starts_from_dispossess": 0.0468, "takeons_ok": 0.0421, "tempo": 0.3904, "transition_speed": 4.1571, "verticalidad_media": 0.3944}, "Young Boys": {"atk_l": 40.8787, "atk_w": 32.8478, "ball_distance": 129.7559, "behind_line_ok": 0.0511, "broke_last_line": 0.0326, "broke_second_last": 0.1786, "cross_pvadded_max": 0.0018, "dang_runs": 0.2083, "deep_completions": 0.3963, "def_h": 31.1958, "dribbles_box": 0.015, "dribbles_last_third": 0.0722, "duration_s": 28.142, "hold_max": 9.9657, "hold_mean": 5.5171, "hold_min": 3.1339, "line_breaks": 0.6398, "max_x": 69.0487, "n_centros": 0.1288, "n_events": 5.8566, "n_involved": 1.8601, "n_passes": 3.2903, "opt_quality_mean": 0.0761, "paredes": 0.2936, "pass_options_mean": 9.0272, "passes_behind_line": 0.1158, "pct_adentro": 0.5067, "pct_afuera": 0.3984, "pct_cortos": 0.3671, "pct_headpass": 0.0431, "pct_largos": 0.193, "pct_launch": 0.0772, "pct_layoff": 0.0081, "pct_medios": 0.3454, "pct_switch": 0.0038, "pct_through": 0.0034, "pct_verticales": 0.4497, "pelotazos_espalda": 0.0779, "press_final": 2.6623, "press_media": 1.9102, "prog_x": 25.2438, "start_x": 45.0135, "starts_from_dispossess": 0.0537, "takeons_ok": 0.0621, "tempo": 0.3693, "transition_speed": 3.4401, "verticalidad_media": 0.3116}, "Zürich": {"atk_l": 38.9618, "atk_w": 31.4676, "ball_distance": 103.1458, "behind_line_ok": 0.0422, "broke_last_line": 0.0236, "broke_second_last": 0.1492, "cross_pvadded_max": 0.0017, "dang_runs": 0.1051, "deep_completions": 0.2994, "def_h": 30.7853, "dribbles_box": 0.0135, "dribbles_last_third": 0.0731, "duration_s": 23.5091, "hold_max": 10.5385, "hold_mean": 6.1225, "hold_min": 3.6508, "line_breaks": 0.5155, "max_x": 68.3382, "n_centros": 0.0979, "n_events": 5.1082, "n_involved": 1.7913, "n_passes": 2.6999, "opt_quality_mean": 0.0099, "paredes": 0.1799, "pass_options_mean": 8.7238, "passes_behind_line": 0.1192, "pct_adentro": 0.5118, "pct_afuera": 0.3958, "pct_cortos": 0.3574, "pct_headpass": 0.0523, "pct_largos": 0.2339, "pct_launch": 0.1036, "pct_layoff": 0.0076, "pct_medios": 0.3171, "pct_switch": 0.0061, "pct_through": 0.0011, "pct_verticales": 0.5161, "pelotazos_espalda": 0.0906, "press_final": 2.8376, "press_media": 1.9461, "prog_x": 25.3892, "start_x": 44.2396, "starts_from_dispossess": 0.0448, "takeons_ok": 0.0531, "tempo": 0.3615, "transition_speed": 3.8115, "verticalidad_media": 0.3783}}, "team_eje_norm_gen": {"Basel": {"eje_verticalidad": -0.1468, "eje_elaboracion": 0.0694, "eje_individual": -0.003, "eje_rotura_lineas": 0.0379, "eje_amplitud_centro": 0.0209, "eje_profundidad_espalda": -0.0085, "eje_robo_alto": -0.0016, "eje_aereo_segunda": -0.0616}, "Grasshoppers": {"eje_verticalidad": 0.0758, "eje_elaboracion": -0.0871, "eje_individual": -0.0246, "eje_rotura_lineas": -0.0389, "eje_amplitud_centro": -0.0427, "eje_profundidad_espalda": -0.0472, "eje_robo_alto": -0.0062, "eje_aereo_segunda": 0.062}, "Lausanne-Sport": {"eje_verticalidad": -0.0402, "eje_elaboracion": 0.0291, "eje_individual": 0.0203, "eje_rotura_lineas": -0.0012, "eje_amplitud_centro": -0.0081, "eje_profundidad_espalda": -0.0028, "eje_robo_alto": 0.0229, "eje_aereo_segunda": -0.0099}, "Lugano": {"eje_verticalidad": -0.143, "eje_elaboracion": 0.1486, "eje_individual": 0.0068, "eje_rotura_lineas": 0.0551, "eje_amplitud_centro": 0.0451, "eje_profundidad_espalda": 0.0127, "eje_robo_alto": -0.0745, "eje_aereo_segunda": -0.0268}, "Luzern": {"eje_verticalidad": -0.0885, "eje_elaboracion": 0.0283, "eje_individual": 0.0122, "eje_rotura_lineas": 0.0143, "eje_amplitud_centro": 0.0172, "eje_profundidad_espalda": 0.0216, "eje_robo_alto": 0.011, "eje_aereo_segunda": -0.0253}, "Servette": {"eje_verticalidad": -0.0958, "eje_elaboracion": 0.0768, "eje_individual": 0.0063, "eje_rotura_lineas": 0.0267, "eje_amplitud_centro": 0.0418, "eje_profundidad_espalda": -0.0085, "eje_robo_alto": 0.0168, "eje_aereo_segunda": -0.0168}, "Sion": {"eje_verticalidad": -0.054, "eje_elaboracion": 0.056, "eje_individual": 0.0143, "eje_rotura_lineas": 0.0259, "eje_amplitud_centro": 0.0325, "eje_profundidad_espalda": 0.0484, "eje_robo_alto": -0.0292, "eje_aereo_segunda": -0.0305}, "St.Gallen": {"eje_verticalidad": 0.1011, "eje_elaboracion": -0.1221, "eje_individual": -0.0135, "eje_rotura_lineas": -0.0433, "eje_amplitud_centro": -0.0389, "eje_profundidad_espalda": 0.0268, "eje_robo_alto": 0.0146, "eje_aereo_segunda": 0.032}, "Thun": {"eje_verticalidad": 0.0571, "eje_elaboracion": -0.1008, "eje_individual": -0.0079, "eje_rotura_lineas": -0.0358, "eje_amplitud_centro": -0.0387, "eje_profundidad_espalda": 0.021, "eje_robo_alto": 0.0535, "eje_aereo_segunda": 0.058}, "Winterthur": {"eje_verticalidad": 0.0369, "eje_elaboracion": -0.0377, "eje_individual": -0.0473, "eje_rotura_lineas": -0.0235, "eje_amplitud_centro": 0.007, "eje_profundidad_espalda": -0.0248, "eje_robo_alto": -0.0608, "eje_aereo_segunda": 0.0284}, "Young Boys": {"eje_verticalidad": -0.1255, "eje_elaboracion": 0.0645, "eje_individual": 0.0469, "eje_rotura_lineas": 0.039, "eje_amplitud_centro": 0.0031, "eje_profundidad_espalda": 0.0026, "eje_robo_alto": 0.0283, "eje_aereo_segunda": -0.0516}, "Zürich": {"eje_verticalidad": -0.0016, "eje_elaboracion": -0.0381, "eje_individual": 0.0049, "eje_rotura_lineas": -0.0236, "eje_amplitud_centro": -0.0143, "eje_profundidad_espalda": -0.0246, "eje_robo_alto": -0.0073, "eje_aereo_segunda": -0.0024}}, "team_eje_norm_con": {"Basel": {"eje_verticalidad": -0.0534, "eje_elaboracion": 0.0354, "eje_individual": 0.0012, "eje_rotura_lineas": -0.0087, "eje_amplitud_centro": 0.0055, "eje_profundidad_espalda": -0.0041, "eje_robo_alto": -0.0058, "eje_aereo_segunda": -0.0391}, "Grasshoppers": {"eje_verticalidad": -0.0167, "eje_elaboracion": -0.0258, "eje_individual": -0.0002, "eje_rotura_lineas": -0.0054, "eje_amplitud_centro": -0.0159, "eje_profundidad_espalda": -0.002, "eje_robo_alto": -0.001, "eje_aereo_segunda": 0.0225}, "Lausanne-Sport": {"eje_verticalidad": -0.0218, "eje_elaboracion": -0.0012, "eje_individual": -0.0144, "eje_rotura_lineas": 0.0261, "eje_amplitud_centro": 0.0099, "eje_profundidad_espalda": 0.0207, "eje_robo_alto": -0.0127, "eje_aereo_segunda": -0.0121}, "Lugano": {"eje_verticalidad": -0.0764, "eje_elaboracion": 0.0193, "eje_individual": 0.018, "eje_rotura_lineas": -0.0067, "eje_amplitud_centro": 0.0228, "eje_profundidad_espalda": 0.0004, "eje_robo_alto": 0.0227, "eje_aereo_segunda": -0.0397}, "Luzern": {"eje_verticalidad": -0.0488, "eje_elaboracion": 0.0205, "eje_individual": 0.024, "eje_rotura_lineas": -0.0061, "eje_amplitud_centro": 0.011, "eje_profundidad_espalda": -0.0029, "eje_robo_alto": 0.0007, "eje_aereo_segunda": -0.0256}, "Servette": {"eje_verticalidad": -0.0673, "eje_elaboracion": 0.042, "eje_individual": -0.0103, "eje_rotura_lineas": 0.0201, "eje_amplitud_centro": -0.0049, "eje_profundidad_espalda": -0.0199, "eje_robo_alto": -0.0021, "eje_aereo_segunda": 0.012}, "Sion": {"eje_verticalidad": -0.0772, "eje_elaboracion": 0.0441, "eje_individual": 0.0112, "eje_rotura_lineas": 0.0244, "eje_amplitud_centro": -0.0017, "eje_profundidad_espalda": 0.0035, "eje_robo_alto": 0.0105, "eje_aereo_segunda": -0.0398}, "St.Gallen": {"eje_verticalidad": 0.0367, "eje_elaboracion": -0.0508, "eje_individual": -0.0131, "eje_rotura_lineas": -0.0047, "eje_amplitud_centro": -0.0151, "eje_profundidad_espalda": -0.0092, "eje_robo_alto": -0.0532, "eje_aereo_segunda": 0.0586}, "Thun": {"eje_verticalidad": 0.0256, "eje_elaboracion": -0.0293, "eje_individual": -0.0221, "eje_rotura_lineas": -0.043, "eje_amplitud_centro": 0.0178, "eje_profundidad_espalda": -0.0077, "eje_robo_alto": -0.0692, "eje_aereo_segunda": 0.0365}, "Winterthur": {"eje_verticalidad": -0.0994, "eje_elaboracion": 0.0676, "eje_individual": 0.0489, "eje_rotura_lineas": 0.0314, "eje_amplitud_centro": 0.0096, "eje_profundidad_espalda": 0.0145, "eje_robo_alto": 0.0878, "eje_aereo_segunda": -0.0075}, "Young Boys": {"eje_verticalidad": -0.027, "eje_elaboracion": -0.0064, "eje_individual": -0.0207, "eje_rotura_lineas": 0.0124, "eje_amplitud_centro": -0.0212, "eje_profundidad_espalda": 0.0075, "eje_robo_alto": -0.0288, "eje_aereo_segunda": -0.0162}, "Zürich": {"eje_verticalidad": 0.0011, "eje_elaboracion": -0.0286, "eje_individual": -0.007, "eje_rotura_lineas": -0.0072, "eje_amplitud_centro": 0.0074, "eje_profundidad_espalda": 0.0158, "eje_robo_alto": 0.0185, "eje_aereo_segunda": 0.0059}}}
|
vendor/data/ejes/brack-super-league/25-26/team_profiles.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6d4941b3a9c451b630014b626aa2d045b6554c6bf69d1d5e89c8d0ff13b40947
|
| 3 |
+
size 8227
|
vendor/data/ejes/chile-primera/26/ejes_definition.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
|
vendor/data/ejes/chile-primera/26/match_team_ejes.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4eb44086d10fa0123bcce5982d0d6327a6cb4deac911702e933c26369dcac356
|
| 3 |
+
size 34974
|
vendor/data/ejes/chile-primera/26/match_team_vars.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8264ec9f3e12318a31976dff1fa366e925fe7ec6a390bb13e7f532ede9852e5a
|
| 3 |
+
size 126318
|
vendor/data/ejes/chile-primera/26/predictor.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": {"gen": 0.6224, "con": 0.6619, "intercept": 0.0068}, "elaboracion": {"gen": 0.8124, "con": 0.8404, "intercept": -0.0007}, "individual": {"gen": 0.6271, "con": 0.2122, "intercept": -0.0001}, "rotura_lineas": {"gen": 0.7017, "con": 0.6412, "intercept": -0.0004}, "amplitud_centro": {"gen": 0.6392, "con": 0.5207, "intercept": -0.0001}, "profundidad_espalda": {"gen": 0.3555, "con": 0.4199, "intercept": 0.0004}, "robo_alto": {"gen": 0.5105, "con": 0.5634, "intercept": 0.0003}, "aereo_segunda": {"gen": 0.6479, "con": 0.0646, "intercept": -0.0001}}
|
vendor/data/ejes/chile-primera/26/scales.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"var_sigma": {"atk_l": 1.6825, "atk_w": 1.3168, "ball_distance": 49.2584, "behind_line_ok": 0.0254, "broke_last_line": 0.0188, "broke_second_last": 0.0434, "cross_pvadded_max": 0.0013, "dang_runs": 0.0677, "deep_completions": 0.0975, "def_h": 2.3568, "dribbles_box": 0.008, "dribbles_last_third": 0.0219, "duration_s": 18.4505, "hold_max": 1.3776, "hold_mean": 1.0542, "hold_min": 0.9982, "line_breaks": 0.2493, "max_x": 3.2093, "n_centros": 0.0448, "n_events": 1.733, "n_involved": 0.1565, "n_passes": 0.5389, "opt_quality_mean": 0.1047, "paredes": 0.0937, "pass_options_mean": 1.8683, "passes_behind_line": 0.0433, "pct_adentro": 0.0342, "pct_afuera": 0.0345, "pct_cortos": 0.0446, "pct_headpass": 0.0144, "pct_largos": 0.0431, "pct_launch": 0.0325, "pct_layoff": 0.0041, "pct_medios": 0.0407, "pct_switch": 0.005, "pct_through": 0.0031, "pct_verticales": 0.0534, "pelotazos_espalda": 0.0362, "press_final": 0.5516, "press_media": 0.3906, "prog_x": 2.5548, "start_x": 3.7642, "starts_from_dispossess": 0.0177, "takeons_ok": 0.0203, "tempo": 0.0392, "transition_speed": 0.6728, "verticalidad_media": 0.0593}, "eje_sigma": {"eje_verticalidad": 0.1067, "eje_elaboracion": 0.0932, "eje_individual": 0.063, "eje_rotura_lineas": 0.0716, "eje_amplitud_centro": 0.0502, "eje_profundidad_espalda": 0.0985, "eje_robo_alto": 0.0887, "eje_aereo_segunda": 0.0576}, "eje_match_mean": {"eje_verticalidad": -0.0239, "eje_elaboracion": 0.0011, "eje_individual": -0.0007, "eje_rotura_lineas": 0.0011, "eje_amplitud_centro": 0.0007, "eje_profundidad_espalda": 0.0019, "eje_robo_alto": -0.0035, "eje_aereo_segunda": -0.0004}, "eje_match_std": {"eje_verticalidad": 0.1156, "eje_elaboracion": 0.1058, "eje_individual": 0.0688, "eje_rotura_lineas": 0.0786, "eje_amplitud_centro": 0.0544, "eje_profundidad_espalda": 0.1035, "eje_robo_alto": 0.0948, "eje_aereo_segunda": 0.0634}, "team_var_norm": {"Audax Italiano": {"atk_l": 43.9236, "atk_w": 35.9065, "ball_distance": 110.4739, "behind_line_ok": 0.0581, "broke_last_line": 0.033, "broke_second_last": 0.1262, "cross_pvadded_max": 0.0008, "dang_runs": 0.0818, "deep_completions": 0.2833, "def_h": 31.4247, "dribbles_box": 0.008, "dribbles_last_third": 0.0457, "duration_s": 24.3766, "hold_max": 10.832, "hold_mean": 6.0493, "hold_min": 3.4385, "line_breaks": 0.5401, "max_x": 66.4541, "n_centros": 0.116, "n_events": 5.2087, "n_involved": 1.7852, "n_passes": 2.9484, "opt_quality_mean": -0.0836, "paredes": 0.2163, "pass_options_mean": 7.3425, "passes_behind_line": 0.1326, "pct_adentro": 0.5153, "pct_afuera": 0.4073, "pct_cortos": 0.3493, "pct_headpass": 0.0446, "pct_largos": 0.229, "pct_launch": 0.0841, "pct_layoff": 0.0096, "pct_medios": 0.3451, "pct_switch": 0.0062, "pct_through": 0.0018, "pct_verticales": 0.4863, "pelotazos_espalda": 0.1001, "press_final": 2.2995, "press_media": 1.6283, "prog_x": 26.0596, "start_x": 41.4831, "starts_from_dispossess": 0.0348, "takeons_ok": 0.0512, "tempo": 0.3784, "transition_speed": 3.6628, "verticalidad_media": 0.3591}, "Cobresal": {"atk_l": 41.1553, "atk_w": 35.2499, "ball_distance": 109.0976, "behind_line_ok": 0.0643, "broke_last_line": 0.0308, "broke_second_last": 0.1463, "cross_pvadded_max": 0.001, "dang_runs": 0.1364, "deep_completions": 0.3, "def_h": 31.1406, "dribbles_box": 0.0071, "dribbles_last_third": 0.048, "duration_s": 23.5695, "hold_max": 9.774, "hold_mean": 5.9359, "hold_min": 3.715, "line_breaks": 0.6268, "max_x": 67.9779, "n_centros": 0.1383, "n_events": 5.144, "n_involved": 1.8427, "n_passes": 2.8522, "opt_quality_mean": -0.0586, "paredes": 0.2054, "pass_options_mean": 7.2342, "passes_behind_line": 0.1248, "pct_adentro": 0.5101, "pct_afuera": 0.4135, "pct_cortos": 0.3224, "pct_headpass": 0.0369, "pct_largos": 0.2603, "pct_launch": 0.0896, "pct_layoff": 0.0088, "pct_medios": 0.3419, "pct_switch": 0.0082, "pct_through": 0.0028, "pct_verticales": 0.5125, "pelotazos_espalda": 0.0921, "press_final": 2.4565, "press_media": 1.7632, "prog_x": 28.1732, "start_x": 40.9987, "starts_from_dispossess": 0.0412, "takeons_ok": 0.048, "tempo": 0.3483, "transition_speed": 3.925, "verticalidad_media": 0.3826}, "Colo Colo": {"atk_l": 42.1536, "atk_w": 34.8239, "ball_distance": 141.2925, "behind_line_ok": 0.0582, "broke_last_line": 0.0399, "broke_second_last": 0.1912, "cross_pvadded_max": 0.0007, "dang_runs": 0.1264, "deep_completions": 0.3931, "def_h": 29.2162, "dribbles_box": 0.014, "dribbles_last_third": 0.0748, "duration_s": 19.4176, "hold_max": 9.9064, "hold_mean": 5.8486, "hold_min": 3.5145, "line_breaks": 0.7819, "max_x": 70.7258, "n_centros": 0.14, "n_events": 5.4431, "n_involved": 2.0166, "n_passes": 3.6494, "opt_quality_mean": 0.0108, "paredes": 0.3161, "pass_options_mean": 7.6596, "passes_behind_line": 0.1199, "pct_adentro": 0.5343, "pct_afuera": 0.396, "pct_cortos": 0.405, "pct_headpass": 0.0402, "pct_largos": 0.1859, "pct_launch": 0.0669, "pct_layoff": 0.0094, "pct_medios": 0.3408, "pct_switch": 0.0084, "pct_through": 0.004, "pct_verticales": 0.4628, "pelotazos_espalda": 0.0837, "press_final": 2.4562, "press_media": 1.7968, "prog_x": 25.6585, "start_x": 46.1756, "starts_from_dispossess": 0.0463, "takeons_ok": 0.0592, "tempo": 0.3927, "transition_speed": 3.4476, "verticalidad_media": 0.3098}, "Coquimbo Unido": {"atk_l": 40.0598, "atk_w": 34.7386, "ball_distance": 81.7283, "behind_line_ok": 0.0493, "broke_last_line": 0.0399, "broke_second_last": 0.1237, "cross_pvadded_max": 0.0011, "dang_runs": 0.1092, "deep_completions": 0.3469, "def_h": 28.5956, "dribbles_box": 0.0096, "dribbles_last_third": 0.0471, "duration_s": 27.4029, "hold_max": 9.7983, "hold_mean": 5.9343, "hold_min": 3.6173, "line_breaks": 0.3869, "max_x": 71.37, "n_centros": 0.1544, "n_events": 5.4727, "n_involved": 1.7389, "n_passes": 2.756, "opt_quality_mean": -0.0118, "paredes": 0.2135, "pass_options_mean": 7.3019, "passes_behind_line": 0.116, "pct_adentro": 0.5303, "pct_afuera": 0.3915, "pct_cortos": 0.3579, "pct_headpass": 0.0643, "pct_largos": 0.2408, "pct_launch": 0.089, "pct_layoff": 0.0087, "pct_medios": 0.3237, "pct_switch": 0.0059, "pct_through": 0.0018, "pct_verticales": 0.5291, "pelotazos_espalda": 0.0817, "press_final": 2.4001, "press_media": 1.7265, "prog_x": 27.0778, "start_x": 45.4939, "starts_from_dispossess": 0.0421, "takeons_ok": 0.0351, "tempo": 0.3851, "transition_speed": 4.1515, "verticalidad_media": 0.398}, "Deportes Concepción": {"atk_l": 41.3362, "atk_w": 34.946, "ball_distance": 106.8195, "behind_line_ok": 0.0472, "broke_last_line": 0.035, "broke_second_last": 0.1311, "cross_pvadded_max": 0.001, "dang_runs": 0.1407, "deep_completions": 0.2768, "def_h": 30.8809, "dribbles_box": 0.008, "dribbles_last_third": 0.0437, "duration_s": 21.6807, "hold_max": 10.4322, "hold_mean": 6.1779, "hold_min": 3.7647, "line_breaks": 0.4638, "max_x": 69.1449, "n_centros": 0.1614, "n_events": 5.0412, "n_involved": 1.7219, "n_passes": 2.913, "opt_quality_mean": -0.0571, "paredes": 0.2107, "pass_options_mean": 8.0276, "passes_behind_line": 0.1268, "pct_adentro": 0.5144, "pct_afuera": 0.395, "pct_cortos": 0.3532, "pct_headpass": 0.0454, "pct_largos": 0.2231, "pct_launch": 0.0953, "pct_layoff": 0.0057, "pct_medios": 0.3337, "pct_switch": 0.0067, "pct_through": 0.0015, "pct_verticales": 0.5023, "pelotazos_espalda": 0.0993, "press_final": 2.5799, "press_media": 1.825, "prog_x": 27.1827, "start_x": 43.2267, "starts_from_dispossess": 0.0371, "takeons_ok": 0.0435, "tempo": 0.3639, "transition_speed": 3.9681, "verticalidad_media": 0.3786}, "Deportes Limache": {"atk_l": 42.041, "atk_w": 37.3956, "ball_distance": 120.9087, "behind_line_ok": 0.0556, "broke_last_line": 0.0268, "broke_second_last": 0.1238, "cross_pvadded_max": 0.0016, "dang_runs": 0.1053, "deep_completions": 0.3055, "def_h": 30.4083, "dribbles_box": 0.0134, "dribbles_last_third": 0.0634, "duration_s": 35.1504, "hold_max": 10.5949, "hold_mean": 5.9118, "hold_min": 3.5558, "line_breaks": 0.4913, "max_x": 69.4904, "n_centros": 0.1265, "n_events": 6.0448, "n_involved": 1.7411, "n_passes": 2.8435, "opt_quality_mean": -0.044, "paredes": 0.2509, "pass_options_mean": 7.9205, "passes_behind_line": 0.1305, "pct_adentro": 0.5038, "pct_afuera": 0.4081, "pct_cortos": 0.3234, "pct_headpass": 0.043, "pct_largos": 0.2377, "pct_launch": 0.0971, "pct_layoff": 0.0053, "pct_medios": 0.3524, "pct_switch": 0.0066, "pct_through": 0.002, "pct_verticales": 0.5213, "pelotazos_espalda": 0.098, "press_final": 2.5584, "press_media": 1.8402, "prog_x": 28.1893, "start_x": 42.8098, "starts_from_dispossess": 0.0339, "takeons_ok": 0.0541, "tempo": 0.3579, "transition_speed": 4.1984, "verticalidad_media": 0.4064}, "Everton": {"atk_l": 41.5943, "atk_w": 35.2604, "ball_distance": 104.8116, "behind_line_ok": 0.0523, "broke_last_line": 0.0387, "broke_second_last": 0.1402, "cross_pvadded_max": 0.0009, "dang_runs": 0.0875, "deep_completions": 0.3168, "def_h": 30.6894, "dribbles_box": 0.0077, "dribbles_last_third": 0.0487, "duration_s": 22.4321, "hold_max": 9.8818, "hold_mean": 5.8723, "hold_min": 3.5059, "line_breaks": 0.5465, "max_x": 68.9878, "n_centros": 0.1373, "n_events": 4.9321, "n_involved": 1.7968, "n_passes": 2.713, "opt_quality_mean": -0.0356, "paredes": 0.2038, "pass_options_mean": 7.3116, "passes_behind_line": 0.1073, "pct_adentro": 0.5184, "pct_afuera": 0.401, "pct_cortos": 0.3651, "pct_headpass": 0.0455, "pct_largos": 0.2193, "pct_launch": 0.0855, "pct_layoff": 0.0064, "pct_medios": 0.3355, "pct_switch": 0.0071, "pct_through": 0.0013, "pct_verticales": 0.523, "pelotazos_espalda": 0.0785, "press_final": 2.1912, "press_media": 1.629, "prog_x": 26.7918, "start_x": 43.309, "starts_from_dispossess": 0.0431, "takeons_ok": 0.0508, "tempo": 0.3858, "transition_speed": 4.1993, "verticalidad_media": 0.4035}, "Huachipato": {"atk_l": 40.6697, "atk_w": 36.0549, "ball_distance": 91.3896, "behind_line_ok": 0.0548, "broke_last_line": 0.0251, "broke_second_last": 0.1231, "cross_pvadded_max": 0.0015, "dang_runs": 0.0646, "deep_completions": 0.2817, "def_h": 30.6673, "dribbles_box": 0.0045, "dribbles_last_third": 0.0374, "duration_s": 28.6093, "hold_max": 10.4016, "hold_mean": 6.3596, "hold_min": 4.1491, "line_breaks": 0.4364, "max_x": 68.8979, "n_centros": 0.1404, "n_events": 5.6951, "n_involved": 1.8404, "n_passes": 2.8075, "opt_quality_mean": -0.0631, "paredes": 0.1959, "pass_options_mean": 6.7544, "passes_behind_line": 0.1332, "pct_adentro": 0.5358, "pct_afuera": 0.3784, "pct_cortos": 0.3351, "pct_headpass": 0.0531, "pct_largos": 0.2467, "pct_launch": 0.0822, "pct_layoff": 0.0099, "pct_medios": 0.3332, "pct_switch": 0.0062, "pct_through": 0.0024, "pct_verticales": 0.5197, "pelotazos_espalda": 0.1098, "press_final": 2.2469, "press_media": 1.7085, "prog_x": 27.694, "start_x": 42.7358, "starts_from_dispossess": 0.0417, "takeons_ok": 0.0375, "tempo": 0.3589, "transition_speed": 3.7411, "verticalidad_media": 0.4001}, "La Serena": {"atk_l": 40.0815, "atk_w": 34.1472, "ball_distance": 90.5409, "behind_line_ok": 0.0432, "broke_last_line": 0.026, "broke_second_last": 0.1418, "cross_pvadded_max": 0.0009, "dang_runs": 0.0956, "deep_completions": 0.2456, "def_h": 31.6578, "dribbles_box": 0.0057, "dribbles_last_third": 0.0428, "duration_s": 13.5841, "hold_max": 10.626, "hold_mean": 6.5144, "hold_min": 4.0239, "line_breaks": 0.4671, "max_x": 67.3348, "n_centros": 0.0975, "n_events": 4.1643, "n_involved": 1.7916, "n_passes": 2.5904, "opt_quality_mean": -0.1166, "paredes": 0.1796, "pass_options_mean": 7.7619, "passes_behind_line": 0.1113, "pct_adentro": 0.5071, "pct_afuera": 0.3973, "pct_cortos": 0.3538, "pct_headpass": 0.0488, "pct_largos": 0.2222, "pct_launch": 0.12, "pct_layoff": 0.0086, "pct_medios": 0.3291, "pct_switch": 0.0029, "pct_through": 0.0022, "pct_verticales": 0.5254, "pelotazos_espalda": 0.0873, "press_final": 2.6426, "press_media": 1.9287, "prog_x": 25.6145, "start_x": 43.0097, "starts_from_dispossess": 0.0468, "takeons_ok": 0.045, "tempo": 0.3711, "transition_speed": 3.9351, "verticalidad_media": 0.409}, "O'Higgins": {"atk_l": 40.6683, "atk_w": 34.68, "ball_distance": 98.4671, "behind_line_ok": 0.0337, "broke_last_line": 0.028, "broke_second_last": 0.1308, "cross_pvadded_max": 0.0019, "dang_runs": 0.1291, "deep_completions": 0.3028, "def_h": 30.3821, "dribbles_box": 0.0086, "dribbles_last_third": 0.0496, "duration_s": 37.0908, "hold_max": 10.93, "hold_mean": 6.1839, "hold_min": 3.666, "line_breaks": 0.4717, "max_x": 69.1333, "n_centros": 0.1558, "n_events": 6.3802, "n_involved": 1.8263, "n_passes": 3.0622, "opt_quality_mean": -0.0327, "paredes": 0.2729, "pass_options_mean": 7.2158, "passes_behind_line": 0.0874, "pct_adentro": 0.5049, "pct_afuera": 0.4035, "pct_cortos": 0.3719, "pct_headpass": 0.0495, "pct_largos": 0.1972, "pct_launch": 0.0965, "pct_layoff": 0.0105, "pct_medios": 0.3397, "pct_switch": 0.0025, "pct_through": 0.0023, "pct_verticales": 0.5005, "pelotazos_espalda": 0.0575, "press_final": 2.2902, "press_media": 1.6804, "prog_x": 27.0006, "start_x": 43.378, "starts_from_dispossess": 0.0411, "takeons_ok": 0.0452, "tempo": 0.3741, "transition_speed": 3.6955, "verticalidad_media": 0.3761}, "Palestino": {"atk_l": 40.963, "atk_w": 35.1724, "ball_distance": 103.9561, "behind_line_ok": 0.0542, "broke_last_line": 0.0266, "broke_second_last": 0.1563, "cross_pvadded_max": 0.0012, "dang_runs": 0.0891, "deep_completions": 0.2852, "def_h": 30.3208, "dribbles_box": 0.0081, "dribbles_last_third": 0.051, "duration_s": 32.327, "hold_max": 10.3905, "hold_mean": 5.8207, "hold_min": 3.3462, "line_breaks": 0.4245, "max_x": 68.6686, "n_centros": 0.1318, "n_events": 6.089, "n_involved": 1.8107, "n_passes": 2.9328, "opt_quality_mean": -0.0175, "paredes": 0.252, "pass_options_mean": 7.5083, "passes_behind_line": 0.1143, "pct_adentro": 0.5152, "pct_afuera": 0.3951, "pct_cortos": 0.3941, "pct_headpass": 0.0599, "pct_largos": 0.2318, "pct_launch": 0.106, "pct_layoff": 0.007, "pct_medios": 0.2858, "pct_switch": 0.005, "pct_through": 0.0009, "pct_verticales": 0.5115, "pelotazos_espalda": 0.0879, "press_final": 2.3961, "press_media": 1.689, "prog_x": 27.3316, "start_x": 42.6142, "starts_from_dispossess": 0.036, "takeons_ok": 0.0469, "tempo": 0.3893, "transition_speed": 4.0571, "verticalidad_media": 0.3846}, "Universidad Católica": {"atk_l": 41.4091, "atk_w": 35.728, "ball_distance": 140.8207, "behind_line_ok": 0.0531, "broke_last_line": 0.0439, "broke_second_last": 0.1721, "cross_pvadded_max": 0.0017, "dang_runs": 0.1186, "deep_completions": 0.329, "def_h": 30.2428, "dribbles_box": 0.009, "dribbles_last_third": 0.0464, "duration_s": 26.7206, "hold_max": 10.8556, "hold_mean": 6.0209, "hold_min": 3.4544, "line_breaks": 0.5684, "max_x": 70.2344, "n_centros": 0.1732, "n_events": 5.8315, "n_involved": 1.9272, "n_passes": 3.3105, "opt_quality_mean": -0.0005, "paredes": 0.3551, "pass_options_mean": 8.1004, "passes_behind_line": 0.1228, "pct_adentro": 0.5293, "pct_afuera": 0.3835, "pct_cortos": 0.3848, "pct_headpass": 0.0429, "pct_largos": 0.2015, "pct_launch": 0.0759, "pct_layoff": 0.0096, "pct_medios": 0.328, "pct_switch": 0.004, "pct_through": 0.0045, "pct_verticales": 0.4846, "pelotazos_espalda": 0.0855, "press_final": 2.3942, "press_media": 1.7472, "prog_x": 27.2156, "start_x": 44.419, "starts_from_dispossess": 0.0379, "takeons_ok": 0.0468, "tempo": 0.4107, "transition_speed": 3.7859, "verticalidad_media": 0.3486}, "Universidad Concepción": {"atk_l": 42.1807, "atk_w": 34.2435, "ball_distance": 98.0222, "behind_line_ok": 0.0393, "broke_last_line": 0.0315, "broke_second_last": 0.1425, "cross_pvadded_max": 0.0008, "dang_runs": 0.0934, "deep_completions": 0.3108, "def_h": 30.8232, "dribbles_box": 0.0106, "dribbles_last_third": 0.0611, "duration_s": 18.1323, "hold_max": 10.0577, "hold_mean": 5.9688, "hold_min": 3.5953, "line_breaks": 0.4996, "max_x": 67.7226, "n_centros": 0.1261, "n_events": 4.7324, "n_involved": 1.8149, "n_passes": 2.8846, "opt_quality_mean": -0.0381, "paredes": 0.2282, "pass_options_mean": 7.3632, "passes_behind_line": 0.0938, "pct_adentro": 0.5114, "pct_afuera": 0.3877, "pct_cortos": 0.3835, "pct_headpass": 0.0463, "pct_largos": 0.1978, "pct_launch": 0.0864, "pct_layoff": 0.0073, "pct_medios": 0.319, "pct_switch": 0.0059, "pct_through": 0.0025, "pct_verticales": 0.4834, "pelotazos_espalda": 0.0647, "press_final": 2.6616, "press_media": 1.9459, "prog_x": 24.6219, "start_x": 44.6091, "starts_from_dispossess": 0.0361, "takeons_ok": 0.0642, "tempo": 0.3712, "transition_speed": 3.3922, "verticalidad_media": 0.3547}, "Universidad de Chile": {"atk_l": 41.8757, "atk_w": 34.0639, "ball_distance": 122.2994, "behind_line_ok": 0.0445, "broke_last_line": 0.0257, "broke_second_last": 0.1552, "cross_pvadded_max": 0.0013, "dang_runs": 0.15, "deep_completions": 0.3337, "def_h": 29.844, "dribbles_box": 0.0133, "dribbles_last_third": 0.0532, "duration_s": 43.9797, "hold_max": 10.6605, "hold_mean": 6.0211, "hold_min": 3.5989, "line_breaks": 0.5714, "max_x": 69.1156, "n_centros": 0.1296, "n_events": 7.2386, "n_involved": 1.9569, "n_passes": 3.27, "opt_quality_mean": 0.0058, "paredes": 0.2735, "pass_options_mean": 7.5431, "passes_behind_line": 0.1025, "pct_adentro": 0.5156, "pct_afuera": 0.4054, "pct_cortos": 0.3961, "pct_headpass": 0.0509, "pct_largos": 0.1919, "pct_launch": 0.1004, "pct_layoff": 0.0113, "pct_medios": 0.3336, "pct_switch": 0.0057, "pct_through": 0.0011, "pct_verticales": 0.5074, "pelotazos_espalda": 0.0715, "press_final": 2.4084, "press_media": 1.7335, "prog_x": 25.3528, "start_x": 44.7063, "starts_from_dispossess": 0.0443, "takeons_ok": 0.0511, "tempo": 0.3911, "transition_speed": 3.804, "verticalidad_media": 0.3729}, "Unión La Calera": {"atk_l": 43.809, "atk_w": 34.3533, "ball_distance": 121.6803, "behind_line_ok": 0.046, "broke_last_line": 0.033, "broke_second_last": 0.1327, "cross_pvadded_max": 0.0011, "dang_runs": 0.1176, "deep_completions": 0.2544, "def_h": 30.9269, "dribbles_box": 0.0118, "dribbles_last_third": 0.0565, "duration_s": 38.2518, "hold_max": 10.5974, "hold_mean": 6.0769, "hold_min": 3.5696, "line_breaks": 0.5359, "max_x": 67.3002, "n_centros": 0.154, "n_events": 6.4635, "n_involved": 1.8988, "n_passes": 3.049, "opt_quality_mean": -0.0728, "paredes": 0.196, "pass_options_mean": 7.5498, "passes_behind_line": 0.1143, "pct_adentro": 0.5351, "pct_afuera": 0.3935, "pct_cortos": 0.3589, "pct_headpass": 0.0534, "pct_largos": 0.2172, "pct_launch": 0.0896, "pct_layoff": 0.0069, "pct_medios": 0.3539, "pct_switch": 0.0038, "pct_through": 0.0023, "pct_verticales": 0.5031, "pelotazos_espalda": 0.0841, "press_final": 2.494, "press_media": 1.8736, "prog_x": 25.5946, "start_x": 42.8317, "starts_from_dispossess": 0.0447, "takeons_ok": 0.0424, "tempo": 0.3836, "transition_speed": 3.6248, "verticalidad_media": 0.3587}, "Ñublense": {"atk_l": 39.6577, "atk_w": 34.051, "ball_distance": 67.4064, "behind_line_ok": 0.0373, "broke_last_line": 0.0211, "broke_second_last": 0.149, "cross_pvadded_max": 0.0015, "dang_runs": 0.0682, "deep_completions": 0.2973, "def_h": 29.4716, "dribbles_box": 0.0066, "dribbles_last_third": 0.0404, "duration_s": 23.4373, "hold_max": 10.1392, "hold_mean": 6.3186, "hold_min": 4.0473, "line_breaks": 0.3022, "max_x": 69.6833, "n_centros": 0.1372, "n_events": 5.091, "n_involved": 1.7539, "n_passes": 2.56, "opt_quality_mean": -0.0315, "paredes": 0.1774, "pass_options_mean": 6.7172, "passes_behind_line": 0.0927, "pct_adentro": 0.5367, "pct_afuera": 0.3777, "pct_cortos": 0.399, "pct_headpass": 0.0719, "pct_largos": 0.2084, "pct_launch": 0.089, "pct_layoff": 0.0058, "pct_medios": 0.3078, "pct_switch": 0.0041, "pct_through": 0.0013, "pct_verticales": 0.5221, "pelotazos_espalda": 0.0675, "press_final": 2.2955, "press_media": 1.7525, "prog_x": 25.4106, "start_x": 45.6066, "starts_from_dispossess": 0.0492, "takeons_ok": 0.0365, "tempo": 0.3963, "transition_speed": 3.9099, "verticalidad_media": 0.4144}}, "team_eje_norm_gen": {"Audax Italiano": {"eje_verticalidad": -0.0445, "eje_elaboracion": -0.0189, "eje_individual": -0.0139, "eje_rotura_lineas": -0.0067, "eje_amplitud_centro": -0.0062, "eje_profundidad_espalda": 0.0321, "eje_robo_alto": -0.0589, "eje_aereo_segunda": -0.0101}, "Cobresal": {"eje_verticalidad": 0.0194, "eje_elaboracion": -0.0492, "eje_individual": 0.0025, "eje_rotura_lineas": 0.0214, "eje_amplitud_centro": 0.0333, "eje_profundidad_espalda": 0.0319, "eje_robo_alto": -0.0521, "eje_aereo_segunda": -0.0239}, "Colo Colo": {"eje_verticalidad": -0.1257, "eje_elaboracion": 0.1072, "eje_individual": 0.0578, "eje_rotura_lineas": 0.0915, "eje_amplitud_centro": 0.0196, "eje_profundidad_espalda": 0.0476, "eje_robo_alto": 0.0588, "eje_aereo_segunda": -0.0426}, "Coquimbo Unido": {"eje_verticalidad": 0.0324, "eje_elaboracion": -0.0268, "eje_individual": -0.0159, "eje_rotura_lineas": -0.0169, "eje_amplitud_centro": 0.0137, "eje_profundidad_espalda": 0.0162, "eje_robo_alto": 0.0351, "eje_aereo_segunda": 0.0301}, "Deportes Concepción": {"eje_verticalidad": -0.0227, "eje_elaboracion": -0.0232, "eje_individual": -0.003, "eje_rotura_lineas": -0.0121, "eje_amplitud_centro": 0.0282, "eje_profundidad_espalda": 0.0124, "eje_robo_alto": -0.0204, "eje_aereo_segunda": -0.0197}, "Deportes Limache": {"eje_verticalidad": 0.0266, "eje_elaboracion": -0.023, "eje_individual": 0.0308, "eje_rotura_lineas": -0.0216, "eje_amplitud_centro": 0.007, "eje_profundidad_espalda": 0.0338, "eje_robo_alto": -0.0362, "eje_aereo_segunda": -0.0256}, "Everton": {"eje_verticalidad": 0.0146, "eje_elaboracion": -0.0328, "eje_individual": -0.0097, "eje_rotura_lineas": 0.0079, "eje_amplitud_centro": 0.0135, "eje_profundidad_espalda": -0.0009, "eje_robo_alto": -0.0035, "eje_aereo_segunda": -0.0277}, "Huachipato": {"eje_verticalidad": 0.0141, "eje_elaboracion": -0.0441, "eje_individual": -0.0528, "eje_rotura_lineas": -0.0282, "eje_amplitud_centro": -0.0099, "eje_profundidad_espalda": 0.037, "eje_robo_alto": -0.0178, "eje_aereo_segunda": 0.0066}, "La Serena": {"eje_verticalidad": 0.0076, "eje_elaboracion": -0.0657, "eje_individual": -0.0247, "eje_rotura_lineas": -0.0121, "eje_amplitud_centro": -0.0538, "eje_profundidad_espalda": -0.0259, "eje_robo_alto": 0.0001, "eje_aereo_segunda": 0.0384}, "O'Higgins": {"eje_verticalidad": -0.0533, "eje_elaboracion": 0.0363, "eje_individual": 0.0025, "eje_rotura_lineas": -0.0154, "eje_amplitud_centro": 0.0045, "eje_profundidad_espalda": -0.0608, "eje_robo_alto": -0.0073, "eje_aereo_segunda": 0.0215}, "Palestino": {"eje_verticalidad": -0.0018, "eje_elaboracion": 0.0297, "eje_individual": -0.0099, "eje_rotura_lineas": -0.0161, "eje_amplitud_centro": -0.0101, "eje_profundidad_espalda": 0.0035, "eje_robo_alto": -0.0345, "eje_aereo_segunda": 0.0319}, "Universidad Católica": {"eje_verticalidad": -0.0701, "eje_elaboracion": 0.0882, "eje_individual": -0.0019, "eje_rotura_lineas": 0.0624, "eje_amplitud_centro": 0.0119, "eje_profundidad_espalda": 0.0225, "eje_robo_alto": 0.0043, "eje_aereo_segunda": -0.024}, "Universidad Concepción": {"eje_verticalidad": -0.0912, "eje_elaboracion": -0.0009, "eje_individual": 0.0279, "eje_rotura_lineas": 0.002, "eje_amplitud_centro": -0.0169, "eje_profundidad_espalda": -0.0402, "eje_robo_alto": 0.0033, "eje_aereo_segunda": -0.0188}, "Universidad de Chile": {"eje_verticalidad": -0.0462, "eje_elaboracion": 0.0738, "eje_individual": 0.0324, "eje_rotura_lineas": 0.0012, "eje_amplitud_centro": 0.0015, "eje_profundidad_espalda": -0.0134, "eje_robo_alto": 0.0258, "eje_aereo_segunda": 0.0348}, "Unión La Calera": {"eje_verticalidad": -0.0425, "eje_elaboracion": -0.0025, "eje_individual": 0.0109, "eje_rotura_lineas": 0.0006, "eje_amplitud_centro": 0.0019, "eje_profundidad_espalda": -0.0202, "eje_robo_alto": -0.0085, "eje_aereo_segunda": -0.003}, "Ñublense": {"eje_verticalidad": 0.0015, "eje_elaboracion": -0.0313, "eje_individual": -0.0441, "eje_rotura_lineas": -0.0401, "eje_amplitud_centro": -0.0271, "eje_profundidad_espalda": -0.0457, "eje_robo_alto": 0.0554, "eje_aereo_segunda": 0.0266}}, "team_eje_norm_con": {"Audax Italiano": {"eje_verticalidad": -0.0159, "eje_elaboracion": 0.0057, "eje_individual": -0.0063, "eje_rotura_lineas": 0.0008, "eje_amplitud_centro": 0.0132, "eje_profundidad_espalda": 0.0156, "eje_robo_alto": 0.0226, "eje_aereo_segunda": 0.0033}, "Cobresal": {"eje_verticalidad": -0.1062, "eje_elaboracion": 0.1113, "eje_individual": 0.0392, "eje_rotura_lineas": 0.0697, "eje_amplitud_centro": 0.0123, "eje_profundidad_espalda": 0.049, "eje_robo_alto": 0.0734, "eje_aereo_segunda": -0.0395}, "Colo Colo": {"eje_verticalidad": 0.0789, "eje_elaboracion": -0.0881, "eje_individual": -0.026, "eje_rotura_lineas": -0.0011, "eje_amplitud_centro": -0.0008, "eje_profundidad_espalda": -0.045, "eje_robo_alto": -0.0736, "eje_aereo_segunda": 0.0152}, "Coquimbo Unido": {"eje_verticalidad": -0.0043, "eje_elaboracion": -0.0271, "eje_individual": -0.0184, "eje_rotura_lineas": -0.0422, "eje_amplitud_centro": -0.0324, "eje_profundidad_espalda": -0.0717, "eje_robo_alto": -0.0558, "eje_aereo_segunda": 0.0025}, "Deportes Concepción": {"eje_verticalidad": -0.0316, "eje_elaboracion": 0.0376, "eje_individual": 0.0326, "eje_rotura_lineas": 0.0061, "eje_amplitud_centro": 0.0117, "eje_profundidad_espalda": -0.0017, "eje_robo_alto": -0.0065, "eje_aereo_segunda": 0.0015}, "Deportes Limache": {"eje_verticalidad": -0.1052, "eje_elaboracion": 0.0571, "eje_individual": -0.0061, "eje_rotura_lineas": 0.0575, "eje_amplitud_centro": 0.0157, "eje_profundidad_espalda": 0.056, "eje_robo_alto": 0.0257, "eje_aereo_segunda": -0.0122}, "Everton": {"eje_verticalidad": -0.0182, "eje_elaboracion": 0.0025, "eje_individual": -0.0056, "eje_rotura_lineas": -0.0051, "eje_amplitud_centro": 0.0053, "eje_profundidad_espalda": 0.023, "eje_robo_alto": -0.013, "eje_aereo_segunda": 0.0066}, "Huachipato": {"eje_verticalidad": -0.0538, "eje_elaboracion": -0.0034, "eje_individual": 0.0311, "eje_rotura_lineas": -0.0087, "eje_amplitud_centro": 0.0198, "eje_profundidad_espalda": 0.0134, "eje_robo_alto": 0.0164, "eje_aereo_segunda": -0.0073}, "La Serena": {"eje_verticalidad": -0.027, "eje_elaboracion": -0.0434, "eje_individual": -0.0019, "eje_rotura_lineas": -0.0255, "eje_amplitud_centro": -0.035, "eje_profundidad_espalda": 0.0306, "eje_robo_alto": 0.0361, "eje_aereo_segunda": 0.0168}, "O'Higgins": {"eje_verticalidad": -0.0112, "eje_elaboracion": 0.0215, "eje_individual": -0.0223, "eje_rotura_lineas": 0.025, "eje_amplitud_centro": 0.0169, "eje_profundidad_espalda": 0.0351, "eje_robo_alto": -0.0089, "eje_aereo_segunda": 0.0052}, "Palestino": {"eje_verticalidad": -0.0349, "eje_elaboracion": -0.0157, "eje_individual": -0.0071, "eje_rotura_lineas": -0.0244, "eje_amplitud_centro": -0.0047, "eje_profundidad_espalda": 0.0035, "eje_robo_alto": -0.0015, "eje_aereo_segunda": -0.0012}, "Universidad Católica": {"eje_verticalidad": 0.047, "eje_elaboracion": -0.042, "eje_individual": -0.0038, "eje_rotura_lineas": -0.0271, "eje_amplitud_centro": 0.0288, "eje_profundidad_espalda": -0.0121, "eje_robo_alto": -0.0411, "eje_aereo_segunda": -0.0084}, "Universidad Concepción": {"eje_verticalidad": -0.0418, "eje_elaboracion": 0.0391, "eje_individual": -0.0008, "eje_rotura_lineas": 0.0033, "eje_amplitud_centro": 0.0031, "eje_profundidad_espalda": -0.0331, "eje_robo_alto": 0.0012, "eje_aereo_segunda": 0.0184}, "Universidad de Chile": {"eje_verticalidad": 0.0296, "eje_elaboracion": -0.0992, "eje_individual": -0.0219, "eje_rotura_lineas": -0.0302, "eje_amplitud_centro": -0.0222, "eje_profundidad_espalda": -0.0015, "eje_robo_alto": -0.0066, "eje_aereo_segunda": 0.0254}, "Unión La Calera": {"eje_verticalidad": -0.0283, "eje_elaboracion": 0.0001, "eje_individual": 0.0094, "eje_rotura_lineas": -0.0029, "eje_amplitud_centro": -0.0136, "eje_profundidad_espalda": 0.0032, "eje_robo_alto": 0.0102, "eje_aereo_segunda": -0.0189}, "Ñublense": {"eje_verticalidad": -0.059, "eje_elaboracion": 0.061, "eje_individual": -0.0035, "eje_rotura_lineas": 0.0227, "eje_amplitud_centro": -0.0071, "eje_profundidad_espalda": -0.0346, "eje_robo_alto": -0.035, "eje_aereo_segunda": -0.0132}}}
|
vendor/data/ejes/chile-primera/26/team_profiles.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:03d6388ad97aacde9c49d052b433fa269ef0a16e2d90344b00de75db7e05f986
|
| 3 |
+
size 8814
|
vendor/data/ejes/croatia-prva-hnl/25-26/ejes_definition.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
|
vendor/data/ejes/croatia-prva-hnl/25-26/match_team_ejes.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0e6aada718255c12ca8205e1904e94fc72f134a5f72a44bca6198347f5f03817
|
| 3 |
+
size 47125
|
vendor/data/ejes/croatia-prva-hnl/25-26/match_team_vars.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:290162c5b61e671bd461c9d4cbed37602a53a899538156b1d0553179946c8162
|
| 3 |
+
size 175787
|
vendor/data/ejes/croatia-prva-hnl/25-26/predictor.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": {"gen": 0.9111, "con": 0.5055, "intercept": 0.01}, "elaboracion": {"gen": 0.9404, "con": 0.7356, "intercept": 0.0004}, "individual": {"gen": 0.8509, "con": 0.7421, "intercept": -0.0}, "rotura_lineas": {"gen": 0.8943, "con": 0.6989, "intercept": -0.0007}, "amplitud_centro": {"gen": 0.6994, "con": 0.3753, "intercept": -0.0}, "profundidad_espalda": {"gen": 0.7644, "con": 0.571, "intercept": -0.0002}, "robo_alto": {"gen": 0.8209, "con": 0.7108, "intercept": 0.0028}, "aereo_segunda": {"gen": 0.6731, "con": -0.7095, "intercept": 0.0005}}
|
vendor/data/ejes/croatia-prva-hnl/25-26/scales.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"var_sigma": {"atk_l": 1.8176, "atk_w": 1.1925, "ball_distance": 47.3561, "behind_line_ok": 0.0233, "broke_last_line": 0.0189, "broke_second_last": 0.042, "cross_pvadded_max": 0.0015, "dang_runs": 0.073, "deep_completions": 0.0974, "def_h": 2.869, "dribbles_box": 0.0111, "dribbles_last_third": 0.0257, "duration_s": 18.3278, "hold_max": 1.8779, "hold_mean": 1.0186, "hold_min": 0.9708, "line_breaks": 0.263, "max_x": 3.5705, "n_centros": 0.0509, "n_events": 1.6707, "n_involved": 0.1644, "n_passes": 0.5226, "opt_quality_mean": 0.1198, "paredes": 0.0913, "pass_options_mean": 2.0767, "passes_behind_line": 0.0429, "pct_adentro": 0.037, "pct_afuera": 0.0343, "pct_cortos": 0.049, "pct_headpass": 0.0146, "pct_largos": 0.0446, "pct_launch": 0.0329, "pct_layoff": 0.0056, "pct_medios": 0.0439, "pct_switch": 0.0057, "pct_through": 0.0049, "pct_verticales": 0.053, "pelotazos_espalda": 0.0355, "press_final": 0.3718, "press_media": 0.2402, "prog_x": 2.6282, "start_x": 4.3336, "starts_from_dispossess": 0.0175, "takeons_ok": 0.0247, "tempo": 0.0389, "transition_speed": 0.667, "verticalidad_media": 0.0635}, "eje_sigma": {"eje_verticalidad": 0.1086, "eje_elaboracion": 0.0889, "eje_individual": 0.0726, "eje_rotura_lineas": 0.0636, "eje_amplitud_centro": 0.0583, "eje_profundidad_espalda": 0.0899, "eje_robo_alto": 0.0936, "eje_aereo_segunda": 0.0657}, "eje_match_mean": {"eje_verticalidad": -0.0241, "eje_elaboracion": -0.0006, "eje_individual": 0.0, "eje_rotura_lineas": 0.0013, "eje_amplitud_centro": 0.0004, "eje_profundidad_espalda": 0.0005, "eje_robo_alto": -0.0053, "eje_aereo_segunda": 0.0005}, "eje_match_std": {"eje_verticalidad": 0.1256, "eje_elaboracion": 0.111, "eje_individual": 0.0797, "eje_rotura_lineas": 0.0711, "eje_amplitud_centro": 0.0609, "eje_profundidad_espalda": 0.0953, "eje_robo_alto": 0.1024, "eje_aereo_segunda": 0.0688}, "team_var_norm": {"Dinamo Zagreb": {"atk_l": 42.4246, "atk_w": 32.7874, "ball_distance": 164.8156, "behind_line_ok": 0.0639, "broke_last_line": 0.0445, "broke_second_last": 0.1859, "cross_pvadded_max": 0.0012, "dang_runs": 0.1875, "deep_completions": 0.4438, "def_h": 29.5684, "dribbles_box": 0.0209, "dribbles_last_third": 0.0828, "duration_s": 35.4913, "hold_max": 9.3737, "hold_mean": 5.3358, "hold_min": 3.1541, "line_breaks": 0.8073, "max_x": 70.1149, "n_centros": 0.1352, "n_events": 6.6743, "n_involved": 1.9778, "n_passes": 3.7185, "opt_quality_mean": 0.0774, "paredes": 0.4098, "pass_options_mean": 9.0545, "passes_behind_line": 0.1275, "pct_adentro": 0.5181, "pct_afuera": 0.3982, "pct_cortos": 0.4225, "pct_headpass": 0.0425, "pct_largos": 0.1627, "pct_launch": 0.0591, "pct_layoff": 0.0137, "pct_medios": 0.3319, "pct_switch": 0.0041, "pct_through": 0.0033, "pct_verticales": 0.439, "pelotazos_espalda": 0.0852, "press_final": 2.624, "press_media": 1.8893, "prog_x": 23.0827, "start_x": 48.2758, "starts_from_dispossess": 0.0443, "takeons_ok": 0.0646, "tempo": 0.3666, "transition_speed": 2.7394, "verticalidad_media": 0.2734}, "HNK Gorica": {"atk_l": 40.5163, "atk_w": 33.5408, "ball_distance": 118.4875, "behind_line_ok": 0.0487, "broke_last_line": 0.0337, "broke_second_last": 0.1396, "cross_pvadded_max": 0.0013, "dang_runs": 0.1341, "deep_completions": 0.2802, "def_h": 33.0021, "dribbles_box": 0.0094, "dribbles_last_third": 0.0488, "duration_s": 18.0109, "hold_max": 10.509, "hold_mean": 6.0097, "hold_min": 3.5591, "line_breaks": 0.5998, "max_x": 66.447, "n_centros": 0.1264, "n_events": 4.8216, "n_involved": 1.9002, "n_passes": 3.0039, "opt_quality_mean": -0.0362, "paredes": 0.2681, "pass_options_mean": 8.9093, "passes_behind_line": 0.1275, "pct_adentro": 0.5056, "pct_afuera": 0.4097, "pct_cortos": 0.3866, "pct_headpass": 0.0449, "pct_largos": 0.1979, "pct_launch": 0.0956, "pct_layoff": 0.0149, "pct_medios": 0.3324, "pct_switch": 0.0092, "pct_through": 0.0036, "pct_verticales": 0.4927, "pelotazos_espalda": 0.0943, "press_final": 2.4119, "press_media": 1.7761, "prog_x": 24.7957, "start_x": 42.7009, "starts_from_dispossess": 0.0428, "takeons_ok": 0.0491, "tempo": 0.3903, "transition_speed": 3.5486, "verticalidad_media": 0.3506}, "Hajduk Split": {"atk_l": 41.7601, "atk_w": 33.6359, "ball_distance": 152.3179, "behind_line_ok": 0.0529, "broke_last_line": 0.0392, "broke_second_last": 0.177, "cross_pvadded_max": 0.0021, "dang_runs": 0.1649, "deep_completions": 0.3563, "def_h": 31.052, "dribbles_box": 0.0149, "dribbles_last_third": 0.0663, "duration_s": 42.8338, "hold_max": 10.1981, "hold_mean": 5.3542, "hold_min": 2.9621, "line_breaks": 0.8188, "max_x": 68.7552, "n_centros": 0.1362, "n_events": 7.1994, "n_involved": 1.9457, "n_passes": 3.5821, "opt_quality_mean": 0.0773, "paredes": 0.323, "pass_options_mean": 9.0586, "passes_behind_line": 0.1114, "pct_adentro": 0.5227, "pct_afuera": 0.3958, "pct_cortos": 0.443, "pct_headpass": 0.0501, "pct_largos": 0.1604, "pct_launch": 0.0674, "pct_layoff": 0.0128, "pct_medios": 0.3162, "pct_switch": 0.0047, "pct_through": 0.0048, "pct_verticales": 0.4587, "pelotazos_espalda": 0.0712, "press_final": 2.5798, "press_media": 1.8273, "prog_x": 24.3882, "start_x": 45.4233, "starts_from_dispossess": 0.0466, "takeons_ok": 0.0559, "tempo": 0.3807, "transition_speed": 3.2161, "verticalidad_media": 0.31}, "Istra 1961": {"atk_l": 40.7549, "atk_w": 33.1972, "ball_distance": 114.0813, "behind_line_ok": 0.0483, "broke_last_line": 0.0336, "broke_second_last": 0.1566, "cross_pvadded_max": 0.0009, "dang_runs": 0.1184, "deep_completions": 0.3036, "def_h": 32.7393, "dribbles_box": 0.0102, "dribbles_last_third": 0.051, "duration_s": 16.796, "hold_max": 9.9086, "hold_mean": 5.8025, "hold_min": 3.4452, "line_breaks": 0.5812, "max_x": 66.6883, "n_centros": 0.1145, "n_events": 4.6491, "n_involved": 1.8564, "n_passes": 3.0602, "opt_quality_mean": -0.038, "paredes": 0.2752, "pass_options_mean": 8.1355, "passes_behind_line": 0.1273, "pct_adentro": 0.5075, "pct_afuera": 0.4121, "pct_cortos": 0.4058, "pct_headpass": 0.043, "pct_largos": 0.1944, "pct_launch": 0.0687, "pct_layoff": 0.0125, "pct_medios": 0.3208, "pct_switch": 0.0054, "pct_through": 0.0034, "pct_verticales": 0.4887, "pelotazos_espalda": 0.0949, "press_final": 2.5603, "press_media": 1.7465, "prog_x": 24.6617, "start_x": 43.0138, "starts_from_dispossess": 0.0413, "takeons_ok": 0.0429, "tempo": 0.3879, "transition_speed": 3.5099, "verticalidad_media": 0.3408}, "Lokomotiva Zagreb": {"atk_l": 42.4263, "atk_w": 32.7567, "ball_distance": 103.8154, "behind_line_ok": 0.0443, "broke_last_line": 0.0334, "broke_second_last": 0.1355, "cross_pvadded_max": 0.0018, "dang_runs": 0.0977, "deep_completions": 0.2809, "def_h": 32.1845, "dribbles_box": 0.0093, "dribbles_last_third": 0.0536, "duration_s": 28.6419, "hold_max": 10.3395, "hold_mean": 6.0333, "hold_min": 3.6206, "line_breaks": 0.5046, "max_x": 66.88, "n_centros": 0.1265, "n_events": 5.6126, "n_involved": 1.7399, "n_passes": 2.9817, "opt_quality_mean": -0.03, "paredes": 0.2548, "pass_options_mean": 7.9807, "passes_behind_line": 0.1064, "pct_adentro": 0.507, "pct_afuera": 0.4021, "pct_cortos": 0.3775, "pct_headpass": 0.0503, "pct_largos": 0.1993, "pct_launch": 0.0749, "pct_layoff": 0.0084, "pct_medios": 0.3333, "pct_switch": 0.0082, "pct_through": 0.0039, "pct_verticales": 0.4789, "pelotazos_espalda": 0.079, "press_final": 2.4003, "press_media": 1.749, "prog_x": 24.1815, "start_x": 43.6676, "starts_from_dispossess": 0.0385, "takeons_ok": 0.0531, "tempo": 0.3608, "transition_speed": 3.4854, "verticalidad_media": 0.3475}, "Osijek": {"atk_l": 41.2629, "atk_w": 32.6108, "ball_distance": 115.2046, "behind_line_ok": 0.0465, "broke_last_line": 0.0338, "broke_second_last": 0.1293, "cross_pvadded_max": 0.0006, "dang_runs": 0.1048, "deep_completions": 0.2918, "def_h": 31.8486, "dribbles_box": 0.0139, "dribbles_last_third": 0.0648, "duration_s": 29.9431, "hold_max": 10.4294, "hold_mean": 5.956, "hold_min": 3.7459, "line_breaks": 0.557, "max_x": 67.3762, "n_centros": 0.1274, "n_events": 5.8294, "n_involved": 1.8863, "n_passes": 3.0274, "opt_quality_mean": 0.0196, "paredes": 0.2606, "pass_options_mean": 8.4183, "passes_behind_line": 0.113, "pct_adentro": 0.5125, "pct_afuera": 0.3962, "pct_cortos": 0.3961, "pct_headpass": 0.0464, "pct_largos": 0.205, "pct_launch": 0.0829, "pct_layoff": 0.012, "pct_medios": 0.3083, "pct_switch": 0.0053, "pct_through": 0.0043, "pct_verticales": 0.4718, "pelotazos_espalda": 0.0775, "press_final": 2.3735, "press_media": 1.6907, "prog_x": 23.8692, "start_x": 44.5967, "starts_from_dispossess": 0.0474, "takeons_ok": 0.0488, "tempo": 0.3737, "transition_speed": 3.3841, "verticalidad_media": 0.3446}, "Rijeka": {"atk_l": 41.6263, "atk_w": 33.6377, "ball_distance": 124.5959, "behind_line_ok": 0.0526, "broke_last_line": 0.04, "broke_second_last": 0.1429, "cross_pvadded_max": 0.0014, "dang_runs": 0.1355, "deep_completions": 0.3585, "def_h": 29.7031, "dribbles_box": 0.0143, "dribbles_last_third": 0.0646, "duration_s": 40.9686, "hold_max": 11.1921, "hold_mean": 6.1875, "hold_min": 3.8242, "line_breaks": 0.5408, "max_x": 70.2048, "n_centros": 0.1521, "n_events": 6.7681, "n_involved": 1.8223, "n_passes": 3.1599, "opt_quality_mean": 0.047, "paredes": 0.2849, "pass_options_mean": 8.5511, "passes_behind_line": 0.1357, "pct_adentro": 0.5129, "pct_afuera": 0.4012, "pct_cortos": 0.3561, "pct_headpass": 0.0411, "pct_largos": 0.2146, "pct_launch": 0.0924, "pct_layoff": 0.0094, "pct_medios": 0.3442, "pct_switch": 0.0077, "pct_through": 0.0036, "pct_verticales": 0.4663, "pelotazos_espalda": 0.1016, "press_final": 2.4892, "press_media": 1.7592, "prog_x": 24.6455, "start_x": 46.681, "starts_from_dispossess": 0.0368, "takeons_ok": 0.0436, "tempo": 0.3689, "transition_speed": 3.355, "verticalidad_media": 0.3137}, "Slaven Koprivnica": {"atk_l": 40.7861, "atk_w": 33.0124, "ball_distance": 101.2788, "behind_line_ok": 0.0399, "broke_last_line": 0.0258, "broke_second_last": 0.1459, "cross_pvadded_max": 0.0012, "dang_runs": 0.0903, "deep_completions": 0.2693, "def_h": 32.069, "dribbles_box": 0.0078, "dribbles_last_third": 0.0458, "duration_s": 29.3113, "hold_max": 10.1125, "hold_mean": 6.0172, "hold_min": 3.7194, "line_breaks": 0.5064, "max_x": 67.8112, "n_centros": 0.123, "n_events": 5.6835, "n_involved": 1.8047, "n_passes": 2.8942, "opt_quality_mean": -0.0384, "paredes": 0.2294, "pass_options_mean": 8.1679, "passes_behind_line": 0.1244, "pct_adentro": 0.5136, "pct_afuera": 0.3996, "pct_cortos": 0.3877, "pct_headpass": 0.0567, "pct_largos": 0.2072, "pct_launch": 0.0875, "pct_layoff": 0.0119, "pct_medios": 0.3194, "pct_switch": 0.0051, "pct_through": 0.0029, "pct_verticales": 0.5006, "pelotazos_espalda": 0.0947, "press_final": 2.5313, "press_media": 1.7819, "prog_x": 24.8987, "start_x": 43.9997, "starts_from_dispossess": 0.043, "takeons_ok": 0.0454, "tempo": 0.373, "transition_speed": 3.4729, "verticalidad_media": 0.3632}, "Varaždin": {"atk_l": 43.0126, "atk_w": 33.3729, "ball_distance": 105.5683, "behind_line_ok": 0.0441, "broke_last_line": 0.0288, "broke_second_last": 0.1386, "cross_pvadded_max": 0.0007, "dang_runs": 0.0884, "deep_completions": 0.2567, "def_h": 33.457, "dribbles_box": 0.0106, "dribbles_last_third": 0.0543, "duration_s": 18.2513, "hold_max": 10.2746, "hold_mean": 5.8568, "hold_min": 3.4473, "line_breaks": 0.5446, "max_x": 65.4646, "n_centros": 0.1083, "n_events": 4.6592, "n_involved": 1.8283, "n_passes": 2.8105, "opt_quality_mean": -0.0872, "paredes": 0.2126, "pass_options_mean": 8.4033, "passes_behind_line": 0.1173, "pct_adentro": 0.5007, "pct_afuera": 0.4172, "pct_cortos": 0.3698, "pct_headpass": 0.0424, "pct_largos": 0.2261, "pct_launch": 0.0966, "pct_layoff": 0.0116, "pct_medios": 0.3229, "pct_switch": 0.0116, "pct_through": 0.0042, "pct_verticales": 0.5131, "pelotazos_espalda": 0.0892, "press_final": 2.5694, "press_media": 1.7463, "prog_x": 25.2534, "start_x": 41.2243, "starts_from_dispossess": 0.0407, "takeons_ok": 0.0508, "tempo": 0.3802, "transition_speed": 3.7637, "verticalidad_media": 0.3819}, "Vukovar": {"atk_l": 40.0575, "atk_w": 32.78, "ball_distance": 88.7234, "behind_line_ok": 0.0412, "broke_last_line": 0.0266, "broke_second_last": 0.1237, "cross_pvadded_max": 0.0008, "dang_runs": 0.1016, "deep_completions": 0.246, "def_h": 32.6039, "dribbles_box": 0.01, "dribbles_last_third": 0.0446, "duration_s": 18.4906, "hold_max": 10.5258, "hold_mean": 6.5581, "hold_min": 4.227, "line_breaks": 0.4033, "max_x": 66.9836, "n_centros": 0.1162, "n_events": 4.3802, "n_involved": 1.7039, "n_passes": 2.4768, "opt_quality_mean": -0.0336, "paredes": 0.1808, "pass_options_mean": 8.1944, "passes_behind_line": 0.115, "pct_adentro": 0.5042, "pct_afuera": 0.4061, "pct_cortos": 0.3465, "pct_headpass": 0.0505, "pct_largos": 0.2266, "pct_launch": 0.0973, "pct_layoff": 0.0094, "pct_medios": 0.3381, "pct_switch": 0.0042, "pct_through": 0.0047, "pct_verticales": 0.5366, "pelotazos_espalda": 0.0888, "press_final": 2.5255, "press_media": 1.7247, "prog_x": 25.5928, "start_x": 42.1749, "starts_from_dispossess": 0.0384, "takeons_ok": 0.0514, "tempo": 0.3633, "transition_speed": 3.9231, "verticalidad_media": 0.42}}, "team_eje_norm_gen": {"Dinamo Zagreb": {"eje_verticalidad": -0.1472, "eje_elaboracion": 0.1256, "eje_individual": 0.0804, "eje_rotura_lineas": 0.0617, "eje_amplitud_centro": -0.0106, "eje_profundidad_espalda": 0.0676, "eje_robo_alto": 0.0783, "eje_aereo_segunda": -0.0291}, "HNK Gorica": {"eje_verticalidad": -0.0112, "eje_elaboracion": -0.0152, "eje_individual": -0.0127, "eje_rotura_lineas": -0.0039, "eje_amplitud_centro": 0.0209, "eje_profundidad_espalda": 0.0022, "eje_robo_alto": -0.0312, "eje_aereo_segunda": 0.0328}, "Hajduk Split": {"eje_verticalidad": -0.0965, "eje_elaboracion": 0.1031, "eje_individual": 0.034, "eje_rotura_lineas": 0.0578, "eje_amplitud_centro": -0.0084, "eje_profundidad_espalda": 0.0008, "eje_robo_alto": 0.0298, "eje_aereo_segunda": -0.0066}, "Istra 1961": {"eje_verticalidad": -0.0232, "eje_elaboracion": 0.0032, "eje_individual": -0.0203, "eje_rotura_lineas": 0.0034, "eje_amplitud_centro": -0.0103, "eje_profundidad_espalda": 0.0101, "eje_robo_alto": -0.0291, "eje_aereo_segunda": -0.0213}, "Lokomotiva Zagreb": {"eje_verticalidad": -0.027, "eje_elaboracion": -0.0198, "eje_individual": -0.0156, "eje_rotura_lineas": -0.0161, "eje_amplitud_centro": 0.0084, "eje_profundidad_espalda": -0.0317, "eje_robo_alto": -0.0236, "eje_aereo_segunda": -0.0203}, "Osijek": {"eje_verticalidad": -0.0333, "eje_elaboracion": -0.0011, "eje_individual": 0.0036, "eje_rotura_lineas": -0.0118, "eje_amplitud_centro": -0.0134, "eje_profundidad_espalda": -0.022, "eje_robo_alto": 0.0163, "eje_aereo_segunda": 0.0024}, "Rijeka": {"eje_verticalidad": -0.0433, "eje_elaboracion": -0.0007, "eje_individual": 0.0087, "eje_rotura_lineas": 0.0003, "eje_amplitud_centro": 0.03, "eje_profundidad_espalda": 0.0461, "eje_robo_alto": 0.0295, "eje_aereo_segunda": -0.0097}, "Slaven Koprivnica": {"eje_verticalidad": 0.0042, "eje_elaboracion": -0.0282, "eje_individual": -0.0371, "eje_rotura_lineas": -0.0243, "eje_amplitud_centro": -0.0156, "eje_profundidad_espalda": -0.0133, "eje_robo_alto": -0.0061, "eje_aereo_segunda": 0.0293}, "Varaždin": {"eje_verticalidad": 0.0481, "eje_elaboracion": -0.0606, "eje_individual": -0.0173, "eje_rotura_lineas": -0.0143, "eje_amplitud_centro": 0.0243, "eje_profundidad_espalda": -0.0231, "eje_robo_alto": -0.0646, "eje_aereo_segunda": 0.0111}, "Vukovar": {"eje_verticalidad": 0.0886, "eje_elaboracion": -0.112, "eje_individual": -0.0235, "eje_rotura_lineas": -0.0403, "eje_amplitud_centro": -0.0216, "eje_profundidad_espalda": -0.0321, "eje_robo_alto": -0.0524, "eje_aereo_segunda": 0.0162}}, "team_eje_norm_con": {"Dinamo Zagreb": {"eje_verticalidad": 0.0037, "eje_elaboracion": -0.0121, "eje_individual": -0.0362, "eje_rotura_lineas": 0.0049, "eje_amplitud_centro": -0.007, "eje_profundidad_espalda": -0.0269, "eje_robo_alto": -0.0699, "eje_aereo_segunda": -0.0126}, "HNK Gorica": {"eje_verticalidad": -0.0591, "eje_elaboracion": 0.0472, "eje_individual": 0.036, "eje_rotura_lineas": 0.0046, "eje_amplitud_centro": 0.0028, "eje_profundidad_espalda": 0.0256, "eje_robo_alto": 0.0325, "eje_aereo_segunda": -0.0021}, "Hajduk Split": {"eje_verticalidad": 0.0183, "eje_elaboracion": -0.0784, "eje_individual": 0.0078, "eje_rotura_lineas": -0.009, "eje_amplitud_centro": 0.0126, "eje_profundidad_espalda": -0.0049, "eje_robo_alto": -0.0328, "eje_aereo_segunda": -0.0016}, "Istra 1961": {"eje_verticalidad": -0.0394, "eje_elaboracion": 0.0096, "eje_individual": 0.0244, "eje_rotura_lineas": 0.0105, "eje_amplitud_centro": 0.0253, "eje_profundidad_espalda": 0.0081, "eje_robo_alto": 0.0092, "eje_aereo_segunda": 0.002}, "Lokomotiva Zagreb": {"eje_verticalidad": -0.0192, "eje_elaboracion": -0.0129, "eje_individual": -0.0318, "eje_rotura_lineas": 0.0182, "eje_amplitud_centro": -0.0193, "eje_profundidad_espalda": 0.0131, "eje_robo_alto": -0.0006, "eje_aereo_segunda": 0.006}, "Osijek": {"eje_verticalidad": -0.0388, "eje_elaboracion": -0.0029, "eje_individual": -0.0001, "eje_rotura_lineas": -0.0125, "eje_amplitud_centro": 0.0031, "eje_profundidad_espalda": -0.0137, "eje_robo_alto": 0.0106, "eje_aereo_segunda": -0.0026}, "Rijeka": {"eje_verticalidad": 0.018, "eje_elaboracion": -0.0317, "eje_individual": -0.0406, "eje_rotura_lineas": -0.012, "eje_amplitud_centro": 0.0101, "eje_profundidad_espalda": -0.0113, "eje_robo_alto": -0.0511, "eje_aereo_segunda": 0.0074}, "Slaven Koprivnica": {"eje_verticalidad": -0.0112, "eje_elaboracion": -0.0102, "eje_individual": 0.0184, "eje_rotura_lineas": -0.0112, "eje_amplitud_centro": -0.0071, "eje_profundidad_espalda": -0.0338, "eje_robo_alto": -0.0074, "eje_aereo_segunda": 0.0127}, "Varaždin": {"eje_verticalidad": -0.075, "eje_elaboracion": 0.042, "eje_individual": 0.0015, "eje_rotura_lineas": -0.0278, "eje_amplitud_centro": -0.011, "eje_profundidad_espalda": -0.0032, "eje_robo_alto": 0.0403, "eje_aereo_segunda": -0.0138}, "Vukovar": {"eje_verticalidad": -0.0383, "eje_elaboracion": 0.0437, "eje_individual": 0.0208, "eje_rotura_lineas": 0.0469, "eje_amplitud_centro": -0.0056, "eje_profundidad_espalda": 0.0516, "eje_robo_alto": 0.0161, "eje_aereo_segunda": 0.0091}}}
|
vendor/data/ejes/croatia-prva-hnl/25-26/team_profiles.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d80d76bdd4cb6bcc9ba5f06cec6e394c33f2ed2c513e12b46d57935c94737b8b
|
| 3 |
+
size 7914
|
vendor/data/ejes/danish-superligaen/25-26/ejes_definition.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
|
vendor/data/ejes/danish-superligaen/25-26/match_team_ejes.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:23503a6d93ead56416b9f370e15abf3ca62fbdee68ae8e0875793b1c31f7bf9e
|
| 3 |
+
size 49988
|
vendor/data/ejes/danish-superligaen/25-26/match_team_vars.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f01128217028e789feecd77943816aa4ebfb613ebe243089bb68c3e594bd6774
|
| 3 |
+
size 187387
|
vendor/data/ejes/danish-superligaen/25-26/predictor.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": {"gen": 0.8859, "con": 0.8386, "intercept": 0.0197}, "elaboracion": {"gen": 0.9849, "con": 0.9404, "intercept": -0.0056}, "individual": {"gen": 0.7376, "con": -0.4994, "intercept": 0.0004}, "rotura_lineas": {"gen": 0.9048, "con": 0.7033, "intercept": -0.002}, "amplitud_centro": {"gen": 0.6802, "con": 0.7225, "intercept": 0.0002}, "profundidad_espalda": {"gen": 0.6216, "con": 0.623, "intercept": -0.0005}, "robo_alto": {"gen": 0.8193, "con": 0.7607, "intercept": 0.0033}, "aereo_segunda": {"gen": 0.9081, "con": 0.8347, "intercept": 0.0013}}
|
vendor/data/ejes/danish-superligaen/25-26/scales.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"var_sigma": {"atk_l": 1.9472, "atk_w": 1.4495, "ball_distance": 69.1811, "behind_line_ok": 0.0294, "broke_last_line": 0.0188, "broke_second_last": 0.0479, "cross_pvadded_max": 0.0015, "dang_runs": 0.1142, "deep_completions": 0.1558, "def_h": 3.403, "dribbles_box": 0.0104, "dribbles_last_third": 0.0256, "duration_s": 20.2317, "hold_max": 1.6684, "hold_mean": 0.9373, "hold_min": 0.9147, "line_breaks": 0.3812, "max_x": 4.3575, "n_centros": 0.0475, "n_events": 1.8131, "n_involved": 0.206, "n_passes": 0.7977, "opt_quality_mean": 0.1606, "paredes": 0.155, "pass_options_mean": 1.4721, "passes_behind_line": 0.0414, "pct_adentro": 0.0352, "pct_afuera": 0.0327, "pct_cortos": 0.0493, "pct_headpass": 0.0152, "pct_largos": 0.0426, "pct_launch": 0.0321, "pct_layoff": 0.005, "pct_medios": 0.0417, "pct_switch": 0.0048, "pct_through": 0.0038, "pct_verticales": 0.0539, "pelotazos_espalda": 0.0333, "press_final": 0.3673, "press_media": 0.2301, "prog_x": 2.3103, "start_x": 4.7721, "starts_from_dispossess": 0.0185, "takeons_ok": 0.0222, "tempo": 0.0363, "transition_speed": 0.7368, "verticalidad_media": 0.0663}, "eje_sigma": {"eje_verticalidad": 0.1169, "eje_elaboracion": 0.1146, "eje_individual": 0.0688, "eje_rotura_lineas": 0.0705, "eje_amplitud_centro": 0.0556, "eje_profundidad_espalda": 0.0935, "eje_robo_alto": 0.0999, "eje_aereo_segunda": 0.0694}, "eje_match_mean": {"eje_verticalidad": -0.0272, "eje_elaboracion": 0.0061, "eje_individual": 0.0005, "eje_rotura_lineas": 0.0032, "eje_amplitud_centro": -0.0004, "eje_profundidad_espalda": 0.0021, "eje_robo_alto": -0.0057, "eje_aereo_segunda": -0.0018}, "eje_match_std": {"eje_verticalidad": 0.1287, "eje_elaboracion": 0.1353, "eje_individual": 0.0732, "eje_rotura_lineas": 0.0782, "eje_amplitud_centro": 0.0584, "eje_profundidad_espalda": 0.0972, "eje_robo_alto": 0.109, "eje_aereo_segunda": 0.0752}, "team_var_norm": {"AGF": {"atk_l": 42.5144, "atk_w": 31.2024, "ball_distance": 141.9184, "behind_line_ok": 0.0602, "broke_last_line": 0.0364, "broke_second_last": 0.1627, "cross_pvadded_max": 0.001, "dang_runs": 0.1863, "deep_completions": 0.4318, "def_h": 30.9677, "dribbles_box": 0.015, "dribbles_last_third": 0.0568, "duration_s": 24.4235, "hold_max": 10.327, "hold_mean": 6.0843, "hold_min": 3.7279, "line_breaks": 0.7769, "max_x": 68.9264, "n_centros": 0.1391, "n_events": 5.597, "n_involved": 1.9419, "n_passes": 3.4854, "opt_quality_mean": 0.1214, "paredes": 0.3594, "pass_options_mean": 8.9105, "passes_behind_line": 0.1283, "pct_adentro": 0.5084, "pct_afuera": 0.3994, "pct_cortos": 0.4036, "pct_headpass": 0.0384, "pct_largos": 0.1673, "pct_launch": 0.082, "pct_layoff": 0.0107, "pct_medios": 0.338, "pct_switch": 0.0065, "pct_through": 0.001, "pct_verticales": 0.446, "pelotazos_espalda": 0.0859, "press_final": 2.7542, "press_media": 2.009, "prog_x": 23.5618, "start_x": 46.4759, "starts_from_dispossess": 0.0506, "takeons_ok": 0.0514, "tempo": 0.3799, "transition_speed": 3.0989, "verticalidad_media": 0.3067}, "Brøndby": {"atk_l": 42.3053, "atk_w": 31.4661, "ball_distance": 133.6061, "behind_line_ok": 0.0599, "broke_last_line": 0.0402, "broke_second_last": 0.1683, "cross_pvadded_max": 0.0014, "dang_runs": 0.1426, "deep_completions": 0.482, "def_h": 31.6842, "dribbles_box": 0.0139, "dribbles_last_third": 0.0614, "duration_s": 25.5811, "hold_max": 9.5022, "hold_mean": 5.3298, "hold_min": 3.0468, "line_breaks": 0.7223, "max_x": 69.2806, "n_centros": 0.131, "n_events": 5.8428, "n_involved": 1.9775, "n_passes": 3.6061, "opt_quality_mean": 0.0969, "paredes": 0.3649, "pass_options_mean": 8.7265, "passes_behind_line": 0.1368, "pct_adentro": 0.5017, "pct_afuera": 0.4157, "pct_cortos": 0.4055, "pct_headpass": 0.0414, "pct_largos": 0.1822, "pct_launch": 0.0643, "pct_layoff": 0.0089, "pct_medios": 0.3311, "pct_switch": 0.0059, "pct_through": 0.0024, "pct_verticales": 0.4622, "pelotazos_espalda": 0.096, "press_final": 2.7537, "press_media": 2.0092, "prog_x": 25.2737, "start_x": 45.0924, "starts_from_dispossess": 0.0447, "takeons_ok": 0.0495, "tempo": 0.3961, "transition_speed": 3.4211, "verticalidad_media": 0.307}, "Fredericia": {"atk_l": 40.2901, "atk_w": 32.0779, "ball_distance": 137.7989, "behind_line_ok": 0.0595, "broke_last_line": 0.0273, "broke_second_last": 0.1662, "cross_pvadded_max": 0.0007, "dang_runs": 0.162, "deep_completions": 0.3591, "def_h": 33.1831, "dribbles_box": 0.011, "dribbles_last_third": 0.0552, "duration_s": 28.6841, "hold_max": 9.5893, "hold_mean": 5.6979, "hold_min": 3.4331, "line_breaks": 0.7455, "max_x": 67.2713, "n_centros": 0.1053, "n_events": 5.7341, "n_involved": 1.8874, "n_passes": 3.2438, "opt_quality_mean": 0.0408, "paredes": 0.3113, "pass_options_mean": 8.8799, "passes_behind_line": 0.1375, "pct_adentro": 0.4971, "pct_afuera": 0.4087, "pct_cortos": 0.3885, "pct_headpass": 0.0377, "pct_largos": 0.2033, "pct_launch": 0.0776, "pct_layoff": 0.0083, "pct_medios": 0.3148, "pct_switch": 0.0049, "pct_through": 0.0009, "pct_verticales": 0.4633, "pelotazos_espalda": 0.1013, "press_final": 2.9641, "press_media": 2.0616, "prog_x": 25.3134, "start_x": 43.219, "starts_from_dispossess": 0.0505, "takeons_ok": 0.0562, "tempo": 0.3796, "transition_speed": 3.5581, "verticalidad_media": 0.326}, "København": {"atk_l": 40.9363, "atk_w": 31.1466, "ball_distance": 177.7517, "behind_line_ok": 0.0653, "broke_last_line": 0.0439, "broke_second_last": 0.1896, "cross_pvadded_max": 0.0019, "dang_runs": 0.1998, "deep_completions": 0.4565, "def_h": 29.664, "dribbles_box": 0.0111, "dribbles_last_third": 0.0569, "duration_s": 32.3262, "hold_max": 9.3877, "hold_mean": 5.287, "hold_min": 3.0318, "line_breaks": 0.8802, "max_x": 71.0977, "n_centros": 0.1195, "n_events": 6.4797, "n_involved": 2.0812, "n_passes": 3.7919, "opt_quality_mean": 0.1589, "paredes": 0.3854, "pass_options_mean": 9.059, "passes_behind_line": 0.1292, "pct_adentro": 0.5123, "pct_afuera": 0.3968, "pct_cortos": 0.394, "pct_headpass": 0.0439, "pct_largos": 0.1764, "pct_launch": 0.0688, "pct_layoff": 0.0112, "pct_medios": 0.3399, "pct_switch": 0.0055, "pct_through": 0.0053, "pct_verticales": 0.4386, "pelotazos_espalda": 0.0797, "press_final": 2.8789, "press_media": 2.086, "prog_x": 23.787, "start_x": 48.7617, "starts_from_dispossess": 0.0481, "takeons_ok": 0.0431, "tempo": 0.397, "transition_speed": 3.1814, "verticalidad_media": 0.2795}, "Midtjylland": {"atk_l": 41.6235, "atk_w": 31.9455, "ball_distance": 142.0143, "behind_line_ok": 0.0499, "broke_last_line": 0.0236, "broke_second_last": 0.1424, "cross_pvadded_max": 0.0012, "dang_runs": 0.1377, "deep_completions": 0.314, "def_h": 30.8129, "dribbles_box": 0.0159, "dribbles_last_third": 0.0726, "duration_s": 26.07, "hold_max": 10.2594, "hold_mean": 6.3888, "hold_min": 4.1698, "line_breaks": 0.645, "max_x": 68.9797, "n_centros": 0.1136, "n_events": 5.4866, "n_involved": 1.8442, "n_passes": 3.0544, "opt_quality_mean": 0.1152, "paredes": 0.2683, "pass_options_mean": 8.8783, "passes_behind_line": 0.128, "pct_adentro": 0.499, "pct_afuera": 0.4051, "pct_cortos": 0.3479, "pct_headpass": 0.0523, "pct_largos": 0.2273, "pct_launch": 0.0779, "pct_layoff": 0.008, "pct_medios": 0.3299, "pct_switch": 0.0103, "pct_through": 0.0029, "pct_verticales": 0.4627, "pelotazos_espalda": 0.0942, "press_final": 2.7787, "press_media": 1.9729, "prog_x": 24.1737, "start_x": 45.836, "starts_from_dispossess": 0.0501, "takeons_ok": 0.0616, "tempo": 0.3452, "transition_speed": 3.292, "verticalidad_media": 0.3402}, "Nordsjælland": {"atk_l": 43.2022, "atk_w": 31.9348, "ball_distance": 228.3753, "behind_line_ok": 0.0686, "broke_last_line": 0.0324, "broke_second_last": 0.186, "cross_pvadded_max": 0.001, "dang_runs": 0.2233, "deep_completions": 0.4374, "def_h": 32.8249, "dribbles_box": 0.0176, "dribbles_last_third": 0.0783, "duration_s": 32.6769, "hold_max": 9.36, "hold_mean": 5.0721, "hold_min": 2.8598, "line_breaks": 1.2298, "max_x": 67.9459, "n_centros": 0.0895, "n_events": 6.9405, "n_involved": 2.1387, "n_passes": 4.5148, "opt_quality_mean": 0.057, "paredes": 0.523, "pass_options_mean": 9.1186, "passes_behind_line": 0.1469, "pct_adentro": 0.4933, "pct_afuera": 0.4214, "pct_cortos": 0.4482, "pct_headpass": 0.0291, "pct_largos": 0.1566, "pct_launch": 0.0578, "pct_layoff": 0.0095, "pct_medios": 0.3107, "pct_switch": 0.0039, "pct_through": 0.0031, "pct_verticales": 0.4392, "pelotazos_espalda": 0.1025, "press_final": 2.8786, "press_media": 1.9851, "prog_x": 25.2285, "start_x": 44.0996, "starts_from_dispossess": 0.0551, "takeons_ok": 0.0523, "tempo": 0.3931, "transition_speed": 2.9833, "verticalidad_media": 0.2834}, "OB": {"atk_l": 41.26, "atk_w": 32.1996, "ball_distance": 153.5897, "behind_line_ok": 0.0505, "broke_last_line": 0.0334, "broke_second_last": 0.1633, "cross_pvadded_max": 0.0015, "dang_runs": 0.1458, "deep_completions": 0.4064, "def_h": 31.8702, "dribbles_box": 0.0101, "dribbles_last_third": 0.0486, "duration_s": 29.7158, "hold_max": 9.5288, "hold_mean": 5.118, "hold_min": 2.7827, "line_breaks": 0.7986, "max_x": 68.1241, "n_centros": 0.124, "n_events": 6.391, "n_involved": 2.0817, "n_passes": 3.7596, "opt_quality_mean": 0.0791, "paredes": 0.4062, "pass_options_mean": 8.939, "passes_behind_line": 0.1148, "pct_adentro": 0.5256, "pct_afuera": 0.3968, "pct_cortos": 0.4442, "pct_headpass": 0.0476, "pct_largos": 0.1658, "pct_launch": 0.0825, "pct_layoff": 0.0097, "pct_medios": 0.314, "pct_switch": 0.0052, "pct_through": 0.0033, "pct_verticales": 0.4625, "pelotazos_espalda": 0.0779, "press_final": 2.7507, "press_media": 2.0132, "prog_x": 23.8947, "start_x": 45.307, "starts_from_dispossess": 0.045, "takeons_ok": 0.0445, "tempo": 0.4341, "transition_speed": 3.5817, "verticalidad_media": 0.3018}, "Randers": {"atk_l": 42.882, "atk_w": 31.7275, "ball_distance": 157.4527, "behind_line_ok": 0.0582, "broke_last_line": 0.0309, "broke_second_last": 0.1813, "cross_pvadded_max": 0.0014, "dang_runs": 0.1732, "deep_completions": 0.3905, "def_h": 31.5147, "dribbles_box": 0.0138, "dribbles_last_third": 0.0604, "duration_s": 26.4978, "hold_max": 9.0873, "hold_mean": 5.1262, "hold_min": 2.9773, "line_breaks": 0.8733, "max_x": 68.213, "n_centros": 0.1272, "n_events": 5.7789, "n_involved": 2.0362, "n_passes": 3.4514, "opt_quality_mean": 0.0614, "paredes": 0.3521, "pass_options_mean": 9.0911, "passes_behind_line": 0.1327, "pct_adentro": 0.5107, "pct_afuera": 0.4097, "pct_cortos": 0.391, "pct_headpass": 0.0469, "pct_largos": 0.1885, "pct_launch": 0.0824, "pct_layoff": 0.0112, "pct_medios": 0.3418, "pct_switch": 0.0054, "pct_through": 0.0026, "pct_verticales": 0.4658, "pelotazos_espalda": 0.0909, "press_final": 2.8328, "press_media": 2.0573, "prog_x": 24.4419, "start_x": 44.8783, "starts_from_dispossess": 0.0509, "takeons_ok": 0.0543, "tempo": 0.4053, "transition_speed": 3.5368, "verticalidad_media": 0.3197}, "Silkeborg": {"atk_l": 46.4199, "atk_w": 32.6698, "ball_distance": 212.9742, "behind_line_ok": 0.0715, "broke_last_line": 0.041, "broke_second_last": 0.1914, "cross_pvadded_max": 0.0006, "dang_runs": 0.4374, "deep_completions": 0.3934, "def_h": 35.7113, "dribbles_box": 0.0094, "dribbles_last_third": 0.0462, "duration_s": 30.6748, "hold_max": 10.1295, "hold_mean": 4.906, "hold_min": 2.5957, "line_breaks": 1.1776, "max_x": 64.0235, "n_centros": 0.0853, "n_events": 6.6893, "n_involved": 2.2248, "n_passes": 4.3768, "opt_quality_mean": -0.0185, "paredes": 0.4596, "pass_options_mean": 8.8738, "passes_behind_line": 0.1438, "pct_adentro": 0.5028, "pct_afuera": 0.428, "pct_cortos": 0.4384, "pct_headpass": 0.0299, "pct_largos": 0.1663, "pct_launch": 0.0609, "pct_layoff": 0.014, "pct_medios": 0.3272, "pct_switch": 0.0041, "pct_through": 0.0017, "pct_verticales": 0.4651, "pelotazos_espalda": 0.0885, "press_final": 2.702, "press_media": 1.9832, "prog_x": 25.4984, "start_x": 39.5511, "starts_from_dispossess": 0.0446, "takeons_ok": 0.0513, "tempo": 0.4299, "transition_speed": 3.4489, "verticalidad_media": 0.3046}, "Sønderjyske": {"atk_l": 41.8197, "atk_w": 32.2228, "ball_distance": 117.0978, "behind_line_ok": 0.0602, "broke_last_line": 0.038, "broke_second_last": 0.1503, "cross_pvadded_max": 0.0011, "dang_runs": 0.1718, "deep_completions": 0.3295, "def_h": 33.0041, "dribbles_box": 0.0095, "dribbles_last_third": 0.0491, "duration_s": 28.2405, "hold_max": 9.9231, "hold_mean": 5.7127, "hold_min": 3.3549, "line_breaks": 0.6003, "max_x": 66.9667, "n_centros": 0.1111, "n_events": 5.6622, "n_involved": 1.9164, "n_passes": 3.0441, "opt_quality_mean": 0.0197, "paredes": 0.2691, "pass_options_mean": 8.8065, "passes_behind_line": 0.1371, "pct_adentro": 0.5049, "pct_afuera": 0.4089, "pct_cortos": 0.3969, "pct_headpass": 0.0497, "pct_largos": 0.2018, "pct_launch": 0.0924, "pct_layoff": 0.009, "pct_medios": 0.3157, "pct_switch": 0.0068, "pct_through": 0.0023, "pct_verticales": 0.5062, "pelotazos_espalda": 0.0972, "press_final": 2.8193, "press_media": 2.0437, "prog_x": 25.9766, "start_x": 42.3066, "starts_from_dispossess": 0.0425, "takeons_ok": 0.0398, "tempo": 0.4245, "transition_speed": 4.3578, "verticalidad_media": 0.3719}, "Vejle": {"atk_l": 40.2767, "atk_w": 31.7558, "ball_distance": 117.3694, "behind_line_ok": 0.049, "broke_last_line": 0.0235, "broke_second_last": 0.1437, "cross_pvadded_max": 0.0011, "dang_runs": 0.1362, "deep_completions": 0.3036, "def_h": 31.4088, "dribbles_box": 0.0094, "dribbles_last_third": 0.0452, "duration_s": 25.9629, "hold_max": 9.8458, "hold_mean": 6.0, "hold_min": 3.8013, "line_breaks": 0.5064, "max_x": 67.9641, "n_centros": 0.1159, "n_events": 5.3979, "n_involved": 1.8193, "n_passes": 2.922, "opt_quality_mean": 0.0625, "paredes": 0.2388, "pass_options_mean": 8.8526, "passes_behind_line": 0.1172, "pct_adentro": 0.5033, "pct_afuera": 0.4125, "pct_cortos": 0.3546, "pct_headpass": 0.0498, "pct_largos": 0.2323, "pct_launch": 0.113, "pct_layoff": 0.0082, "pct_medios": 0.3297, "pct_switch": 0.0058, "pct_through": 0.0019, "pct_verticales": 0.4986, "pelotazos_espalda": 0.0828, "press_final": 2.7766, "press_media": 2.011, "prog_x": 24.718, "start_x": 44.4198, "starts_from_dispossess": 0.0428, "takeons_ok": 0.0447, "tempo": 0.3721, "transition_speed": 3.7348, "verticalidad_media": 0.3686}, "Viborg": {"atk_l": 40.1554, "atk_w": 32.4084, "ball_distance": 136.2064, "behind_line_ok": 0.0561, "broke_last_line": 0.0332, "broke_second_last": 0.1665, "cross_pvadded_max": 0.001, "dang_runs": 0.1517, "deep_completions": 0.3657, "def_h": 31.5382, "dribbles_box": 0.0169, "dribbles_last_third": 0.0696, "duration_s": 35.8475, "hold_max": 10.6146, "hold_mean": 5.8648, "hold_min": 3.579, "line_breaks": 0.7125, "max_x": 68.4933, "n_centros": 0.1153, "n_events": 6.4956, "n_involved": 1.9088, "n_passes": 3.3239, "opt_quality_mean": 0.0667, "paredes": 0.3286, "pass_options_mean": 8.8225, "passes_behind_line": 0.1252, "pct_adentro": 0.5133, "pct_afuera": 0.3913, "pct_cortos": 0.3657, "pct_headpass": 0.0414, "pct_largos": 0.1903, "pct_launch": 0.0887, "pct_layoff": 0.009, "pct_medios": 0.3498, "pct_switch": 0.0042, "pct_through": 0.0031, "pct_verticales": 0.4719, "pelotazos_espalda": 0.0831, "press_final": 2.892, "press_media": 2.0656, "prog_x": 24.5172, "start_x": 45.1594, "starts_from_dispossess": 0.0489, "takeons_ok": 0.0592, "tempo": 0.3591, "transition_speed": 3.3604, "verticalidad_media": 0.3343}}, "team_eje_norm_gen": {"AGF": {"eje_verticalidad": -0.0789, "eje_elaboracion": 0.0035, "eje_individual": 0.0037, "eje_rotura_lineas": -0.0083, "eje_amplitud_centro": 0.0212, "eje_profundidad_espalda": 0.009, "eje_robo_alto": 0.0353, "eje_aereo_segunda": -0.0007}, "Brøndby": {"eje_verticalidad": -0.0418, "eje_elaboracion": 0.0147, "eje_individual": -0.0059, "eje_rotura_lineas": 0.0045, "eje_amplitud_centro": 0.0251, "eje_profundidad_espalda": 0.0374, "eje_robo_alto": -0.004, "eje_aereo_segunda": -0.0299}, "Fredericia": {"eje_verticalidad": -0.0139, "eje_elaboracion": -0.0321, "eje_individual": -0.0066, "eje_rotura_lineas": -0.0222, "eje_amplitud_centro": -0.0146, "eje_profundidad_espalda": 0.008, "eje_robo_alto": -0.0251, "eje_aereo_segunda": -0.0227}, "København": {"eje_verticalidad": -0.0884, "eje_elaboracion": 0.0294, "eje_individual": -0.0099, "eje_rotura_lineas": 0.0548, "eje_amplitud_centro": -0.0072, "eje_profundidad_espalda": 0.0162, "eje_robo_alto": 0.0718, "eje_aereo_segunda": -0.0039}, "Midtjylland": {"eje_verticalidad": 0.0027, "eje_elaboracion": -0.0854, "eje_individual": 0.0212, "eje_rotura_lineas": -0.0372, "eje_amplitud_centro": 0.0245, "eje_profundidad_espalda": -0.0266, "eje_robo_alto": 0.0224, "eje_aereo_segunda": 0.0065}, "Nordsjælland": {"eje_verticalidad": -0.1077, "eje_elaboracion": 0.1501, "eje_individual": 0.04, "eje_rotura_lineas": 0.0506, "eje_amplitud_centro": -0.0243, "eje_profundidad_espalda": 0.0463, "eje_robo_alto": 0.0021, "eje_aereo_segunda": -0.0618}, "OB": {"eje_verticalidad": -0.0485, "eje_elaboracion": 0.0651, "eje_individual": -0.0312, "eje_rotura_lineas": 0.0045, "eje_amplitud_centro": -0.005, "eje_profundidad_espalda": -0.0238, "eje_robo_alto": 0.0008, "eje_aereo_segunda": 0.0136}, "Randers": {"eje_verticalidad": -0.0218, "eje_elaboracion": -0.0076, "eje_individual": 0.005, "eje_rotura_lineas": 0.0134, "eje_amplitud_centro": 0.012, "eje_profundidad_espalda": 0.0031, "eje_robo_alto": 0.0066, "eje_aereo_segunda": 0.0213}, "Silkeborg": {"eje_verticalidad": -0.0482, "eje_elaboracion": 0.1152, "eje_individual": 0.0387, "eje_rotura_lineas": 0.0528, "eje_amplitud_centro": -0.0212, "eje_profundidad_espalda": 0.0227, "eje_robo_alto": -0.1067, "eje_aereo_segunda": -0.0275}, "Sønderjyske": {"eje_verticalidad": 0.0739, "eje_elaboracion": -0.0513, "eje_individual": -0.0311, "eje_rotura_lineas": -0.0197, "eje_amplitud_centro": 0.0033, "eje_profundidad_espalda": -0.0034, "eje_robo_alto": -0.0607, "eje_aereo_segunda": 0.0281}, "Vejle": {"eje_verticalidad": 0.0693, "eje_elaboracion": -0.0977, "eje_individual": -0.0381, "eje_rotura_lineas": -0.054, "eje_amplitud_centro": 0.0057, "eje_profundidad_espalda": -0.0478, "eje_robo_alto": -0.0209, "eje_aereo_segunda": 0.052}, "Viborg": {"eje_verticalidad": -0.0208, "eje_elaboracion": -0.0322, "eje_individual": 0.021, "eje_rotura_lineas": -0.002, "eje_amplitud_centro": -0.0253, "eje_profundidad_espalda": -0.0179, "eje_robo_alto": 0.0072, "eje_aereo_segunda": 0.0047}}, "team_eje_norm_con": {"AGF": {"eje_verticalidad": 0.0409, "eje_elaboracion": -0.0364, "eje_individual": -0.0057, "eje_rotura_lineas": -0.0133, "eje_amplitud_centro": -0.0093, "eje_profundidad_espalda": 0.0109, "eje_robo_alto": -0.0446, "eje_aereo_segunda": 0.0178}, "Brøndby": {"eje_verticalidad": -0.0093, "eje_elaboracion": -0.0063, "eje_individual": 0.0078, "eje_rotura_lineas": -0.0112, "eje_amplitud_centro": 0.0016, "eje_profundidad_espalda": -0.0052, "eje_robo_alto": -0.0455, "eje_aereo_segunda": -0.0203}, "Fredericia": {"eje_verticalidad": -0.0581, "eje_elaboracion": 0.0332, "eje_individual": 0.0015, "eje_rotura_lineas": 0.0134, "eje_amplitud_centro": 0.0346, "eje_profundidad_espalda": 0.0613, "eje_robo_alto": 0.0546, "eje_aereo_segunda": -0.0118}, "København": {"eje_verticalidad": 0.0132, "eje_elaboracion": -0.0287, "eje_individual": -0.0076, "eje_rotura_lineas": -0.0107, "eje_amplitud_centro": -0.0122, "eje_profundidad_espalda": -0.0552, "eje_robo_alto": -0.061, "eje_aereo_segunda": 0.0165}, "Midtjylland": {"eje_verticalidad": 0.0534, "eje_elaboracion": -0.0887, "eje_individual": -0.0205, "eje_rotura_lineas": -0.025, "eje_amplitud_centro": -0.0252, "eje_profundidad_espalda": -0.0115, "eje_robo_alto": -0.0247, "eje_aereo_segunda": 0.0239}, "Nordsjælland": {"eje_verticalidad": -0.0376, "eje_elaboracion": 0.0059, "eje_individual": 0.0098, "eje_rotura_lineas": 0.0303, "eje_amplitud_centro": -0.0087, "eje_profundidad_espalda": 0.0198, "eje_robo_alto": -0.0495, "eje_aereo_segunda": -0.0063}, "OB": {"eje_verticalidad": -0.0389, "eje_elaboracion": -0.012, "eje_individual": -0.0007, "eje_rotura_lineas": -0.0029, "eje_amplitud_centro": -0.0056, "eje_profundidad_espalda": -0.0119, "eje_robo_alto": 0.0085, "eje_aereo_segunda": -0.0207}, "Randers": {"eje_verticalidad": -0.0505, "eje_elaboracion": 0.0505, "eje_individual": 0.0129, "eje_rotura_lineas": -0.0011, "eje_amplitud_centro": -0.0316, "eje_profundidad_espalda": -0.0152, "eje_robo_alto": -0.0008, "eje_aereo_segunda": 0.0057}, "Silkeborg": {"eje_verticalidad": -0.1267, "eje_elaboracion": 0.1282, "eje_individual": 0.007, "eje_rotura_lineas": 0.0451, "eje_amplitud_centro": 0.0265, "eje_profundidad_espalda": 0.0002, "eje_robo_alto": 0.0614, "eje_aereo_segunda": -0.0539}, "Sønderjyske": {"eje_verticalidad": -0.0451, "eje_elaboracion": 0.0186, "eje_individual": 0.0109, "eje_rotura_lineas": 0.0251, "eje_amplitud_centro": 0.0173, "eje_profundidad_espalda": 0.0176, "eje_robo_alto": 0.0132, "eje_aereo_segunda": 0.0007}, "Vejle": {"eje_verticalidad": -0.0163, "eje_elaboracion": 0.0065, "eje_individual": 0.0045, "eje_rotura_lineas": -0.0013, "eje_amplitud_centro": -0.0054, "eje_profundidad_espalda": 0.0146, "eje_robo_alto": 0.0026, "eje_aereo_segunda": 0.029}, "Viborg": {"eje_verticalidad": -0.0534, "eje_elaboracion": 0.0035, "eje_individual": -0.0135, "eje_rotura_lineas": -0.0086, "eje_amplitud_centro": 0.0131, "eje_profundidad_espalda": 0.0015, "eje_robo_alto": 0.02, "eje_aereo_segunda": -0.0019}}}
|
vendor/data/ejes/danish-superligaen/25-26/team_profiles.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:eca949acb291d7629a2622eab84ff466f8779ffde57a885584360abd38d92189
|
| 3 |
+
size 8115
|
vendor/data/ejes/dutch-eerste-divisie/25-26/ejes_definition.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
|
vendor/data/ejes/dutch-eerste-divisie/25-26/match_team_ejes.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fed334df19ea3c9f5f128d7e187aae1cbf06b277c33b7917add2b4af8de0d443
|
| 3 |
+
size 88643
|
vendor/data/ejes/dutch-eerste-divisie/25-26/match_team_vars.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9be3f1e837bb1dfbd6d54208be0ddfa86d8410f2cd9ca5ae65d1504497a4b557
|
| 3 |
+
size 327219
|
vendor/data/ejes/dutch-eerste-divisie/25-26/predictor.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"verticalidad": {"gen": 0.9312, "con": 0.8535, "intercept": 0.0195}, "elaboracion": {"gen": 0.884, "con": 0.9027, "intercept": -0.0007}, "individual": {"gen": 0.8845, "con": 0.6111, "intercept": 0.0002}, "rotura_lineas": {"gen": 0.848, "con": 0.7868, "intercept": -0.0004}, "amplitud_centro": {"gen": 0.8393, "con": 0.6398, "intercept": 0.0002}, "profundidad_espalda": {"gen": 0.8099, "con": 0.466, "intercept": -0.0001}, "robo_alto": {"gen": 0.8243, "con": 0.8339, "intercept": 0.0028}, "aereo_segunda": {"gen": 0.8829, "con": 0.8585, "intercept": -0.0006}}
|