Lean Baseball

No Engineering, No Baseball.

野球ではじめる機械学習 - 特徴量エンジニアリングとPython, Rを用いた成績予測

本日のPyCon JP 2020にてお話しました以下の発表に関する補足・解説ブログとなります.

スポーツデータを用いた特徴量エンジニアリングと野球選手の成績予測 - PythonとRを行ったり来たり

このエントリーではスライドのスクショとともに,

  • 参考資料
  • 細かすぎて本編で話さなかったハナシ
  • もし真似してやるならこれぐらいは読んでおいたほうがいいよ

的な話を中心に, 過去記事のreference等を掲載しています.

スポーツデータを用いた特徴量エンジニアリングと野球選手の成績予測

これを読むと⚾️で特徴量エンジニアリングと機械学習がいい感じにできるかと思います👍

スタメン

CM

いきなり宣伝で恐縮ですが汗

JX通信社

f:id:shinyorke:20200828155737j:plain

月並みですが, Techブログはぜひ!

JX通信社エンジニアブログ

また, 本日は午前中に@YAMITZKYさんがTalkをしました.

Pythonもくもく自習室 #jisyupy

f:id:shinyorke:20200828160035j:plain

以前は #rettypy としてやっていたもくもく会です.

Pythonもくもく自習室 - connpass

なお次回は9/19(土)にオンライン開催します, 来てね.

jisyupy.connpass.com

特徴量エンジニアリングについて

今回の発表の第一の話でした.

f:id:shinyorke:20200828174015j:plain

まず, 特徴量エンジニアリングについては以下の名著を参考にしました.

これはマストハブです, 説明とかアプローチが良いです.

野球データの特徴量

f:id:shinyorke:20200828174152j:plain

野球の特徴量についてはこのブログで執筆した以下のエントリーが下敷きになっています.

shinyorke.hatenablog.com

shinyorke.hatenablog.com

shinyorke.hatenablog.com

どれも読み応えあるエントリーですが参考になると思います.

Python, R, SQLの違い

f:id:shinyorke:20200828174343j:plain

これも去年執筆したエントリーが元になっています.

shinyorke.hatenablog.com

それぞれの違いと特徴量エンジニアリングにおける視点で試したことを書いています.

野球ではじめる機械学習

f:id:shinyorke:20200828174703j:plain

まず, 全編を通してプロジェクトの進め方・ピボットのやり方は「仕事ではじめる機械学習」を参考にしました.

仕事ではじめる機械学習

仕事ではじめる機械学習

Planning

f:id:shinyorke:20200828174851j:plain

PECOTAはウィキペディアに書いてることが一番良い感じかもです.

ja.wikipedia.org

そしてネイト・シルバーがその後やったことはシグナル&ノイズで話が載ってるのでこれはオススメです.

また, Analyzing Baseball Data with Rはこちらです.

ちょっと高い書籍ですが約立つこと待ったなし.

Data Engineering

主にBigQueryのはなし.*1

f:id:shinyorke:20200828175236j:plain

エンジニアリング的にはBigQuery Client使おうという直球勝負でした.

f:id:shinyorke:20200828175453j:plain

これの元ネタはJX通信社Techブログにあります.

tech.jxpress.net

Feature Engineering

特徴量を出すために泥臭くやったところ.

f:id:shinyorke:20200828175744j:plain

これは特段追加コメント無いな...割愛.

Clustering

ANNでクラスタリングしました.

f:id:shinyorke:20200828180244j:plain

これは発表中でも触れたとおりこのブログでやってました.

shinyorke.hatenablog.com

そして本編の発表では寄り道になるので端折りましたが, 昔は「類似性スコア」という野球独特のアルゴリズムを使ってクラスタリングやってました.

shinyorke.hatenablog.com

Predict

f:id:shinyorke:20200828181430j:plain

その名の通り成績を作るタスクです.

f:id:shinyorke:20200828181620j:plain

マット・チャップマンはオークランド・アスレチックスの若手三塁手で攻守ともに優れたスーパースターです.

www.mlb.com

これも最初期のアルゴリズムはこんな感じでやってました.

shinyorke.hatenablog.com

ちなみに上記ブログのやつは発表したモノとちょっと違うアルゴリズムでやってます.

が, 雰囲気でいい感じにできたのでこれでPyCon大丈夫や!ってなりました.

Presentation

f:id:shinyorke:20200828181915j:plain

今多分おそらく流行っているStreamlitを使おう!と思い立ちやってみました.

www.streamlit.io

これは, Pythonもくもく自習室で@takapyさんのプレゼンをみて真似してやろうと決意し, やってみたら案外爆速でできて笑っちゃいました.

今回やったネタはいずれちゃんとこのブログでも書くつもり.

結び

特徴量エンジニアリングについてのまとめと個人開発について記載しました.

特徴量エンジニアリング

f:id:shinyorke:20200828182635j:plain

この辺は特徴量エンジニアリングおよび前処理大全に詳しいです.

この2冊をいい感じにやったらイケると思います.

個人開発と機械学習

f:id:shinyorke:20200828182813j:plain

これは以前書いたこちらのエントリーが下敷きになっています.

shinyorke.hatenablog.com

個人開発はデータサイエンスでも有効ですやってきましょ!

その他の参考書籍

アルゴリズムの選定・実装は機械学習図鑑が参考になりました.

ご清聴ありがとうございました

PyCon JP 2020の感想やその他の話は別途エントリーで触れたいと思います!

ご清聴・ご視聴ありがとうございました🙇‍♂️

*1:ホントは会社の仕事ネタでデータ基盤の話をCfPとして出していたのですが, そっちが落っこちたのでその名残でこの項を比較的厚めにやりました.