• Stars
    star
    594
  • Rank 75,329 (Top 2 %)
  • Language
    Python
  • License
    MIT License
  • Created over 5 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Convert soccer event stream data to SPADL and value player actions using VAEP or xT

Convert soccer event stream data to the SPADL format
and value on-the-ball player actions


PyPi Python Version: 3.7.1+ Downloads License: MIT

Build Status Read the Docs Code coverage



Socceraction is a Python package for objectively quantifying the impact of the individual actions performed by soccer players using event stream data. The general idea is to assign a value to each on-the-ball action based on the action's impact on the game outcome, while accounting for the context in which the action happened. The video below gives a quick two-minute introduction to action values.

Valuing.Player.Actions.in.Soccer.mp4

Features

Socceraction contains the following components:

  • A set of API clients for loading event stream data from StatsBomb, Opta, Wyscout, Stats Perform and WhoScored as Pandas DataFrames using a unified data model. Read more »
  • Converters for each of these provider's proprietary data format to the SPADL and atomic-SPADL formats, which are unified and expressive languages for on-the-ball player actions. Read more »
  • An implementation of the Expected Threat (xT) possession value framework. Read more »
  • An implementation of the VAEP and Atomic-VAEP possession value frameworks. Read more »

Installation / Getting started

The recommended way to install socceraction is to simply use pip. The latest version officially supports Python 3.8 - 3.11.

$ pip install socceraction

The folder public-notebooks provides a demo of the full pipeline from raw StatsBomb event stream data to action values and player ratings. More detailed installation/usage instructions can be found in the Documentation.

Contributing

All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome. However, be aware that socceraction is not actively developed. It's primary use is to enable reproducibility of our research. If you believe there is a feature missing, feel free to raise a feature request, but please do be aware that the overwhelming likelihood is that your feature request will not be accepted. To learn more on how to contribute, see the Contributor Guide.

Research

If you make use of this package in your research, please consider citing the following papers:

  • Tom Decroos, Lotte Bransen, Jan Van Haaren, and Jesse Davis. Actions speak louder than goals: Valuing player actions in soccer. In Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, pp. 1851-1861. 2019.
    [ pdf | bibtex ]

  • Maaike Van Roy, Pieter Robberechts, Tom Decroos, and Jesse Davis. Valuing on-the-ball actions in soccer: a critical comparison of XT and VAEP. In Proceedings of the AAAI-20 Workshop on Artifical Intelligence in Team Sports. AI in Team Sports Organising Committee, 2020.
    [ pdf | bibtex ]

The Expected Threat (xT) framework was originally introduced by Karun Singh on his blog in 2019.

License

Distributed under the terms of the MIT license, socceraction is free and open source software. Although not strictly required, we appreciate it if you include a link to this repo or cite our research in your work if you make use of socceraction.

More Repositories

1

problog

ProbLog is a Probabilistic Logic Programming Language for logic programs with probabilities.
Python
306
star
2

deepproblog

DeepProbLog is an extension of ProbLog that integrates Probabilistic Logic Programming with deep learning by introducing the neural predicate.
Python
182
star
3

soccer_xg

A Python package for training and analyzing expected goals (xG) models in soccer.
Jupyter Notebook
157
star
4

cobras

Interactive clustering with super-instances
Python
49
star
5

soccermix

SoccerMix is a soft clustering technique based on mixture models that decomposes event stream data into a number of prototypical actions of a specific type, location, and direction.
Jupyter Notebook
37
star
6

SAR-PU

Beyond the Selected Completely At Random Assumption for Learning from Positive and Unlabeled Data
Jupyter Notebook
32
star
7

ETSY

Synchronize soccer event and tracking data
Python
28
star
8

un-xPass

Measuring soccer player's creativity
Jupyter Notebook
28
star
9

deepstochlog

Python
24
star
10

locomotif

LoCoMotif is a time series motif discovery method that discovers variable-length motif sets in multivariate time series using time warping
Jupyter Notebook
14
star
11

LearnSDD

Implementation of the Structure Learning Algorithm for Sentential Decision Diagrams
C
8
star
12

KBC-as-PU-Learning

Source code & appendices accompanying the AAAI2022 paper "Unifying Knowledge Base Completion with PU Learning to Mitigate the Observation Bias"
Jupyter Notebook
8
star
13

ml-project-2023-2024

Template and instructions to submit a solution for the assignment for the KU Leuven course ML Project
Python
8
star
14

incal

Learn SMT(LRA) constraints from data
Python
6
star
15

the_apples_game

Multi-Agent Learning assignment, Machine Learning Project @ KU Leuven
JavaScript
6
star
16

PyDC

Python wrapper for Distributional Clauses
C++
4
star
17

catlog

Gradient estimation of discrete probabilistic models with the CatLog-Derivative trick
Jupyter Notebook
4
star
18

ocus-explain

Efficient Explaining CSPs with Unsatisfiable Subset Optimization
Jupyter Notebook
3
star
19

PySDD

Python
3
star
20

tacle

Constraint learning for spreadsheets
Python
3
star
21

JSDD

Java wrapper for the sdd 2.0 c library
Java
3
star
22

HASSLE-GEN

This repository contains the code for our paper: Senne Berden, Mohit Kumar, Samuel Kolb, and Tias Guns (2022): Learning MAX-SAT Models from Examples using Genetic Algorithms and Knowledge Compilation, CP 2022
Python
3
star
23

deepseaproblog

The official implementation of DeepSeaProbLog, a neural probabilistic logic programming language supporting discrete and continuous random variables.
Python
3
star
24

comparative-evaluation-of-anomaly-detection-methods

Accompanying repository for the ODD workshop paper: "The Effect of Hyperparameter Tuning on the Comparative Evaluation of Anomaly Detection Methods"
Jupyter Notebook
3
star
25

hanoi

Python
2
star
26

RoViLa

Robot platform that uses vision and language as input to reason about the world.
Python
2
star
27

COUNT-CP

COUNT-CP is a constraint learner that uses a generate-and-aggregate approach to learn CP models
Python
2
star
28

ai-course-demos

Links to & implementations of demos for the course "Artificiële Intelligentie" at KU Leuven
CSS
2
star
29

betaproblog

Prolog
1
star
30

ml-project-2021-2022

Template and instructions to submit a solution for the assignment.
Python
1
star
31

py-dreaml

Python package of DreaML for relational mixed discrete-continuous learning and inference
Python
1
star
32

psyche

1
star
33

psipy

Python wrapper for the PSI-Solver (probabilistic symbolic inference)
D
1
star
34

GenLex

Implentation of a Semantic Parser that maps natural/instructional language to a logical expression.
Java
1
star
35

amie

Automatic Monitoring of Indoor Exercises
Jupyter Notebook
1
star
36

xmskill

Jupyter Notebook
1
star