ここでは、2019年5月に公開されたサッカーの時間空間イベントデータの内容をまとめておきます。公開された背景や概要、データの収集方法などについては、下記の論文に詳細が記載されています。
今回公開されたデータは、Wyscout社によって収集、提供されており、これまでに公開されたサッカーのログデータの中でも最大規模です。データセットはCC BY 4.0ライセンスの下でリリースされ、figshareで公開されています。
公開されたデータの対象は下記の通りです。
上記の試合中に発生した時空間イベント(パス、シュート、デュエルなど)のサッカーの時空間イベントログが公開されています。また、試合中に発生したイベントには、位置、時間、結果、プレーヤー、特性に関する情報が含まれています。
データは7つに分けてJSON形式で公開されており、大会(competitions)、試合(matches)、チーム(teams)、選手(players)、イベント(events)、審判(referees)、コーチ(coaches)に分かれています。また、データをまとめると1,941試合、3,251,294イベント、4,299人のプレーヤーをカバーしているデータとなります。
| Competition | #matches | #events | #players |
|---|---|---|---|
| Spanish first division | 380 | 628,659 | 619 |
| English first division | 380 | 643,150 | 603 |
| Italian first division | 380 | 647,372 | 686 |
| German first division | 306 | 519,407 | 537 |
| French first division | 380 | 632,807 | 629 |
| World cup 2018 | 64 | 101,759 | 736 |
| European cup 2016 | 51 | 78,140 | 552 |
| 1,941 | 3,251,294 | 4,299 |
{ggsoccer}と組み合わせると、色々と面白いことができそうです。 ここからは、各データセットの内容を見ていきます。
各データセットの内容を下記のサイトおよび論文をもとにまとめておきます。
A public data set of spatio-temporal match events in soccer competitions
Pappalardo, L., Cintia, P., Rossi, A. et al. A public data set of spatio-temporal match events in soccer competitions. Sci Data 6, 236 (2019)
doi:10.1038/s41597-019-0247-7
competitionsデータセットは7つの競技の詳細を説明しています。
| 変数名 | 内容 |
|---|---|
| area | ISO 3166-1規格のID。 |
| format | クラブチームの「国内リーグ」か代表チームの「国際カップ」を表す。 |
| name | 競技の公式名称 |
| type | クラブチームか代表チームを表す。 |
| wyId | Wyscoutによって割り当てられた大会のID。 |
matchesデータセットは試合の詳細を説明しています。
| 変数名 | 内容 |
|---|---|
| competitionId | 競技のID。 |
| date and dateutc | 試合の開始時間を表す。前者は日時情報をもち、後者は日付情報を持つ。 |
| duration | 試合の時間。Regularは90分で試合終了。ExtraTimeは延長戦で試合終了。PenalitiesはPK戦で試合終了。 |
| gameweek | リーグの節または大会の週。 |
| label | 2つのクラブの名前と試合結果 |
| roundID | 試合が属する競技の試合日。代表チームの場合、予選ラウンド、16ラウンド、準々決勝、準決勝、決勝などの段階を表す。 |
| seasonId | 試合のシーズンを表す。 |
| status | Playedは試合が正式に開始および終了した場合、Cancelledは、試合が開始する前に試合がキャンセルされた場合、、Postponedは、悪天候などで試合が延期され、試合日程が未定の場合。 |
| venue | 試合が開催されたスタジアム。 |
| winner | 試合に勝ったチームのID。試合が引き分けで終わった場合は0。 |
| wyId | Wyscoutによって割り当てられた試合ID。 |
| teamsData | ラインナップ、ベンチ構成、交代リスト、コーチ、スコアなど、試合中の各チームに関する情報を記述するいくつかのサブフィールドが含まれる。teamData.<対戦相手のチームID.**>という列を持つ。 |
| teamsData.hasFormation | フォーメーション(ラインナップとベンチ)が存在する場合は1。 |
| teamsData.score | 試合中のゴール数(ペナルティーは含まない)。 |
| teamsData.scoreET | 延長戦を含む試合中のゴール数(ペナルティーは含まない)。 |
| teamsData.scoreHT | 試合の前半でのゴール数。 |
| teamsData.scoreP | ペナルティーゴールの総数。 |
| teamsData.side | 試合のホームチーム、アウェイチームを表す。 |
| teamsData.teamId | チームID。 |
| teamsData.coachId | コーチID。 |
| teamsData.bench | 試合開始時のベンチ選手のリストと試合中のパフォーマンスに関する統計。 |
| teamsData.lineup | 試合開始時のスターティングラインナップ選手のリストと試合中のパフォーマンスに関する統計。 |
| teamsData.substitutions | 試合中の交代のリスト。 |
teamsデータセットはチームの詳細を説明しています。
| 変数名 | 内容 |
|---|---|
| city | チームが所在する都市。代表チームは国の首都名。 |
| name | チームの俗称。 |
| area | ISO 3166-1規格のID。 |
| wyId | Wyscoutによって割り当てられたID。 |
| officialName | チームの正式名称。 |
| type | クラブチームか代表チームを表す。 |
playersデータセットは選手の詳細を説明しています。
| 変数名 | 内容 |
|---|---|
| birthArea | 選手の出生地。 |
| birthDate | 選手の誕生日(YYYY-MM-DD)。 |
| currentNationalTeamId | 選手が所属する代表のチームID。 |
| currentTeamId | 選手が所属するクラブのチームID。 |
| officialName | チームの正式名称。 |
| firstName | 選手の名。 |
| lastName | 選手の姓。 |
| foot | 選手の利き足。 |
| height | 選手の身長。 |
| middleName | 選手のミドルネーム。ある場合のみ。 |
| passportArea | 選手の現在のパスポートに関連付けられている地理的エリア。 |
| role | 選手の主なポジション。 |
| shortName2 | 選手の短い名前。 |
| weight | 選手の体重(kg)。 |
| wyId | Wyscoutによって割り当てられた選手ID。 |
eventsデータセットは各試合における時間空間イベントの詳細を説明しています。
| 変数名 | 内容 |
|---|---|
| eventId | イベントのID。各eventIdはeventNameに関連付けられている。 |
| eventName | イベントには7つのタイプがある。pass(パス)、foul(ファウル)、shot(ショット)、duel(デュエル)、free kick(フリーキック)、offside(オフサイド)、touch(タッチ)。 |
| subEventId | サブイベントのID。各subEventIdはsubEventNameに関連付けられている。 |
| subEventName | 下記のsubEventNameの表を参照。 |
| tags | イベントタグのリスト。詳細はWyscoutのドキュメントを参照。タグ識別子の対応する名前と説明へのマッピングを提供している。 |
| eventSec | イベントが発生した秒数(基準は現在の前半または後半が始まってからの秒数)。 |
| id | イベントの一意のID。 |
| matchId | 試合ID。 |
| matchPeriod | 1Hは前半、2Hは後半、E1は延長線前半、E2は延長線後半、Pはペナルティ。 |
| playerId | 選手のID。 |
| positions | イベントに関連付けられたスタートポイントとエンドポイントのの位置。各位置は座標のペア{x, y}で表される。範囲は0~100で、攻撃チームの観点からフィールドのパーセンテージを示す。x座標の値は対戦相手のゴールへの近さを示し、y座標の値はフィールドの右側への近さを示す。 |
| teamId | チームID。 |
subEventNameの表| type | subtype | tags |
|---|---|---|
| pass | cross, simple pass | accurate, not accurate, key pass, opportunity, assist, goal |
| foul | no card, yellow, red, 2nd yellow | |
| shot | accurate, not accurate, block, opportunity, assist, goal | |
| duel | air duel, dribbles, tackles, ground loose ball | accurate, not accurate |
| free kick | corner, shot, goal kick, throw in, penalty, simple kick | accurate, not accurate, key pass, opportunity, assist, goal |
| offside touch | acceleration, clearance, simple touch | counter attack, dangerous ball lost, missed ball, interception, opportunity, assist, goal |
refereesデータセットは審判の詳細を説明しています。
| 変数名 | 内容 |
|---|---|
| wyId | Wyscoutによって割り当てられた審判ID。 |
| shortName | 審判短い名前。 |
| firstName | 審判の名。 |
| middleName | 審判のミドルネーム。ある場合のみ。 |
| lastName | 審判の姓。 |
| birthDate | 審判の誕生日(YYYY-MM-DD)。 |
| birthArea | 審判の出生地。 |
| passportArea | 審判の現在のパスポートに関連付けられている地理的エリア。 |
coachesデータセットはコーチの詳細を説明しています。
| 変数名 | 内容 |
|---|---|
| wyId | Wyscoutによって割り当てられたコーチID。 |
| shortName | コーチの短い名前。 |
| firstName | コーチの名。 |
| middleName | コーチのミドルネーム。ある場合のみ。 |
| lastName | コーチの姓。 |
| birthDate | コーチの誕生日(YYYY-MM-DD)。 |
| birthArea | コーチの出生地。 |
| passportArea | コーチの現在のパスポートに関連付けられている地理的エリア。 |
| currentTeamId | コーチのチームID。 |
A public data set of spatio-temporal match events in soccer competitions
Pappalardo, L., Cintia, P., Rossi, A. et al. A public data set of spatio-temporal match events in soccer competitions. Sci Data 6, 236 (2019)
doi:10.1038/s41597-019-0247-7