On possède une suite de 10 minutes de séquences (n séquences) consécutives de foot, tirées au hasard, on souhaite:
- Prédire la position X et Y des évènements n+1 à n+5
- Prédire la possession du ballon à n+1
- Prédire le type d'évènement à n+1
Exemple d'une séquence à prédire:
game_id event_period_id event_type_id event_team_id event_x event_y event_order
1: 853139 1 1 148 50.2 49.3 1
2: 853139 1 1 148 35.3 59.4 2
3: 853139 1 5 143 24.4 101.5 3
4: 853139 1 1 143 21.9 100.0 4
5: 853139 1 61 143 22.7 87.4 5
6: 853139 1 1 143 22.1 78.8 6
7: 853139 1 1 143 17.1 83.0 7
8: 853139 1 1 148 20.5 11.0 8
9: 853139 1 1 148 4.9 27.0 9
10: 853139 1 3 148 51.9 92.3 10
Exemple de la prédiction:
game_id event_period_id event_type_id event_team_id event_x event_y event_order
11: 853139 1 1 143 33.0 18.9 11
12: 853139 1 1 143 42.3 21.3 12
13: 853139 1 1 143 27.5 46.6 13
14: 853139 1 61 143 28.8 39.1 14
15: 853139 1 5 148 68.5 101.6 15
- Modèle de position de l'évènement pour n+1
- Modèle de position des évènements n+2 à n+5
- Modèle de possession du ballon
Le type d'évènement étant majoritairement des passes, aucun modèle ne sera testé.
Bien pensé à implémenté les règles du foot dans la prédiction (replacement du ballon, sortie de balle, enchainement fatal de certaines actions...)
L'essentiel du code est lancé par le Makefile
.
Opta : https://www.agorize.com/fr/challenges/xpsg?lang=fr
- Données joueurs
- Données de matchs : un xml à la maille qualifier par match
-
Données de matchs d'apprentissage en csv, à la maille event:
games_train_events.csv
:jointure_key
: champ originalgame_id
: identifiant du matchgame_date
: date du matchaway_team_id
: identifiant de l'équipe visiteuraway_team_name
: nom de l'équipe visiteurhome_team_id
: identifiant de l'équipe à domicilehome_team_name
: nom de l'équipe à domicilematchday
: journée ligue 1period_1_start
: horaire du début de période 1period_2_start
: horaire du début de la période 2event_id
: identifiant de l'événementevent_type_id
: type d'événementevent_assist
: Will only appear on an event if this event led directly to a goalevent_keypass
: Will only appear on an event if this event led directly to a shot off target, blocked orsavedevent_last_modifier
: horaire modification de l'événementevent_min
: minute de l'événement (par rapport au coup d'envoi)event_outcome
: résultat de l'événementevent_period_id
: periode (mi temps 1 ou 2)event_player_id
: identifiant du joueurevent_sec
: seconde de l'événement (par rapport au coup d'envoi)event_team_id
: identifiant de l'équipeevent_timestamp
: horaire de l'événementevent_version
: identifiant de version de l'événementevent_x
: position en abscisse de l'événementevent_y
: position en ordonnée de l'événementevent_seconds_elapsed
: nombre de seconde écoulé depuis le coup d'envoizone_id
: identifiant de la zonezone_name
: nom de la zone détailléebig_zone_name
: nom de la zone largeevent_order
: ordre des événements entre eux
-
Données de matchs de test en csv, à la maille event:
games_test_events.csv
:game_id
: identifiant du matchaway_team_id
: identifiant de l'équipe visiteurhome_team_id
: identifiant de l'équipe à domicilematchday
: journée ligue 1event_period_id
: periode (mi temps 1 ou 2)event_type_id
: type d'événementevent_min
: minute de l'événement (par rapport au coup d'envoi)event_sec
: seconde de l'événement (par rapport au coup d'envoi)event_seconds_elapsed
: nombre de seconde écoulé depuis le coup d'envoievent_player_id
: identifiant du joueurevent_team_id
: identifiant de l'équipeevent_x
: position en abscisse de l'événementevent_y
: position en ordonnée de l'événementzone_id
: identifiant de la zonezone_name
: nom de la zone détailléebig_zone_name
: nom de la zone largeevent_order
: ordre des événements entre eux
-
Données de joueurs avec les indicateurs de temps de jeu:
players.csv
:player_id
: identifiant du joueur (dérivé deuid
)teamName
:name
:position
:birth_date
:birth_place
:country
:deceased
:first_name
:first_nationality
:height
:jersey_num
:join_date
:known_name
:last_name
:leave_date
:middle_name
:new_team
:preferred_foot
:real_position
:real_position_side
:weight
:loan
:uid
:minutes_duration
: temps de jeu sur les données d'apprentissagejoueur_etudie
: 1 si le joueur est susceptible d'être éudié, 0 sinon (problématique non traité sur le challenge Lincoln)
-
Dictionnaire de zone en csv:
zones_dict.csv
:xmin
: coordonnées min en abscisse de la boitexmax
: coordonnées max en abscisse de la boiteymin
: coordonnées min en ordonnée de la boiteymax
: coordonnées max en ordonnée de la boitezone_id
: identifiant de la zonezone_name
: nom de la zone détailléebig_zone_name
: nom de la zone large