25
Python Professional Baseball Programming Open Data Edition Shinichi Nakagawa a.k.a. @shinyorke (Pythonista & 野生の野球アナリスト) Pythonプロ野球プログラミング - オープンデータ活用編

Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

  • Upload
    -

  • View
    1.499

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

Python Professional Baseball Programming Open Data Edition

Shinichi Nakagawa a.k.a. @shinyorke (Pythonista & 野生の野球アナリスト)

Pythonプロ野球プログラミング - オープンデータ活用編

Page 2: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

発表タイトルの由来

http://www.shuwasystem.co.jp/products/7980html/4315.html

Page 3: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

自己紹介• Shinichi Nakagawa(35)

• 某R社のWebエンジニア

• 野球とPythonが大好き

• セイバーメトリクス信者

• (自称)野生の野球アナリスト→野球のオープンデータをHackしたり成果を発表したりしてます

Page 4: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

野球ファンとして…• 【MLB】Oakland Athletics(マネーボール好き)→地区優勝したらコスプレします(証拠画像有り)

• 【NPB】北海道日本ハムファイターズ(地元だから) ※元々は阪神ファンでした

• 好きな現役野球選手

• 鳥谷敬(阪神)

• ココ・クリスプ(アスレチックス外野手)

• 尊敬する野球関係者

• ビリー・ビーン(アスレチックスGM)

• 野村克也(ノムさん)

• 新庄剛志(阪神の新庄が居なかったら野球見てない)

Page 5: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

野生の野球アナリスト活動• 発表スライドはこちらを参照→ http://www.slideshare.net/shinyorke

• BPStudy #79 「Baseball Play Study」「Three Out Change!!~アウトについて語ろう」

• PyCon JP 2014「Pythonではじめる野球プログラミング」

• 俺のXP祭り2014「Lean Startup × 野球」

• TokyuRuby会議08「Railsではじめる野球プログラミング」

• Hack

• GitHubで公開しています→ https://github.com/Shinichi-Nakagawa

Page 6: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

スターティングメンバー

• 2015年プロ野球「ガッカリする」見どころ

• Python Professional Baseball Programming

Page 7: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

スターティングメンバー

• 2015年プロ野球「ガッカリする」見どころ

• Python Professional Baseball Programming

Page 8: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

2015年プロ野球 見どころ(楽しい方)

選手 見どころ 理由

柳田悠岐(ソ) トリプルスリー!(3割30本30盗塁)

・去年が惜しかった ・ヤフオクドームに ラッキーゾーン

成瀬善久(ヤ) 新天地で活躍!! ヤ投の救世主に

・セにいないタイプの左腕 ・新天地で心身ともに復活 (希望)

菊池涼介(広) 3年連続GG・ずば抜けた身体能力 ・常人離れした判断力 ・犬なみの機動力

Page 9: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

2015年プロ野球 見どころ(ガッカリする方)

選手 見どころ 理由

柳田悠岐(ソ) トリプルスリー ならず!!!

ゴロ打球多い、BABIP高すぎ。ラッキーゾーンを活かせるタイプではない!!!

成瀬善久(ヤ) 新天地でも花火師!・本拠地は神宮 ・被本塁打多い 説明不要ですね(棒読み)

菊池涼介(広) 3年連続GG?過去二年の守備指標高すぎでそろそろ揺り戻しが来てもおかしくない?

詳しい話は懇親会にて!!!

Page 10: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

スターティングメンバー

• 2015年プロ野球「ガッカリする」見どころ

• Python Professional Baseball Programming

Page 11: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

※ここから先はMLB(メジャーリーグ)の話です

Page 12: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

Python Professional Baseball Programming

• データを手に入れる

• データクリーニングと可視化(Python)

Page 13: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

Python Professional Baseball Programming

• データを手に入れる

• データクリーニングと可視化(Python)

Page 14: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

データを手に入れる

メディア 概要 特徴

Sean Lahman

・野球選手のプロフィールと成績 ・一部チームのデータもあり ・PyCon JP 2014でネタにした http://www.seanlahman.com/

・CSV/SQL ・選手情報に特化 ・試合情報はほぼ無い ・使いやすい

RETROSHEET・スコアブックのオープンデータ ・試合情報が詳細に書かれている ・WEB+DB PRESS vol.84に記事が http://www.retrosheet.org/

・CSVのみ ・情報がかなり充実 ・フォーマットが独特で使いにくい

Page 15: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

Python Professional Baseball Programming

• データを手に入れる

• データクリーニングと可視化(Python)

Page 16: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

PythonでHack

• エディターとツール

• インフラ構築

• アプリケーション構築

RETOROSHEETをHackした時に使ったものを紹介します

Page 17: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

エディターとツール• PyCharm

• Pythonを代表するIDE(統合開発環境)メッチャ使いやすい

• https://www.jetbrains.com/pycharm/

• IPython notebook

• 対話型インタプリタiPythonのWebアプリ版

• グラフ描画、データ解析の道具として便利

• http://ipython.org/notebook.html

Page 18: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

インフラ構築• Vagrant ※Ruby製

• 仮想環境構築・管理

• (中川個人としては)DBサーバーの構築・管理に活用

• https://www.vagrantup.com/

• Ansible

• Python製構成管理ライブラリ

• playbook(recipe的なやつ)にサーバー構成を書いて実行

• http://yteraoka.github.io/ansible-tutorial/

Page 19: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

アプリケーション構築• SQLAlchemy(O/R Mapper)http://www.sqlalchemy.org/

• sqlacodegen(DB schemeからコード生成) https://pypi.python.org/pypi/sqlacodegen

• matplotlib(グラフ描画)http://matplotlib.org/

• PY-RETROSHEET

Page 20: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

PY-RETROSHEET• RETROSHEETのCSVをRDB(MySQLなど)に変換するライブラリ

• RETROSHEETをアプリから使えるデータに

• 正規化は最低限、インデックスは無い

• https://github.com/wellsoliver/py-retrosheet

Page 21: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

デモIchiro Suzukiさん(41)のヤンキース時代を可視化

• デレク・ジーターが引退した日の打撃成績

• 2014シーズンの打球傾向(Battedball) →フライかゴロか会心の当たり(Line Drive)か?

Page 22: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

イチローさん (ジーターのヤンスタ最終戦)

Page 23: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

イチローさん (打球がラインドライブした数)

Page 24: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

他にもテクニック有り〼

http://www.shuwasystem.co.jp/products/7980html/4315.html

Page 25: Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3/25)

Let’s Play Baseball Hack!!!ご清聴ありがとうございました!

Twitter/Facebook/hatena: @shinyorke