|
"""Implements the Atomic-VAEP framework. |
|
|
|
Attributes |
|
---------- |
|
xfns_default : list(callable) |
|
The default VAEP features. |
|
|
|
""" |
|
|
|
from typing import Optional |
|
|
|
import socceraction.atomic.spadl as spadlcfg |
|
from socceraction.vaep.base import VAEP |
|
|
|
from . import features as fs |
|
from . import formula as vaep |
|
from . import labels as lab |
|
|
|
xfns_default = [ |
|
fs.actiontype, |
|
fs.actiontype_onehot, |
|
fs.bodypart, |
|
fs.bodypart_onehot, |
|
fs.time, |
|
fs.team, |
|
fs.time_delta, |
|
fs.location, |
|
fs.polar, |
|
fs.movement_polar, |
|
fs.direction, |
|
fs.goalscore, |
|
] |
|
|
|
|
|
class AtomicVAEP(VAEP): |
|
""" |
|
An implementation of the VAEP framework for atomic actions. |
|
|
|
In contrast to the original VAEP framework [1]_ this extension |
|
distinguishes the contribution of the player who initiates the action |
|
(e.g., gives the pass) and the player who completes the action (e.g., |
|
receives the pass) [2]_. |
|
|
|
Parameters |
|
---------- |
|
xfns : list |
|
List of feature transformers (see :mod:`socceraction.atomic.vaep.features`) |
|
used to describe the game states. Uses :attr:`~socceraction.vaep.base.xfns_default` |
|
if None. |
|
nb_prev_actions : int, default=3 |
|
Number of previous actions used to decscribe the game state. |
|
|
|
See Also |
|
-------- |
|
:class:`socceraction.vaep.VAEP` : Implementation of the original VAEP framework. |
|
|
|
References |
|
---------- |
|
.. [1] 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. |
|
.. [2] Tom Decroos, Pieter Robberechts and Jesse Davis. |
|
"Introducing Atomic-SPADL: A New Way to Represent Event Stream Data". |
|
DTAI Sports Analytics Blog. https://dtai.cs.kuleuven.be/sports/blog/introducing-atomic-spadl:-a-new-way-to-represent-event-stream-data # noqa |
|
May 2020. |
|
""" |
|
|
|
_spadlcfg = spadlcfg |
|
_lab = lab |
|
_fs = fs |
|
_vaep = vaep |
|
|
|
def __init__( |
|
self, |
|
xfns: Optional[list[fs.FeatureTransfomer]] = None, |
|
nb_prev_actions: int = 3, |
|
) -> None: |
|
xfns = xfns_default if xfns is None else xfns |
|
super().__init__(xfns, nb_prev_actions) |
|
|