点を取られた直後、チームは変わるのか
サッカーの試合データを機械学習にかけて、「試合の流れ」の変化を目で見えるようにしました。
データサイエンス演習 Group10「Bravo」の分析デモです。サッカーの知識は必要ありません。
このページの線の意味(これだけ読めばOK)
線の高さ=機械学習が出す「失点直後である確率」。入力は「直前5分間のプレー(パスの本数・ボールを持つ位置・守備の位置など27項目)」、出力は「そのプレーが点を取られた直後のチームのものである確率(0〜100%)」です。50%より上なら「失点直後らしい」という読み方になります。 機械学習モデル(scikit-learn の勾配ブースティング決定木)は、639回分の失点の「直前5分」と「直後5分」のプレー(27項目)を、どちらの5分か当てる2択の教師あり学習で学んでいます。
線の高さ=機械学習が出す「失点直後である確率」。入力は「直前5分間のプレー(パスの本数・ボールを持つ位置・守備の位置など27項目)」、出力は「そのプレーが点を取られた直後のチームのものである確率(0〜100%)」です。50%より上なら「失点直後らしい」という読み方になります。 機械学習モデル(scikit-learn の勾配ブースティング決定木)は、639回分の失点の「直前5分」と「直後5分」のプレー(27項目)を、どちらの5分か当てる2択の教師あり学習で学んでいます。
実験1:639回の「点を取られた瞬間」を重ね合わせる
横軸は「点を取られた瞬間」をゼロとした時間。1回ずつはバラバラでも、重ねると何が見えるでしょうか。
本物の失点(639回の平均)
実験2:1試合をそのまま見てみる
実際の試合1つを最初から最後まで判定させました。この2試合は学習に使っていません(初見の試合です)。
正直な注意点:線は点が入っていない時間帯でも大きく揺れます。「攻め込んでボールを持つ」という試合の流れは、
失点がなくても常に生まれたり消えたりしているからです。だから1試合だけを見て結論は出せません。
639回を重ね合わせた実験1こそが、「点を取られた直後、チームは確かに変わる」と言える根拠です。
どうやって作ったか
- データ:StatsBomb社が研究用に公開しているサッカーの試合記録(スペイン1部リーグ 2015-16年、全380試合)。パスやシュートなどの1プレーごとに、時刻と位置が記録されています。
- 学習:失点の「直前5分」と「直後5分」のプレーぶり(27項目の数値)を機械学習モデル(勾配ブースティング:多数の決定木を組み合わせる手法)に見せて、どちらか当てられるように学習させました。
- ヒントで当てるのを防ぐ工夫:①失点直後は必ずキックオフで再開するため、キックオフ絡みのプレーは判定材料から除外。②ゴール後は歓喜などでプレーが中断するため、回数の項目は「実際にボールが動いていた時間あたり」に直して使用。
- 正しさの確認:見分けの正確さは AUC 0.72(1.0=完全に見分けられる、0.5=当てずっぽう)。ランダムな時刻では 0.50(=当てずっぽうと同じ)。判定に使う試合は、その試合を学習していないモデルで採点しています。
- 「ランダムな時刻」の作り方:ゴールとは無関係の時刻を各試合からランダムに選び、その時刻を「そこで失点が起きたとみなして」本物と全く同じ前後5分の判別を行います。ただし本物の失点と条件を揃えるため、①前後半それぞれの最初と最後の5分は避ける、②実際のゴールの前後6分も避ける、③個数は本物のゴールと同数、というルールで選んでいます(乱数の種は固定してあり、再実行しても同じ結果になります)。