読者です 読者をやめる 読者になる 読者になる

Lean Baseball

Engineering/Baseball/Python/Agile/SABR and more...

野球Hack!2015年まとめ~Pythonで趣味プログラミングをする方へ.

Python Advent Calendar Baseball

Python その2 Advent Calendar 2015の12日目の記事です.

Pythonで趣味プログラミングと言えば野球!(ぇ

...ということで、今年(2015年)に紹介された野球Hack事例を紹介したいと思います.

なお、Pythonのコードやすぐ使えるTipsは出てきませんのであしからず.

Starting Member

  • Who am I ?(お前だれよ)
  • 野球Hack!とは?
  • 野球Hack!事例紹介(2015)
  • これから野球Hack!(または趣味プログラミング)をしようかな?という方へ
  • 参考文献など
  • 宣伝&次の方

Who am I ?(お前だれよ)

  • @shinyorke ※「しんよーく」と読みます*1
  • Pythonで野球の人. 生活をするため八重洲の会社でWebエンジニアをやっています.
  • 40になるまでに野球の仕事をするのが目標(4年後).
  • PyCon JP 2014,2015などでPython×野球のデータ分析&可視化に関する発表をさせてもらいました
  • メイン言語はPython、実践(仕事)で使うレベルだとJavaRuby、最近はGo langにハマり中

野球Hack!とは?

私が勝手に作った造語です.

野球が好き・興味ある人が、好きな言語・好きなツールを使い、野球のデータを分析したり野球に関する何かを作ってウェーイ!って楽しむこと

を一言で説明するためにでっち上げた定義です.

野球のデータでプログラミングをする、「マネー・ボール*2」のように、セイバーメトリクスを実践する、Twitterのつぶやきを分析して「\横浜優勝!/」とか盛り上がる...など、野球に関して楽しくHackしていれば何でも野球Hack!になります.

野球Hack!事例紹介(2015)

気がついたネタがあれば追記していきます.

野球Hack!の元祖(?)であるPyCon JP 2015の発表および、次回(12/18)で100回目の開催を行うBPStudyもとい、Baseball Play Studyから事例を紹介したいと思います.

野球Hack!を目論んでいる方は、こちらのスライドや発表を参考に、自分に親しいネタを探したり参考にしてもらえるといいかも.

PyCon JP 2015(10/10,11)

www.slideshare.net

野球統計学セイバーメトリクス」を用いたデータ分析・可視化を行うノウハウをまとめた発表です.

データの取得とデータベース化、分析環境構築を、

  • OSSの野球ライブラリ(py-retrosheet, chadwick)
  • Infra as Codeなツール・ライブラリ(Ansible, vagrant, docker)
  • PyDataなライブラリ(IPython notebook, pandas, matplotlib)

を用いて行った事例となります.

なお、具体的なライブラリの使い方・観点・サンプルコードなどは以下にまとめています.

真似しようかな?と思った方は是非参考にしてください.

shinyorke.hatenablog.com

qiita.com

github.com

Baseball Play Study 2015(3/25)

Baseball Play Study 2015(BPStudy #91)より.

www.slideshare.net

Twitterのタイムラインから野球に関するつぶやきを抽出、ポジネガ判定するという素晴らしいネタですw

www.slideshare.net

スタメンデータベースを元に、「守備位置」「打順」を「たらい回されてる」住所不定な野球選手を可視化するという斜め上なネタですw

www.slideshare.net

打撃成績ベースで好不調の波を分析する、正統派の野球Hack!

www.slideshare.net

PyCon JP 2015で紹介したネタの元となったモノです.

なお、「ガッカリな見所」については全て外しましたw

その他

私が予測した「柳田悠岐トリプルスリーならず!」の件について、@amacbeeさんが見事なマサカリ投射を決めたLTについて.

amacbee.hatenablog.com

来年絶対リベンジしたい...!*3

これから野球Hack!(または趣味プログラミング)をしようかな?という方へ

野球に限らず、趣味でプログラミングしたい方に贈るアドバイスを三つほど.

  1. 「何のためにつくるか」の目標設定を明確に!
  2. 必要な知識はしっかり学ぶ(技術以外も)
  3. 作った&得た経験は即発表→フィードバックをもらおう!
1. 「何のためにつくるか」の目標設定を明確に!

自分の為に作るにしても、サービス化して世界中の人に使ってもらうにしても、明確な目標が無いと継続は難しいです.

日曜プログラミングだと、わからないところがあってハマったり、遊びとか色々誘惑があるわけですが、目標があるとブレずに進みます.

「40までに野球の仕事をやるぞ!」...っていう人生をかける目標まで立てなくていいと思いますが(笑)、何かしらのゴールを設けたほうが進むことは確かです.

2. 必要な知識はしっかり学ぶ(技術以外も)

たとえ趣味や好きなモノ・詳しいモノのネタでも、いざ進めると必要なドメイン知識が結構あったりします.

野球の場合だと、記録の残り方とかルールなど、いざやってみると調べることだらけでラチが開かなくなったので、公認野球規則や審判向けの教則本を買って読んだりしました.

なので、作るテーマに合わせてドメイン知識をしっかり得ることを心がけたほうがいいと思います.

3. 作った&得た経験は即発表→フィードバックをもらおう!

これが一番難しいと思います.

勉強会やイベントの成果発表・LTでやったことを披露、フィードバックをもらうと次へのヒントが得られる&新しいアイデアや解法が手に入るのでオススメです.

また、同じ目的・趣味の仲間を増やす点でも有効です.

私の場合、主に#pyhackを発表&フィードバックの場にさせてもらっています.

参考文献など

Pythonセイバーメトリクスを使って野球Hack!をする際に参考となる書籍はこちらになります.

技術だけでなく、野球ドメインのハナシも揃えました.

実際、私も活用しています.

何から勉強しようかな?と迷っている方は是非ご参考に.

野球・セイバーメトリクス

野球統計学の一番わかり易い実践例

勝てる野球の統計学――セイバーメトリクス (岩波科学ライブラリー)

勝てる野球の統計学――セイバーメトリクス (岩波科学ライブラリー)

日本の野球分析事例とか考え方その1.

日本の野球分析事例とか考え方その2(やや難しい).

Analyzing Baseball Data with R (Chapman & Hall/CRC The R Series)

Analyzing Baseball Data with R (Chapman & Hall/CRC The R Series)

メッチャ難しい.

玄人向け.

ちなみに事例はRです.

Python

Pythonエンジニア養成読本[いまどきの開発ノウハウ満載!] (Software Design plus)

Pythonエンジニア養成読本[いまどきの開発ノウハウ満載!] (Software Design plus)

まずはPythonを書こう!動かそう!!っていう人はここから.

Python 2がベース.

Python ライブラリ厳選レシピ

Python ライブラリ厳選レシピ

徐々にコードを書き始める段階になったらこちら.

ちなみにPython 3ベースです.

Pythonプロフェッショナルプログラミング 第2版

Pythonプロフェッショナルプログラミング 第2版

アプリを作るために必要なノウハウを得るなら絶対この本.

設計、自動テスト、課題管理etc...仕事にも役立つネタ多数.

Agile関係

何を作るべきか?をちゃんと定義して進めたい人は是非.

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

アジャイル的なプロジェクト憲章「インセプションデッキ」について紹介している.

これはメッチャ便利で私も使わせてもらいました.

アジャイルサムライ~Pythonista道場 #PyLadiesTokyo 1周年記念パーティー 2015/10/24

野球Hack!の目的などを整理したい人は是非.

なお、すべての書籍を野球目的で買った・読んだわけではないですw*4

宣伝&次の方

12/18(金)に野球の話をやります!(Baseball Play Study)

BPStudyの記念すべき100回目が野球の会とのことで、なんやかんやで喋ることになりました!

bpstudy.connpass.com

Pythonでの野球Hack!話、、、とは別の話をさせて頂く予定です.

参加者はまだまだ募集中です!&何か野球のことを語りたい方は是非LTお願いします!*5

次の方

@wristさんよろしくお願いします.

*1:アカウント名の由来は本名+大好きなRADIOHEADのボーカル、トム・ヨーク(Thom Yorke)から拝借しました。野球は全く関係ありませんw

*2:野球データ分析が流行るキッカケとなった書籍・映画。MLBオークランド・アスレチックスを舞台にしたノンフィクション小説

*3:ハムファンなので

*4:AgileとかScrum、Infra as codeは特に

*5:なお、ユニフォーム着用は必須ではないですw