Team Ai
Datasetpublic

knoxel/soccer-feature-engineering

Soccer Feature Engineering Hackathon — 33 Match-Level Features This repository contains a complete, reproducible feature engineering pipeline for the Kaggle Soccer Feature Engineering Hackathon, built from SkillCorner Open Data. Output features.csv — 18 rows (9 matches × 2 teams), 35 columns: match_id, team_id 33 engineered features across 5 behavioral dimensions All values are raw aggregated counts or cumulative distances — no percentages, no ratios.… See the full description on the dataset page: https://huggingface.co/datasets/knoxel/soccer-feature-engineering.

sourceHugging Faceupdated 5mo agoView on Hugging Face
0likes108downloads
Dataset Card

Soccer Feature Engineering Hackathon — 33 Match-Level Features

This repository contains a complete, reproducible feature engineering pipeline for the Kaggle Soccer Feature Engineering Hackathon, built from SkillCorner Open Data.

Output

  • —`features.csv` — 18 rows (9 matches × 2 teams), 35 columns:
  • —match_id, team_id
  • —33 engineered features across 5 behavioral dimensions

All values are raw aggregated counts or cumulative distances — no percentages, no ratios.

Feature Architecture

DimensionFeaturesDescription
Attacking Structureatt1–att5Passes/carries into final third, opponents bypassed, last-line breaks, advanced possession
Build-Up Profileatt6–att10Phase-type volume vector (buildup, direct, setplay, quick_break, transition)
Possession Qualityatt11–att20Tempo, threat creation, defensive-line displacement (metres), passing options
Pressing & Defensive Shapedef1–def7Pressing volume, counter-press, recovery press, chain architecture, danger stopped
Off-Ball Movement Intelligencerun1–run5 + att_give_and_go_initiatedLine-breaking, line-pushing, behind, overlap, attacking-third runs, give-and-go

How to Run

bash
git clone https://github.com/SkillCorner/opendata.git
pip install pandas numpy
python soccer_feature_engineering.py

The script dynamically discovers all *_dynamic_events.csv files via glob — no hardcoded match IDs required.

Extended Analysis

soccer_feature_engineering_extended.py adds:

OutputDescription
features_first_half.csvAll 33 features computed on 1st-half events only
features_second_half.csvAll 33 features computed on 2nd-half events only
features_halves_diff.csv2nd half minus 1st half — reveals tactical fatigue & in-game adjustments
behavioral_fingerprint.csv16-dim fingerprint per team-match (phase profile + pressing + runs + structure)
cluster_labels.csvKMeans cluster assignments (k=4) on standardized fingerprint
archetype_profiles.csvCentroid profiles for each discovered tactical archetype
similarity_matrix.csvPairwise cosine similarity between all 18 team-match fingerprints
analysis.pngRadar chart grid of the 4 archetypes

Tactical Archetypes Discovered (k=4)

ClusterSignatureCharacteristics
0 — "Resilient Block"Low build-up (71.6), modest pressing, balanced all-aroundConservative teams that stay compact; low risk, low reward
1 — "Aggressive Dominator"High build-up (85.0), massive pressing chains (231.7), elite off-ball runs (115.7)High-press, high-tempo teams that generate territory and options
2 — "Transition Specialist"Low build-up (45.3), high quick_breaks (10.3), low runs (8.3)Relies on direct play and transitions; minimal patient possession
3 — "Organized Builder"Highest build-up (90.3), balanced pressing, disciplined runsPatient positional play with systematic defensive line pressure

Data Source

SkillCorner Open Data — 9 matches of Australian A-League 2024/2025, MIT License.

Requirements

  • —Python 3.8+
  • —pandas, numpy
  • —scikit-learn (for extended clustering)
  • —matplotlib, seaborn (for extended visualizations)