File size: 6,817 Bytes
d6ea71e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
===================================
A Soccer Action Valuation Toolkit
===================================

`socceraction` is a Python package for objectively quantifying the value of
the individual actions performed by soccer players using event stream data. It
contains the following components:

- A set of API clients for **loading event stream data** from
  `StatsBomb <https://statsbomb.com/>`__, `Wyscout <https://wyscout.com/>`__
  and `Opta <https://www.statsperform.com/opta/>`__.
- 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.
- An implementation of the **Expected Threat (xT)** possession value framework.
- An implementation of the **VAEP** and **Atomic-VAEP** possession value frameworks.

.. image:: actions_bra-bel.png
  :width: 600
  :align: center


.. toctree::
   :hidden:
   :caption: Documentation

   documentation/intro
   documentation/install
   documentation/data/index
   documentation/spadl/index
   documentation/valuing_actions/index
   documentation/faq

.. toctree::
   :hidden:
   :caption: API reference

   api/data
   api/spadl_regular
   api/xthreat
   api/vaep
   api/spadl_atomic
   api/atomic_vaep

.. toctree::
   :hidden:
   :caption: Development

   Changelog <https://github.com/ML-KULeuven/socceraction/releases>
   development/developer_guide


First steps
===========

Are you new to soccer event stream data and possession value frameworks? Check
out our `interactive explainer <https://dtai.cs.kuleuven.be/sports/vaep>`__
and watch Lotte Bransen's and Jan Van Haaren's `presentation in Friends of
Tracking <https://www.youtube.com/watch?v=w0LX-2UgyXU>`__. Once familiar with
the basic concepts, you can move on to the :doc:`quickstart guide
<documentation/intro>` or continue with the hands-on video tutorials of the
Friends of Tracking series:

- Valuing actions in soccer (`video <https://www.youtube.com/watch?v=xyyZLs_N1F0>`__, `slides <https://drive.google.com/open?id=1t-jPgQFjZ7K4HRduaZWexUOMOmc1XR9H1jVWwaZYsOU>`__)
   This presentation expands on the content of the introductory presentation
   by discussing the technicalities behind the VAEP framework for valuing
   actions of soccer players as well as the content of the hands-on video
   tutorials in more depth.

- Tutorial 1: Run pipeline (`video <https://www.youtube.com/watch?v=0ol_eLLEQ64>`__, `notebook <https://github.com/SciSports-Labs/fot-valuing-actions/blob/master/notebooks/tutorial1-run-pipeline.ipynb>`__, `notebook on Google Colab <https://colab.research.google.com/github/SciSports-Labs/fot-valuing-actions/blob/master/notebooks/tutorial1-run-pipeline.ipynb>`__)
   This tutorial demonstrates the entire pipeline of ingesting the raw Wyscout
   match event data to producing ratings for soccer players. This tutorial
   touches upon the following four topics: downloading and preprocessing the
   data, valuing game states, valuing actions and rating players.

- Tutorial 2: Generate features (`video <https://www.youtube.com/watch?v=Ep9wXQgAFaE>`__, `notebook <https://github.com/SciSports-Labs/fot-valuing-actions/blob/master/notebooks/tutorial2-generate-features.ipynb>`__, `notebook on Google Colab <https://colab.research.google.com/github/SciSports-Labs/fot-valuing-actions/blob/master/notebooks/tutorial2-generate-features.ipynb>`__)
   This tutorial demonstrates the process of generating features and labels. This
   tutorial touches upon the following three topics: exploring the data in the
   SPADL representation, constructing features to represent actions and
   constructing features to represent game states.

- Tutorial 3: Learn models (`video <https://www.youtube.com/watch?v=WlORqYIb-Gg>`__, `notebook <https://github.com/SciSports-Labs/fot-valuing-actions/blob/master/notebooks/tutorial3-learn-models.ipynb>`__, `notebook on Google Colab <https://colab.research.google.com/github/SciSports-Labs/fot-valuing-actions/blob/master/notebooks/tutorial3-learn-models.ipynb>`__)
   This tutorial demonstrates the process of splitting the dataset into
   a training set and a test set, learning baseline models using conservative
   hyperparameters for the learning algorithm, optimizing the hyperparameters for
   the learning algorithm and learning the final models.

- Tutorial 4: Analyze models and results (`video <https://www.youtube.com/watch?v=w9G0z3eGCj8>`__, `notebook <https://github.com/SciSports-Labs/fot-valuing-actions/blob/master/notebooks/tutorial4-analyze-models-and-results.ipynb>`__, `notebook on Google Colab <https://colab.research.google.com/github/SciSports-Labs/fot-valuing-actions/blob/master/notebooks/tutorial4-analyze-models-and-results.ipynb>`__)
   This tutorial demonstrates the process of analyzing the importance of
   the features that are included in the trained machine learning models,
   analyzing the predictions for specific game states, and analyzing the
   resulting player ratings.

.. note::

   The video tutorials are based on version 0.2.0 of the socceraction library.
   If a more recent version of the library is installed, the code may need to
   be adapted.


Getting help
============

Having trouble? We'd like to help!

* Try the :doc:`FAQ <documentation/faq>` -- it's got answers to many common questions.

* Looking for specific information? Try the :ref:`genindex` or :ref:`modindex`.

* Report bugs in our `ticket tracker`_.

.. _ticket tracker: https://github.com/ML-KULeuven/socceraction/issues


Contributing
============

Learn about the development process itself and about how you can contribute in our :doc:`developer guide <development/developer_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`__]

__ http://doi.acm.org/10.1145/3292500.3330758
__ https://raw.githubusercontent.com/ML-KULeuven/socceraction/master/docs/_static/decroos19.bibtex
__ https://limo.libis.be/primo-explore/fulldisplay?docid=LIRIAS2913207&context=L&vid=KULeuven&search_scope=ALL_CONTENT&tab=all_content_tab&lang=en_US
__ https://raw.githubusercontent.com/ML-KULeuven/socceraction/master/docs/_static/vanroy20.bibtex