見出し画像

プログラム初心者が大谷翔平ヒット・ホームラン予測アプリを作ってみた


こんにちは。公認会計士の桑原です。

前回の記事ではyfinanceAPIでの自分専用の上場企業財務データダッシュボードの作成について書きました。このダッシュボード作成から数週間後の8月初旬にチャレンジした大谷翔平選手のヒット・ホームラン予測アプリについて書いていこうと思います。

今回のチャレンジ

前回の記事でも触れたTech0の課題の一環でチームでアプリを作ることになり、ダッシュボード作成時から色々と学習が進んだので以下を盛り込むアプリを作りたいと考えました。

  • サイトからスクレイピングによりデータを取得する

  • yfinanceとは違うAPIでデータを取得する

  • 機械学習で予測計算を行う

なかなか案が浮かばなかったのですが、チームメンバーから大谷翔平のヒットやホームラン数を予測出来たら面白いのではないか?という提案があり今回のアプリを作成することにしました。

アプリの仕組み

システム構成図は以下のとおりです。

過去の大谷選手のデータはMLB公式ホームページのデータを使用しました。
このデータを使って8月以降の試合別のヒット数・ホームラン数を予測します。特徴量を以下に設定しランダムフォレストで予測計算を行いました。

  • 対戦相手

  • 球場

  • ホームorアウェイ

  • カード連戦数(1カードの連戦のうち何試合目か)

本来は二刀流の日や対戦ピッチャーもデータに含めたいところですが、将来の試合で二刀流なのか、相手ピッチャーは誰なのか、ということがわからないので、これらは特徴量から除外しました(もし特徴量に含める方法があるなら教えて欲しいです!!)。

スクレイピングの対象はスポーツナビのホームランランキングにしました。このスクレイピングで最新のホームランランキングを表示することが出来ます。

APIはOpen WeatherとNews APIにしました。Open Weatherとの連携で球場周辺の天気や気温がわかり、News APIとの連携で大谷翔平選手の最新ニュースがわかります。

勉強したことをもう少しチャレンジしたかったので球場の地図も表示させることにしました。

全体はこんな感じです。

まとめるとこんな感じです。

予測計算の結果に興味がある方は以下からCSVをダウンロード下さい。

答え合わせは後日したいと思います。

課題

前回のyfinanceと同様に今回もStreamlitなのでフロント画面が洗練されていません(きれいに出来るかもしれませんが、、、)。

また機械学習の予測計算手法はランダムフォレストを採用しましたが、他にもっと精度の高い方法があったかもしれません。
上述したように二刀流や相手ピッチャー等も特徴量に含める手法や、適切な特徴量があったかもしれなかったなと思っています。

色々と課題は多いものの、初心者として勉強を始めて3ヶ月後の成果としては満足しています。色々と助けてくれたチームメンバーに感謝です。
まだまだ勉強することは多いですが、楽しく勉強を続けていきたいです
(この記事を書いている2023年11月30日時点ではFlaskやReactに苦戦中です)。

-------------------------------
アクアコーポレートアドバイザリー株式会社はスタートアップから上場企業、VCファンドからバイアウトファンドまで、会計・資金調達・M&A・PMI・事業承継まで幅広く支援するプロフェッショナルファームです。

株式取得、株式売却、他社との資本提携、IPOなどご検討の方は、お気軽にこちらよりご連絡下さい。

この記事が気に入ったらサポートをしてみませんか?