File size: 2,322 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 |
"""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)
|