DEVELOPMENT JOURNAL · #001
開発ジャーナル #001/ 281種類。
APIを実装する予定だった日に、実装を止めた。
必要なデータは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で読む