DEVELOPMENT JOURNAL · #001

7分で読める

開発ジャーナル #001/ 281種類。

APIを実装する予定だった日に、実装を止めた。

必要なデータは281種類。本気でモデルを作るなら、入口となるデータは妥協できない。

開発ジャーナル #001 / 281種類。のアイキャッチ

今日は、APIを実装する予定でした。SportsGameOddsを契約し、そのまま実装まで進める。そんな流れで開発を進めていました。

その途中で、以前から気になっていたSportmonksを改めて触ってみることにしました。

サッカーAPIでは知らない人はいないほど有名なサービスです。個人でも契約できるAPIとしては最高峰の一つ。多くの開発者や企業が採用しています。

もちろん、僕も以前から気になっていました。

だから今日は、実際に管理画面へ入り、取得できるデータ、APIレスポンス、選択できるオプションまで、一つひとつ自分の目で確認しました。

最初に思ったことは、とてもシンプルでした。

これはすごい。

開発者なら、おそらく誰もがそのまま導入すると思います。実装も速い。管理もしやすい。データもしっかりしている。

サービスとして本当に素晴らしい完成度でした。

でも、不思議でした。

画面を見れば見るほど、レスポンスを確認すればするほど、僕の中で一つの違和感だけが大きくなっていきました。

何か違う。

データが悪いわけではありません。むしろ逆です。

でも、EV Bet Engineが本当に欲しいデータとは少し違いました。その瞬間、思いました。

じゃあ、自分は何を欲しいと思っているんだろう。

そこでAPIの実装を止めました。

そして、一枚のNotionを開き、EV Bet Engineに必要だと思うデータを一つずつ洗い出していくことにしました。

正直、100項目くらいだと思っていました。でも、実際に書き始めると止まりません。

例えば、

touches_in_opposition_box
big_chances
big_chances_missed
shots_inside_box
shots_outside_box
hit_woodwork
accurate_passes
pass_accuracy_pct
accurate_long_balls
long_ball_accuracy_pct
accurate_crosses
cross_accuracy_pct
ground_duels_won
ground_duels_won_pct
aerial_duels_won
keeper_saves
...

さらに、

last10_xg_avg
last10_xga_avg
last10_corners_avg
last10_cards_avg

home_last5_xg_avg
home_last5_xga_avg
home_last5_corners_avg

away_last5_xg_avg
away_last5_xga_avg
away_last5_corners_avg

h2h_btts_rate
league_average_goals
market_odds_movement
exchange_volume
closing_line_value
...

もちろん、これは281項目のほんの一部です。一つひとつを見ていくうちに、

  • これも必要。
  • これも検証したい。
  • これもモデルに使える。

そう考えているうちに、項目数はどんどん増えていきました。そして最後に数えてみると、

281種類。

自分でも驚きました。

でも、もっと驚いたのは、その281項目すべてに理由があったことです。

「多い方がいい。」そんな理由ではありません。

全部、モデルで検証したい。そう思ったデータだけでした。

モデリングの前に、データを決める

これからEV Bet Engineでは、Poissonだけでは終わりません。さまざまな特徴量を組み合わせながら、期待値を算出していきます。

  • ホームとアウェイ
  • 直近フォーム
  • H2H
  • 市場オッズ
  • Exchange
  • チームスタイル
  • リーグ特性
  • ラインナップ
  • 欠場

そのすべてがモデルへ入力されます。

だからこそ、モデリングだけ本気でやって、データ収集を妥協するという選択肢はありませんでした。AIは魔法ではありません。

どんなに優秀なモデルでも、入力されるデータ以上の答えは出せません。だから僕は、

どのモデルを使うか。

より先に、

どんなデータを集めるか。

を決めることにしました。

今日の結論

その結果、今日の結論は一つです。Sportmonksは採用しません。

これはSportmonksが悪いという話ではありません。本当に素晴らしいサービスです。

ただ、EV Bet Engineが目指している世界とは少し違いました。

だから、

  • FootyStats
  • Soccerway
  • FotMob
  • SportsGameOdds
  • Betfair Exchange

それぞれの強みを組み合わせ、必要なデータは自分たちで取得し、自分たちで正規化し、自分たちで管理する。

そのために、スクレイピング基盤から作ることを決めました。

遠回りです。開発工数も何倍にも増えます。

でも、本気でモデルを作るなら、入口となるデータだけ「楽だから」という理由で妥協するわけにはいきません。

今日、コードはほとんど書いていません。でも、EV Bet Engineは大きく前に進みました。

今日数えた281種類という数字。

これは単なるデータ項目数ではありません。

EV Bet Engineが、サッカーをどこまで深く理解しようとしているのか。

その覚悟の数です。

DATA DRIVEN. BET SMARTER.

Pray for Kumamoto.

熊本地震で被災された皆さまへ、心よりお見舞い申し上げます。私たちは熊本を忘れません。被災地の一日も早い復旧と、皆さまの安全を心より願っています。

この記事はnoteにも掲載しています。

noteで読む