SlideShare a Scribd company logo
Python
Professional
Baseball
Programming
Open Data Edition
Shinichi Nakagawa a.k.a. @shinyorke
(Pythonista & 野生の野球アナリスト)
Pythonプロ野球プログラミング - オープンデータ活用編
発表タイトルの由来
http://www.shuwasystem.co.jp/products/7980html/4315.html
自己紹介
• Shinichi Nakagawa(35)
• 某R社のWebエンジニア
• 野球とPythonが大好き
• セイバーメトリクス信者
• (自称)野生の野球アナリスト

→野球のオープンデータを
Hackしたり成果を発表したり
してます
野球ファンとして…
• 【MLB】Oakland Athletics(マネーボール好き)

→地区優勝したらコスプレします(証拠画像有り)
• 【NPB】北海道日本ハムファイターズ(地元だから)

※元々は阪神ファンでした
• 好きな現役野球選手
• 鳥谷敬(阪神)
• ココ・クリスプ(アスレチックス外野手)
• 尊敬する野球関係者
• ビリー・ビーン(アスレチックスGM)
• 野村克也(ノムさん)
• 新庄剛志(阪神の新庄が居なかったら野球見てない)
野生の野球アナリスト活動
• 発表

スライドはこちらを参照→ 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
スターティングメンバー
• 2015年プロ野球「ガッカリする」見どころ
• Python Professional Baseball Programming
スターティングメンバー
• 2015年プロ野球「ガッカリする」見どころ
• Python Professional Baseball Programming
2015年プロ野球
見どころ(楽しい方)
選手 見どころ 理由
柳田悠岐(ソ)
トリプルスリー!

(3割30本30盗塁)
・去年が惜しかった
・ヤフオクドームに

 ラッキーゾーン
成瀬善久(ヤ)
新天地で活躍!!
ヤ投の救世主に
・セにいないタイプの左腕
・新天地で心身ともに復活

 (希望)
菊池涼介(広) 3年連続GG
・ずば抜けた身体能力
・常人離れした判断力
・犬なみの機動力
2015年プロ野球
見どころ(ガッカリする方)
選手 見どころ 理由
柳田悠岐(ソ)
トリプルスリー
ならず!!!
ゴロ打球多い、BABIP高す
ぎ。ラッキーゾーンを活か
せるタイプではない!!!
成瀬善久(ヤ) 新天地でも花火師!
・本拠地は神宮
・被本塁打多い
説明不要ですね(棒読み)
菊池涼介(広) 3年連続GG?
過去二年の守備指標高すぎ
でそろそろ揺り戻しが来て
もおかしくない?
詳しい話は懇親会にて!!!
スターティングメンバー
• 2015年プロ野球「ガッカリする」見どころ
• Python Professional Baseball Programming
※ここから先はMLB(メジャーリーグ)の話です
Python Professional
Baseball Programming
• データを手に入れる
• データクリーニングと可視化(Python)
Python Professional
Baseball Programming
• データを手に入れる
• データクリーニングと可視化(Python)
データを手に入れる
メディア 概要 特徴
Sean Lahman
・野球選手のプロフィールと成績
・一部チームのデータもあり
・PyCon JP 2014でネタにした
http://www.seanlahman.com/
・CSV/SQL
・選手情報に特化
・試合情報はほぼ無い
・使いやすい
RETROSHEET
・スコアブックのオープンデータ
・試合情報が詳細に書かれている
・WEB+DB PRESS vol.84に記事が
http://www.retrosheet.org/
・CSVのみ
・情報がかなり充実
・フォーマットが独特
で使いにくい
Python Professional
Baseball Programming
• データを手に入れる
• データクリーニングと可視化(Python)
PythonでHack
• エディターとツール
• インフラ構築
• アプリケーション構築
RETOROSHEETをHackした時に使ったものを紹介します
エディターとツール
• PyCharm
• Pythonを代表するIDE(統合開発環境)

メッチャ使いやすい
• https://www.jetbrains.com/pycharm/
• IPython notebook
• 対話型インタプリタiPythonのWebアプリ版
• グラフ描画、データ解析の道具として便利
• http://ipython.org/notebook.html
インフラ構築
• Vagrant ※Ruby製
• 仮想環境構築・管理
• (中川個人としては)DBサーバーの構築・管理に活用
• https://www.vagrantup.com/
• Ansible
• Python製構成管理ライブラリ
• playbook(recipe的なやつ)にサーバー構成を書いて実行
• http://yteraoka.github.io/ansible-tutorial/
アプリケーション構築
• SQLAlchemy(O/R Mapper)

http://www.sqlalchemy.org/
• sqlacodegen(DB schemeからコード生成)

https://pypi.python.org/pypi/sqlacodegen
• matplotlib(グラフ描画)

http://matplotlib.org/
• PY-RETROSHEET
PY-RETROSHEET
• RETROSHEETのCSVをRDB(MySQLなど)に変
換するライブラリ
• RETROSHEETをアプリから使えるデータに
• 正規化は最低限、インデックスは無い
• https://github.com/wellsoliver/py-retrosheet
デモ
Ichiro Suzukiさん(41)のヤンキース時代を可視化
• デレク・ジーターが引退した日の打撃成績
• 2014シーズンの打球傾向(Battedball)

→フライかゴロか会心の当たり(Line Drive)か?
イチローさん
(ジーターのヤンスタ最終戦)
イチローさん
(打球がラインドライブした数)
他にもテクニック有り
http://www.shuwasystem.co.jp/products/7980html/4315.html
Let s Play Baseball Hack!!!
ご清聴ありがとうございました!
Twitter/Facebook/hatena: @shinyorke

More Related Content

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