NAC Breda Spelerwaarde Systeem

Machine learning systeem voor marktwaarde voorspelling om recruitment te ondersteunen

📅 November 2022 - Janurari 2023 (Jaar 1 - Block B)
⚽ NAC Breda Samenwerking
🔧 RandomForest, XGBoost
👤 Solo project (8 weken)

Project Overzicht

Machine learning systeem voor NAC Breda dat de marktwaarde van spelers voorspelt op basis van prestatiestatistieken. Dataset van 14.445 profvoetballers uit 41 Europese competities met 115 kenmerken uit Opta professionele wedstrijddata. Een Random Forest-model met position-specific feature engineering behaalde 76% nauwkeurigheid voor keepers. Systematisch werden zes ML-algoritmes vergeleken (Linear Regression, Logistic Regression, Decision Tree, Random Forest, XGBoost, SVM) om het beste model te selecteren.

Uitdagingen

Position-specific modellen bouwen, omdat verschillende posities andere waarde-drivers hebben (keepers: reddingen; aanvallers: doelpunten). Feature selectie uit 115 kenmerken met RFECV om positie-relevante statistieken te isoleren. Dataset is imbalanced: de meeste spelers hebben een marktwaarde <€1M. Marktwaarde is bovendien subjectief en wordt beïnvloed door factoren buiten prestaties, zoals hype, nationaliteit en contractduur. Vergelijkbare posities moesten gescheiden worden (centrale vs. buitenverdedigers, box-to-box vs. aanvallende middenvelders).

Resultaten

Het Random Forest-model behaalde 76% nauwkeurigheid voor keepers, de beste prestatie van alle geteste modellen, wat gezien de subjectiviteit van voetbaltransfers een uitstekende score is. Position-specific feature selection identificeerde de belangrijkste statistieken per positie (keepers: reddingen en clean sheets; aanvallers: doelpunten en conversie %; verdedigers: verdedigende acties). Opgeleverd: complete Jupyter notebook en 12-pagina professioneel rapport met recruitment-aanbevelingen. Project uitgevoerd in samenwerking met NAC Breda, inclusief stadionrondleiding en kickoff-presentatie.

76%
Nauwkeurigheid (Keepers)
14.445
Spelers Geanalyseerd
41
Competities (Europa)
6
Waarde Categorieën

Data & Kenmerken Selectie

📊 Opta Professionele Voetbaldata

Dataset van NAC met uitgebreide prestatiestatistieken van 14.445 spelers uit 41 Europese competities. Opta-data wordt live gegenereerd via een combinatie van menselijke annotatie, computer vision en AI en geldt als de industriestandaard voor professionele voetbalanalyses.

Dataset Kenmerken

Data Voorbereiding

Positie-specifieke Kenmerken Selectie

RFECV (Recursive Feature Elimination met Cross-Validatie) gebruikt met Decision Tree om per positie de meest relevante kenmerken te selecteren:

Verkennende Data-analyse: Belangrijkste Inzichten

Spelerdemografie & Markt Dynamiek

Correlatie Analyse: Verdedigende Statistieken

Sterke verbanden bij keeperstatistieken:

  • Tegendoelpunten per 90 ↔ Schoten tegen per 90 ↔ xG tegen per 90: Teams met meer schoten tegen hebben hogere kans op doelpunten tegen
  • Reddingen % negatief gecorreleerd met tegendoelpunten: Betere keepers houden vaker clean sheets
  • Leeftijd vs minuten gespeeld: Jongere spelers krijgen vaak meer speeltijd

Betekenis: Deze verbanden hielpen bij het kiezen van kenmerken voor keeper-specifieke modellen en bevestigden logische patronen in de data.

Machine Learning: Modelontwikkeling

Vergelijking Meerdere Modellen

Verschillende ML-algoritmes getest om het meest geschikte model voor spelerwaardering te selecteren:

📉 Linear Regression

R² = 0.113 – te simpel voor complexe relaties

📊 Logistic Regression

11% nauwkeurigheid – niet geschikt voor meerdere categorieën

🌳 Decision Tree

62% nauwkeurigheid – begrijpelijk, maar gevoelig voor overfitting

🌲 Random Forest

76% nauwkeurigheid (keepers) – beste en stabielste resultaat

⚡ XGBoost

72% nauwkeurigheid – goed, maar hogere rekenkracht vereist

🔷 SVM

75% nauwkeurigheid – sterke concurrent, maar minder interpreteerbaar

Waarom Random Forest?

🏆 Beste Modelkeuze

  • Hoogste nauwkeurigheid: 76% keepers, 62% totaal – beter dan alternatieven
  • Stabiliteit: Gemiddelde over meerdere bomen voorkomt overfitting
  • Kenmerkbelang: Inzicht in meest voorspellende statistieken per positie
  • Complexe relaties: Herkent ingewikkelde verbanden tussen prestaties en marktwaarde
  • Gemengde data: Geschikt voor numerieke en categorische kenmerken

Resultaten & Prestaties

76%
Beste nauwkeurigheid (Keepers)
62%
Totale nauwkeurigheid
70/20/10
Train/Val/Test verdeling
6
Aantal geteste modellen

Prestaties per Positie

Model Evaluatie Statistieken

  • Nauwkeurigheid: Algemene correctheid van voorspellingen – belangrijkste metriek
  • Precisie: Correctheid van positieve voorspellingen – minimaliseert foute alarmen
  • Recall: Vermogen om alle positieve gevallen te detecteren – minimaliseert gemiste gevallen
  • F1 Score: Harmonisch gemiddelde van precisie en recall – gebalanceerd beeld
  • K-Fold cross-validatie: 5-fold cross-validatie voor betrouwbare prestatie-schattingen

Gebruikte Technologieën

🐍 Python
🐼 Pandas
🔢 NumPy
📊 Matplotlib
🎨 Seaborn
🤖 Scikit-Learn
⚡ XGBoost
📈 Missingno

Complete ML Proces

Academische Samenwerking

Project uitgevoerd in samenwerking met NAC Breda, inclusief stadionrondleiding en kickoff-presentatie. Het project toont hoe data science kan bijdragen aan professionele voetbalorganisaties door objectieve, data-gedreven recruitment tools te ontwikkelen.

Uitdagingen & Geleerde Lessen

Fout Analyse: Problemen tussen Posities

Ethische Overwegingen

Bekijk Ook Mijn Andere Projecten