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

Lean Baseball

Pythonで野球の人です.日ハムとアスレチックス,UK Rockが大好物.

野球統計学で2016年広島東洋カープの強さを証明しよう!〜PyCon mini Hiroshima 2016レポート

Baseball Python イベント セイバーメトリクス

本日開催のPyCon JPの地方版, PyCon mini Hiroshima 2016にて,

広島東洋カープの強さをPyDataと野球統計学"セイバーメトリクス"で証明したよ!」

というお話をさせていただきました!

発表スライド

www.slideshare.net

動画

youtu.be

内容(ざっくり)

  • 初心者向けPyData & 野球統計学入門
  • ピタゴラス勝率をpandasとIPythonでサクッと書く
  • Scrapy, matplotlib, pandas, seaborn, jupyterでFIP(DIPS)およびRC27(RC)を算出して広島東洋カープの強さを証明する.
  • 【結論】強力な中継ぎ陣&切れ目の無い打線が広島東洋カープの強さの秘密だった!

補足

【サンプル】セイバーメトリクスの「Hello World」〜2016年セ・リーグピタゴラス勝率を算出する

PyCon mini Hiroshimaピタゴラス勝率サンプル

【サンプル】FIP/RC27の算出

※後日公開(かも)*1

Q&A

覚えている限りで

Q:セイバーメトリクスの「セイバー」は何の略?

  • アメリカ野球学会(Society for American Baseball Research)の頭文字(SABRmetrics)
  • ライトセイバーとかは関係ないです.

Q:野球統計学の世界において、犠牲バントの評価はどうなのか?&計算などで使われているのか?

  • わざわざアウトを献上する戦術は無価値
  • RCの計算式に犠牲バントは「進塁能力」「出塁機会」の指標値計算の変数として用いられている

Q:選手の身長・体重を含んだ指標はあるのか?

  • メジャーな指標ではありませんが、一応ある
  • 体重が重いと故障しやすい、小さい投手はピークを早く迎える&衰え速い、などそんなのを分析するのに使う
  • 選手のフィジカルや身体能力は「投げる」「打つ」「走る」をベースに分析するのが基本

Q:何故日本シリーズは日ハムに破れたのか

  • シーズンデータと異なり、データが少ないのでセイバーメトリクスでの証明は難しい.
  • 仮説&主観ベースの意見だが、結局は采配の差(調子いい選手をいいタイミングで使えたか否か)が大きかったと思う.
  • センサーデータ(Pitch f/xやStatsCastなど)のデータがあれば分析可能かもしれない

今回も正装しました

なお、無事生きて帰れました.*2

もっと詳しくセイバーメトリクスを!

手前味噌ですが、過去に書いた記事をご覧頂ければと思います!

マネーボール他、参考書籍についても掲載しています.

shinyorke.hatenablog.com

shinyorke.hatenablog.com

なお、2016年版をいずれ書く予定です.

他の発表

基調講演

speakerdeck.com

感想(Twitter)

その他の発表

  • 広島の民泊、サイクリスト支援、(Python絡んでいないけど)観光データベースetc...活用方をPythonで見出す、という発表が多かった.
  • その他だと研究教育におけるPythonの活用、IoTネタ(光線銃ゲーム)などなど.
  • データ系と研究開発、IoTと完全に別れてWebネタがほぼ無かった(強いて言うならスクレイピングか).

*1:難易度が高い&これだけで一記事書けそうなのでホントに後日になりそう

*2:むしろ笑いが多かったからみんなやさしい

LEAN BRANDINGから考えさせられる,エンジニアな自分のブランディングとキャリアパス(ポエム)

Lean Branding キャリア ブランディング エンジニア

先に宣言しますが,書評の皮を被ったポエムです.

本の4章(全体で12章)しか読んでないけど、割とそこで気がついた事が合ったので書き留めます.

リーンブランディング ―リーンスタートアップによるブランド構築 (THE LEAN SERIES)

リーンブランディング ―リーンスタートアップによるブランド構築 (THE LEAN SERIES)

最近ちょこっと話題になってるこのブログあのブログの文脈ともつながるんじゃないか?

と気がついたことがあるのでメモ程度にポエムしたいと思います.

なお,エンジニア志望の学生さんや新人さんにはまだ早い内容です.

多分.

おしながき

LEAN BRANDINGってどんな本?

大雑把にいうと...

  • Lean Startupの思想とお作法をベースに,「ブランディングとはなんぞや?」を改めて解釈
  • スタートアップや社内新規事業の為のブランディングの本
  • サービスやプロダクトと同じく,ブランドだって適応しながらBUILD-MAJOR-LEANしてるのよ
  • 昔と変わらない「恐竜ブランド」VS仮説検証と適応を繰り返してグロースする「カメレオンブランド」
  • カメレオンブランドになるための考え方とかプロセスの紹介

読む上で大切なこと(なお3章までの内容な模様)

気になったキーワードを元に,ポイントになりそうな箇所を.

箇条書きは本の要約と,自分の感想です.

あらゆるモノや人は、少なくともひとつのブランドを表している。(第一章)

  • ブランドisユニークなストーリー ※ブランドの定義
  • ストーリー次第でブランドは関連付けられる
    • 製品×消費者自身のストーリー
    • 解決を約束できるか?
    • 競合他社に対するポジション(優位性、差別化)
  • 自分の感想「体験の総称」と思った(合ってるかしら?)

ブランド=ロゴではない(第一章)

  • ブランドは仮説検証を繰り返しながら動的に変わるもの = ロゴだけで語られるものではない
  • 顧客を獲得できるサービス・プロダクトは,「ブランドを動的に構築構築していた起業家」だけ
  • MVP(Minimum Viable Product)しかなくてもブランドは大切
  • つまりロゴはブランドが変わるたびにコロコロ変わる

リーンブランドは自己実現の近道になる(第一章)

ブランドは,消費者の「現在の自分」と「なりたい自分」を橋渡しするもの

ブランドについての誤解 (第二章) ※全部違うよ!

  • ブランドとはロゴである

  • ブランドは表面的だ

  • ブランドはマーケティングチームが管理するものである

  • ブランドはひとりで管理できる

  • 良い製品がさえあれば何もしなくても顧客を引き付けられる

  • ブランディングは、認知度を高めるためだけのものである

  • ブランドは計測できないので管理もできない

  • ストーリーと視覚的シンボル,成長戦略がそもそもブランドの根っこ
  • 根っこは仮説検証の中でいくらでもPivotする=良い製品は継続的成長の中で生まれる
  • Pivotを前提とするモノが,表面的だったり特定のチームが管理したり認知度を高めるためのパンダなはずがない
  • Pivotするということは計測が重要

ブランドストーリー (第三章)

  • ポジショニング

  • ブランドプロミス

  • ペルソナ

  • ブランドパーソナリティ

  • 製品

  • 価格

  • Pivotするもの=リーンだったりアジャイルなプロセスが通じる
  • MVPやプロトタイプと同様,顧客の「何」を解決し,「どのような価値」を生み出すかが重要
  • ブランドよりな考え方やアプローチだけど,ソフトウェアに通じるものがある

顧客の行動を変えるのはストーリーや不合理な衝動なのであって、事実や箇条書きなんかじゃない。(第三章)

  • ストーリーを説得する「ストーリーテリング」じゃなくて、ストーリーを表現して行動に移させる「ストーリーショーイング」が大切
  • ソーシャルメディアやデジタルチャンネル,ツールが揃ってもストーリーが表現できなきゃ意味がない

感想

ブランドは自己表現の第一歩!=人生そのもの

  • ブランドは,消費者の「現在の自分」と「なりたい自分」を橋渡しするもの ※大切なので二回言いました
  • 現在の自分→なりたい自分ということは,ブランドを通じて人は変化していく
  • ブランドの背景なストーリーが変わるということはブランドも合わせて変わるよね?
  • これって人生そのものでは

強く訴えるストーリーこそがブランディングへの近道

  • ブランドのロゴや製品そのものはストーリーを具現化する製品・機能でしかない
  • ストーリーはチームで作り上げるもの=ブランドはブランドチームのモノって事はないよね?図式的に

ブランドは常に変わる

  • 仮説検証を通じて適応していくということは常に変わる前提
  • ということはリーンやアジャイルにも通じる,というかそのものすぎる
  • ペルソナとかストーリーマッピングとかポジショニングマッピングが合うのは当然だよね

本そのものの感想

  • 30代以上のエンジニアで悩んでる人は第三章まで必読だと思う
  • エンジニア以外のビジネスマンにも◎, でも個人的にはエンジニアに第三章まで読んで欲しい(買うなり立ち読みなり)
  • あとはここまで書いた事に共感持てることあった人も.
  • 四章以降は具体的なプロセスや深掘りな思想なので,気になるところがあればつまんで読む感じがちょうどいいかと.
  • 読破するような本じゃないね絶対.
  • 総じてメチャクチャいい本でした!

LEAN BRANDINGから考えさせられる,自分のブランディングキャリアパス(ポエム)

最近ちょこっと話題になってるこのブログあのブログを読んだ上で.

LEAN BRANDINGの文脈と合わせて思ったこと.

思った&言いたいこと

自分の人生もブランドも「カメレオン」でいい

  • (エンジニアに限らず)20代・30代・40代...と、年代や状況によって、人生のストーリーは平気で変わる.
  • 20代はゼロイチで技術やビジネスを覚える、30代はそれを元でにジュウゼロにするのか違ったゼロイチにするのか...などなど.
  • 歳と経験,そして「徳」が積まれるタイミングで平気で変わるモンだぜ!ぐらいに気楽に考えるのがちょうどいいかなと.
  • もちろん,ライフイベントでも変わる(転職・結婚・etc...)

自分ブランドを下支えするストーリーを立てる&語る

  • 自分の人生のストーリーを意識して考える.リクルート風にいうと,「お前はどうしたい」っていうやつ.
  • 「お前はどうしたい」に対する問いから必要なブランディング戦略を考え,作り込む.
  • ブランディングの過程・ゴールが,「CなんとかO」や技術顧問,OSSへのコントリビュートなのかもしれない.
  • そこもやはり「カメレオンブランド」なので、ストーリーを軌道修正しながらブランディングを変えていけば.

「CなんとかO」も技術顧問もOSSコントリビュートもゴールではない(異論は認める)

  • (人によるけど)ストーリーって,抽象的かつ大きいものだと思う.
  • 「世の中の課題を解決したい」「世界一イケてるプログラミング言語を作りたい」「野球とITで世の中にイノベーションを起こしたい」とか.
  • 「CなんとかO」や技術顧問,OSSコントリビュートはブランディングやMVPであって,ストーリーとはちょっと違う.
  • 個人的には周りのCなんとかO,技術顧問,コントリビューターで「それそのものになりたくて」なった人はいない,もっと大きいストーリーを進めた結果でそれぞれのポジションに立っている.

で,お前(shinyorke)のストーリーとブランドは?

すっごい雑ですがこんな感じだと思う.

ストーリー

  • プロ野球またはメジャーリーグのフロントにエンジニアとしてJOINする(フルタイムかどうかは別として)
  • 2020年東京オリンピック,野球日本代表のスタッフ入り(勿論エンジニアとして)
  • そこに必要なエンジニアリングスキル(プログラミング・インフラ・開発プロセス)・思想を磨く
  • 勿論ビジネススキルも(マネージメント・英語・数学etc...)

ブランディング

...と, いう整理ができただけでもLEAN BRANDING読んでよかったと思いました.

リーンブランディング ―リーンスタートアップによるブランド構築 (THE LEAN SERIES)

リーンブランディング ―リーンスタートアップによるブランド構築 (THE LEAN SERIES)

それにしてもワールドシリーズ第七戦面白すぎる...

3回目のPyCon参加と3年目のコミュニティ参加と4回目の野球Python〜 #PyConJP 2016レポート

PyCon JP Python Baseball

こんばんは、野球Pythonの人こと@shinyorke(なかがわ)です.

盛会なまま、無事(いや、一部色々あったけれども)終了しましたね、PyCon JP 2016カンファレンスDay.

自分はSprintに参加する予定が無い(理由は後述)ので、一足先にPyCon JPをDone.しました.

トークセッションやポスターを聴いたりご覧になったりしてくださった皆さま、スタッフの皆さま、親愛なるPythonistaな皆さま、本当にお疲れ様でした&ありがとうございました!

今年のレポートは、33+4歳に掛けて、

  1. 3回目のPyCon参加で自分にもたらされた変化
  2. コミュニティ参加3年目を振りかえる
  3. (PyCon JPでの)4回目の野球トーク「ビックデータとPythonを用いた野球の統計分析」

この3つのテーマで自分語りをしたいと思います.

最初二つ(3回目のPyConと3年目のコミュニティJoin)はポエム、4回目の野球トークは純粋なレポートです.

1. 3回目のPyCon参加で自分にもたらされた変化

PyCon JP 2016は自分にとって、3回目のPyCon JP参加かつ、3回目の登壇になりました.*1

場所が変わり(プラザ平成→早稲田大学西早稲田キャンパス)、人数が増え、発表トラックも増えetc...沢山の変化がありましたが、今年は自分の中で大きな変化が二つほどありました.

変化①「他の参加者・スピーカーの手助けと背中押し」

トークのプロポーザルがはじまった4?5月あたりから、

  • 過去のPyConやPythonコミュニティで得た経験や知見を、コミュニティや会社、社会に還元したい
  • 「トーク、自分も応募していいのかな?」「参加するかどうか迷う」という方に対して、「いやいやそんなこと無いよ」「自信持って!」と背中を押すには?

という思いが強くなり、「助ける」「背中を押す」「押し付けにならないように、必要な知見・知識を継承する」という観点で意識を強く持つようになりました.

具体的には、トークセッションのレビューに参加してコメントやブログを通じて還元をしたり、ちょっとしたプログラミングやPythonをはじめるための勉強のお手伝いをしたり.

「自分が学び続ける」のと並行して、「アウトプットを出したり教えたりしたりを通じて他の人の学びを早め、自分も学ぶ」という方向に振り切るようになりました.

特にトークレビューの件はホントここを頑張りました.

shinyorke.hatenablog.com

自分がプロポーザルを書く側に回ってコメント頂いたり、フィードバックから学びを得た事を思い出しながら、自分が素直に思ったことを返すことによって物事が先に進んだり、自分のトークが準候補に落ちる程度にプロポーザル・発表のレベルが上ったりなど.

手助けや背中押しを通して違った目線でPyConにJOIN出来たのが自分にとって大きな変化だったと思っています.

変化②「余裕」

三回目の参加、(LT含めて)四回目のトーク.

流石に空気感や雰囲気も読めてくるし、会場は変わったといえ、個人的にはXP祭りで2013年から来ている早稲田大学西早稲田キャンパスだったので、気持ち的には余裕がありすごい楽でした.

トーク前緊張してお腹が痛くなるのは変わりませんでしたが(笑)、余裕のお陰で人には優しくできたんじゃないか?と思っています.

変化③「いろいろな人に声を掛けられる」

「去年の発表見ました!」 「野球の話が面白くてPyConに参加しました!!」

とかとか、大変ありがたくも野球キッカケで来た方が増えたりして、声がかかる機会が去年・一昨年と比べ多くなりました.

この辺も余裕につながっていたかも、と思うと同時にもっとちゃんとしないとな!と背筋が伸びる思いも出ました.

2. コミュニティ参加3年目を振りかえる

自分がPythonのコミュニティにJOINしたのがだいたい3年前で...という振り返りは「Python入門者の集い #2」というイベントで話をさせてもらいました.

www.slideshare.net

喋ろうかな?と思った理由・モチベーションはおおよそ最初に書いた理由(手助けと背中押しとかとか)なのですが、流石にもう3年以上いるし「初心者です!」「野球です!」だけじゃあかんやろ...という思いもあり、そろそろ新しい事をはじめよう!という気持ちになってきたのは良い変化なのかな?と思っています.*2

また、念願の「Python mini hack-a-thon 夏山合宿」に参加できたのも3年目の大きなイベントでした.*3

3. 4回目の野球トーク「ビックデータとPythonを用いた野球の統計分析」

と、まあここまできてようやっとレポートです笑

前回のエントリーにも書きました&ここでもちょこっと触れたとおり、「準候補」それも一番最後の準候補だったのにも関わらず、突然のトーク登壇決定となり、(トーク落選前提で応募していた)ポスターセッションと中30分の連投で登壇させていただきました!

資料、ビデオ、盛り上がりなどはこの辺をご覧頂ければと思います.

youtu.be

www.slideshare.net

@amacbeeのLTはこちら 日本人投手の2016年振り返り // Speaker Deck

togetter.com

2014年のトークとLT、2015年のトークから数えて4作目となる今作は、一球速報をテーマに遊ぶ!というネタでやらせてもらいました.

どれぐらい盛り上がったか?そして発表はせいこうしたのか!?について上記YouTubeなりトゥギャッターを見て頂ければと思いますが、個人的な感想としては、

334%の成功

でした!発表は当初プラン通り、盛り上がりは想定以上と良い結果でした.

...って書いてしまうとあんまりおもしろくないので、「何故@amacbeeが出てきたのか」「なかじまさん」の件についてちょろっと触れたいと思います.

何故、@amacbeeが出てきたのか

PyDataの人、PyLadies Tokyoの中の人でお馴染み@amacbeeさんですが、野球も大好きらしく、過去に(柳田悠岐のトリプルスリー無いわ!とDisった日ハムファンの野球Pythonの人に対してマサカリを投げる意味で)幾つかのエントリーを残してくれていました.

amacbee.hatenablog.com

amacbee.hatenablog.com

どのネタも野球的にもセイバーメトリクス的にも(&もちろんエンジニアリング・分析的にも)レベルが高く、野球でこのレベルで面白いこと出来る人は日本で4,5人しかいない(適当)の内の一人、ということで、(何かの飲み会で)やりませんか?と打診→二つ返事でOKという感じで決まりました.

なお、発表についての取り決めは、

  • pitchpxのデータセットを使う(MLB限定、データセットは予め取得済みの物を提供)
  • 発表は5分LTという形式をとる
  • 「正装」で発表する

たったこれだけでした.

結果うまく行ったしおもしろ内容だったしホント@amacbeeすげーなー、任せてよかった!と思いました(ホントに感謝)

「なかじまさん」事件

自己紹介で、

野球Pythonの人だけど、「shinyorkeさん」「なかがわさん」という名前も覚えてもらえると嬉しいな

と話した結果、質疑応答終了後のClosingで、ついつい背中の「9番Nakashima」を見てしまったのか、

なかじまさん発表ありがとうございました!

と会場担当が締めちゃういう事案が発生、発表終わってホッとしてた自分もそのまま「ありがとうございました!」と流して二重ボケという、

ユニフォーム正装化が招いた不幸な事件が発生しました(爆笑)

終わった後に会場担当の方から平謝りを受け、自分も「???」マークが沢山浮かんでいましたが、どうやら「正装」の「9番・中島卓也」が目に入っちゃったらしく、思わずなかじまさんと言ってしまったそうです.

まあ、正式には「なかしま」なのでそっちも間違ってるのですが...w

あとで気がついて個人的には大笑い、Well Doneパーティーでもその話題で小さく盛り上がりましたとさメデタシメデタシ.

おわりに

色々あったPyCon JP 2016、個人的には一足先に終わりました.

明日(24)にはスプリントの二日目がありますが、毎年恒例XP祭りと、初参加のABProにお邪魔して何か一発面白いことをしようと思っています!*4

スプリント行く人は楽しんで&野球やりたい人は是非スプリントリーダーになってください!(ってもう遅いかw)

と、いうわけでレポートはここでお開き.

最後にこれだけ言わせてください.

なんでや阪神関係ないやろ!*5

*1:2014,2015の二回、いずれもスピーカー参加.なお2013年のAPACはスプリントDayのみ参加しました(本編はチケット買ってない).

*2:あとは現実的な理由として、現在所属している会社・チームの若手に教えたり、全員に思想とかアプローチを継承して一緒に考える、みたいな事があるのでそういった事情も強く効いてるかもしれません(真顔)

*3:ここでのエモい話とかHackとかマウンテン・パパの美味しいご飯と空気は涙が出るくらい感動モノでした.あとはサプライズ誕生祝いもw

*4:会いたい人たちいるし、たまには違う視点で色々行きたいじゃん?

*5:この件は説明不要と信じたい.前回エントリーもしくは「野球 334」でググれ.

川崎Ruby会議で野球のLTをやってきました&PyCon JPで緊急登板することになりました! #kwsk01 #pyconjp

間に合った...

本日334...もとい、33+4歳になった私です.*1

ちょっと前の話になりますが、川崎のRubyコミュニティー「Kawasaki.rb」主催のイベント、「川崎Ruby会議01」に参加して、「いつもどおり」野球のLTをしてきました.

川崎Ruby会議01(2016/8/20)

スライドと動画

www.slideshare.net

(大変恐ろしいことに)LTの動画が残っていたので晒しておきます.*2

youtu.be

何を話したかったのか

川崎Ruby会議のちょっと前に、イチロー選手がメジャー通算3,000安打を達成、ここで個人的に気になった疑問、

  • 2015年はキャリア最低だった成績がなぜ復調したのか
  • やたらと四球が増えて三振が減少傾向になってる(凄くいい傾向)が、一体何があったのか

を、一球速報データを元に分析できないか?をテーマに実験した結果を話させてもらいました.

本当はキャリアハイの2004年(262安打&首位打者)と比較できたら面白かったのですが間に合わず...

ですが、既存の野球データと一球速報データの違い、重箱の隅をつつくような野球ハックで結構良かったんじゃないか?と思っています.

他の発表とか川崎Ruby会議の雰囲気

主催者メンバーの@chezouさん、@nk_ngzmさん、@Peranikovさん他、沢山の方がレポートを書いてくださっているのでリンクを転載しときます(手抜きじゃないよ)

chezou.hatenablog.com

ngzm.hateblo.jp

norizabuton.hateblo.jp

私の感想ですが、

  • 技術やテーマに対する、入り口の広さと、奥の深さを感じる、内容・雰囲気ともに十分に濃いイベントだった!
  • RubyScala、そしてPythonと言語やFW関係なく取り扱っているだけでなく、初心者・上級者両方楽しめるいい感じのレベル感だった
  • ポケストップにルアーを挿してあったのは助かった

あとは紹興酒を瓶で飲みきったとか、雨にあたって辛かったとか色々ありましたがトータルで凄く良い一日だったと思います!!!

【告知】PyCon JP 2016、トークセッションで「緊急登板」することになりました!(2016/9/22(予))

さて...例年Kawasaki.rbで発表練習して望んでいるPyConJP、今年はトークが「準候補」となりほぼ落選確実...でしたが、

この度急遽登壇することになりました!

pycon.jp

元々決まっていたスピーカーさんが急遽キャンセル、ということで、メジャーリーグ・オールスターの「32人目の男*3っぽく、スクランブル登板の順番が回ってきました.

ネタは川崎Ruby会議01でやったイチローさんに加え、

といったネタを予定しています.

二日目(9/22)13:30、Room202(去年より確実に広い場所)でハナシますので、お時間ある方は是非足を運んで頂けると幸いです!

また、前の時間にはポスターセッションもあるので、個別に野球やPythonの濃い話をしたい方はランチ後にお立ち寄りいただければと思います.

最後になりましたが、(結果的に)PyCon JPの壁打ち機会を下さったKawasaki.rbの皆さま、ありがとうございました!!!*4

pycon.jp

P.S. 誕生日なので恒例のアレ、一応貼っておきます.

www.amazon.co.jp

*1:このブログを読んでる人は意味がわかっていると信じたい(なんでや阪神関係ないやろ!). なお、37歳と言いたくないという意味ではありません.

*2:動画を取ってることに気がついてなくて...なんというか気がちょこっと抜けてるのがバレバレ&いつもにましてgdgdなLTで笑いましたw

*3:ベンチ入り最後の選手を投票で決めるやつです、メジャーでのやつをパクった形で日本でもあったハズ

*4:本当はLT自体ポスターのネタの壁打ちだったのですが、8月最後の日、北海道から帰京した夜に緊急連絡が入り急遽トークに昇格しましたとさメデタシメデタシ

「独習Python入門」は一生付き合える入門本だと334回言いたい

書評 Python 書評 野球

私がリスペクトするエンジニアの一人であり、ITエンジニア界隈の三大野球バカの一人*1であるござ先輩が本を出版されました.

gothedistance.hatenadiary.jp

大変ありがたい事に、献本を頂いたので久々に書評など書いてみようかなと思います.

f:id:shinyorke:20160805220626j:plain

[書評]「独習Python入門」

どんな本なのか

私の感想も含めて.

  • Pythonを元にしたプログラミングの入門本
  • 一人で学ぶ(独習)するときにハマりがちなポイントや、ステップアップするときに必ず覚えたほうがいい事を言葉の緩急を駆使していい感じに解説している!
  • 本を一冊やり切った(写経)した後も自宅の本棚に置いておきたい&必要に応じて再び読みたくなる本

私は読者層に当てはまらないのですが(汗)、初心者の気持ちになって思い出しながら読んで、 「ああ、最初にプログラミングを学ぶ本がこの本みたいなスタンスだと凄くいいな」 と素直に思いました.

こんな方にオススメ

本の冒頭にはこのように書かれていました.

  • これから、プログラミングを始められる方
  • プログラミングについて、どんなものだか興味を持っている方
  • プログラミングに挑戦したけれども挫折してしまった方
  • プログラマーが何を考えているか知りたい方

「一冊読みきって写経して動かしてうぇーい!」っていう入門本であれば、始められる方や興味を持ってる方が対象になりますが、この本のコンセプトの一つである(と思われる)、

途中から再開しても問題ないように工夫しました

という一文を読んで&実際読み通してみて、

「確かに、挫折経験ある人や、思想を知りたい人にも合ってる!」

と思いました.

いい意味でつまみ食いしやすい入門本、というのは結構素晴らしい価値なんじゃないかと思いました.

どこが素晴らしいのか

章立てがシンプル(=つまみ食いしやすい!)

上記に書いたとおり、途中からの再開を意識している構成で大変シンプルで読みやすい構成になってるなと思いました.

具体的には、

  • 11コの章が独立しつつもちゃんと文脈を保持している.「オブジェクトとクラス(7章)だけ読むわー」ってなっても前の章を探しまくる、的な事が少なくなるように出来てる
  • サンプルコードがシンプルかつ短め.クラス丸ごと一個とかそういうコードが少ない(もしかするとそもそも無いかも)おかげで、真似する上でのリスクが少ない.*2
  • 字の大きさ、色合い、イラストの工夫が良いのか1から10まで真面目に読まなくても直感で伝わる.

入門本として安心して読める(オススメできる)出来で素晴らしいです.

環境構築が優しい

この本で使われている環境は、

と実にわかりやすい、失敗するリスクも少ない良いチョイスだと思いました.

特に自分みたいなエンジニアになると、

  • エディタはやっぱvim(Emacs)やろ!(≒IDEって...w)
  • いやいや、やっぱPyCharmがナンバーワンや!!
  • Pythonは仮想化して入れたいンゴ

...となりがちなので、ある意味初心者に教えるときに危険だったりするのですが、方式として枯れているモノを駆使したシンプルな構成はやっぱいいなと思いました.

あと、個人的にはエディタではなくてIDEをベースにしたのはホントいいことだと思っていて、ちゃんとコード補完したり誤りを教えてくれる文明の利器は、初学者に限らず環境が許せばIDEを積極的に使うべき!と思ってるワタシ的には心のなかでガッツポーズをした程度にいい方向性だなと思いました.

ちなみに自分はIDE派でPyCharmを愛用していますが、最近Atomも軽くなったみたいだし再び浮気しようかな...と思いました.

学んだ後の事もフォローしている(≒一生付き合える!)

どんなプログラミング言語でも書いたものを動かす「だけ」ならせいぜい型まで教えればOKだと思うのですが、

を網羅しつつ、

  • Pythonにまつわるtips(文字コードとかインデントとか)
  • プログラミング全般にわたる学習テーマ(HTMLやデータベースなど)
  • 次のステップに向けてのアドバイ

を一冊の中で要所を締めて示唆してるのは凄くいいと思いました.

プログラミングを学ぶだけでなく、書き続けることを意識しているこの本は、

一生付き合える入門本

だと言い切れると思います!

Python的な部分でのいいところ

これは主にPythonista向けの感想.

  • 完全にPython 3の本!!!*3
  • 何気にbeautifulsoupでスクレイピングなんかもしちゃってる.
  • 参考書籍の一覧が鼻血モノ.

時折口語が混ざる文章

ござ先輩節といえばいいのか...口語がいい感じに混ざって読みやすかったです.

あと、思ったより野球ネタが少ないのにはあっ(察し

総評

1エンジニア&そこそこPythonを使って仕事したりプライベートで発表したりしているPythonistaとして、

自信を持って推薦できる素晴らしい入門本です!!!

もう一度いいますが、

自信を持って推薦できる素晴らしい入門本です!!!

です!334回ぐらいまで言い切ってもいいです*4

独習Python入門――1日でプログラミングに強くなる!

独習Python入門――1日でプログラミングに強くなる!

友達の誰か、特に野球でプログラミングをしたい方に半月ほど渡してみて、実際プログラミングが覚えられるのか、アダム・ダン率をPythonで書けるようになるのか?的な検証をしてみたいと思います.

最後になりましたが、ござ先輩、献本ありがとうございました!!!

*1:もう一人はビープラウドの佐藤治夫さん、あと一人はなんとなく察してください←

*2:リスク=動かない、写経しくじったとか.

*3:Python 2でプロダクト動いている会社のエンジニア的には羨ましい(小声)

*4:334の意味はググれ.野球のアレです

投手大谷翔平のパフォーマンスをPythonでサクッと分析してみる

Python 野球 SABR

日ハム14連勝&レアードサヨナラ弾(通称🍣弾)で気分が最高すぎますこんばんは.

こちらの続編となる分析ネタやりましたので軽く紹介します.*1

shinyorke.hatenablog.com

おしながき

  • 大谷翔平投手の2016年
  • さくっと分析してみる
  • MLBの二刀流投手と比較してみる

なお、今回も、

  • 気軽にできるネタです.
  • 機械学習とかそんな難しいテクニックは使ってません.
  • ちょっと興味持った方はぜひ好きな選手で試してみて.

という感じですので気楽に読んでいただければと〜.

大谷翔平投手の2016年

個人年度別成績 【大谷翔平 (北海道日本ハムファイターズ)】 | NPB.jp 日本野球機構より引用.

※7/9現在の成績となります.

開幕して4月は1勝もできず、今年大丈夫かな?と思ったこともありましたが、初勝利から8連勝中(たしか、間違ってたらすいません)、唸るストレートを軸としてリーグ一位の132奪三振をキメるなど、投手としても無双しています.

サクッと分析してみる

前回同様、個人成績から出せる範囲の数字で大谷翔平を分析してみたいと思います.

観点

セイバーメトリクス(野球統計学)の分野では投手を、

  • 三振を沢山取れる
  • 四球を出さない
  • ホームランを浴びない
  • フライよりゴロを打たせる ※ただしシチュエーションによる

上記の軸で評価を行うのが基本です.

ちなみにこれは野球統計学の分野では「DIPS (野球) - Wikipedia」と呼ばれています.

今回の分析では、太字の部分「奪三振」「与四球」「ホームラン」について触れたいと思います.

なお、

  • フライかゴロか
  • 球速やボールのキレ
  • 捕手との相性(大野と組むのがいいのかそれとも市川サイコーなのか、なお近藤(ry、的な奴)

はデータが取れないので今回はやりません.*2

分析テーマ

奪三振と与四球をテーマに、大谷翔平が2013年のプロデビューから、投手としてどのように変わっていったのかを見てみます.

一試合あたりの奪三振・与四球

  • 一試合あたりの奪三振(K/9)
  • 一試合あたりの与四球(BB/9)
  • 一試合あたりの被本塁打(HR/9)
  • 一個フォアボールを出す度に何個三振を奪っているのか(K/BB)
  • 参考値としてWHIP(投球回あたりの走者数平均)も合わせて出して比べてみる.

コードを書いてみる

これも前回と同じ環境・手順でやってみます.

ポイントは、

  • 日本プロ野球機構の成績表から投手成績のみを抽出する
  • 前処理として、欠損値のゼロ埋めとデータ型の変換(object to float)、イニング数が何故か別れて出ちゃうのでくっつける
  • 計算してプロットしてみる.

やったことはこれだけです.

gist4d5bd01353f02f0493a4ffa5ebeb55c1

結果と考察

グラフに書きだした後、ちょこっと考察してみます.

結果

グラフ少し見にくいかもスイマセン.

グラフ

上からK/9, BB/9, HR/9, K/BB, WHIPのグラフです.

BB/9とWHIPは右肩下がりになるとBest.

f:id:shinyorke:20160709164134p:plain

データ

pandasのデータフレームの中身です.

f:id:shinyorke:20160709164304p:plain

考察

総評!!!

  • 奪三振能力はさほど変わらず、去年の高水準をキープ.
  • 四球が増えている事により去年より少しだけパフォーマンスが悪化.
  • 本塁打がいい感じに減少.
  • どの数字もエースたる水準をキープ、野手としてのパフォーマンスを含め日ハムの大型連勝を支えているのもよくわかる.
  • 大谷翔平すげーわ.

一試合あたりの奪三振(K/9)

  • キャリアハイだった去年(2015)とほぼ同水準.
  • 去年の11という数字はかなりの高水準(9回投げる度に11個の三振を奪える計算)だが、今年もほぼそのペースを維持.
  • なお現役人類最強左腕クレイトン・カーショウドジャース)のK/9が10.8でこのレベルと同等というのは純粋にほめていいレベル.

一試合あたりの与四球(BB/9)

  • (ほんの少しだけ)悪化.
  • 去年が2.5、今年が3.
  • そういえば負けが続いてた春先は四球をちょいちょい出してたような&本日(7/10)先頭打者へのストレート四球で崩れた辺りにストライクゾーンを支配できてない苦労が伺える.

一試合あたりの被本塁打(HR/9)

  • 本塁打が減少傾向、大変素晴らしい!!!
  • 0.58→0.4→0.39→0.33と順調に減ってる.三試合投げて一発打たれる程度.
  • 余談ですが今シーズンの成瀬(ヤクルト)のHR/9は1.52でした(一試合当たり1.5発被弾、二試合で3発).

一個四球を出す度に何回三振を奪うか(K/BB)

  • 若干悪くなっている.
  • 三振が微減、四球増で少しだけ悪くなっている.
  • 人類最強左腕カーショウのK/BBは16.11、これは変態レベル.*3

WHIP(1イニングあたりの走者数)

  • 毎回1人は出してる、ぐらいの認識.
  • 先発投手のWHIPとしては十分エースといえる水準.
  • ただし、この数字自体は投手の実力だけでは測れないので参考程度.*4

【おまけ】MLBの二刀流投手と比較してみる

ちょっと前の記事になりますが、メジャーリーグでもリアル二刀流が実現しました.

www.nikkansports.com

サンフランシスコ・ジャイアンツのエース左腕でシルバースラッガー賞(打撃部門のベストナイン)で投手部門で二度獲得しているマディソン・バムガーナーが、チーム事情と日本の大谷翔平に刺激されて(?)、交流戦のアスレチックス戦(DH制あり)の試合で「9番投手」で先発しました.

そんなバムガーナー投手も大谷と同じ軸で見てみました.

なお、打撃に関しては流石に差がありすぎ(バムガーナーは野手として先発出場はしていない)、比較そのものに意味が無いので割愛しました.

コード

ほとんど同じコードなので割愛、データ元がESPNに変わった程度です.

Madison Bumgarner Stats - San Francisco Giants - ESPN

気になる方はこちらのGistを参照ください.

madison-bumgarner.ipynb · GitHub

結果(グラフとデータフレーム)

f:id:shinyorke:20160709171443p:plainf:id:shinyorke:20160709171456p:plain

総評

  • 大谷とほとんど似ていない、左右の違い、投球スタイルの違いが出ているような結果に.
  • 全般的に与四球をださない、三振やや多めで被本塁打がちょっと多い.
  • 自慢のコントロールに陰りが見えているのか、BB/9の数字が悪化してるのが気になる.

感想など

  • 大谷はやっぱ凄い.
  • 投手として最高のパフォーマンス見せつつ野手でも平均以上って事がデータだけでわかる.
  • 野手編として、他の選手(ヤクルト山田や広島鈴木など)もちょこっと見てみたい.
  • とはいえやりたい野球Hack(主にメジャー)があるので続きはどなたかよろしくお願いします!

*1:思ったよりはてブ集まったりGoogleのニューストピックスに乗ってびっくりました(゜o゜;ありがとうございますありがとうございます

*2:この3つ、MLBのデータでは分析可能でPyCon JPのProposalも出していたのですが残念ながら準候補に落ち着いたため、別の機会に発表します.

*3:7/9現在、121回を投げて、145個の三振を奪っておきながら四球がたったの9つ.もう意味がわからない...w

*4:インプレーの打球を捌くのは野手のミッションで、野手が下手糞だとWHIPも悪化する(逆もしかり)類の数字なので、「今年の日ハム守備いいな」ぐらいの認識が本来あるべき姿かも.

たった数行のPythonコードで打者大谷翔平がどれだけ凄いのかを見てみる

Python Baseball SABR

先に言っておくと、

  • あくまでもネタです
  • 機械学習とか高度なネタは出てきません.
  • あくまで参考程度に、ただし世の中のスポーツ系サイトや新聞よりまっとうにデータで見ている(と思われる)

そんな感じで気楽に見てもらえればと.

打者「大谷翔平」の2016年

打撃成績

前日(2016/7/2)までの成績.

本日(2016/7/3)は「1番(投)」で二刀流スタメン起用、プレイボール弾(初回初球先頭打者本塁打)を決めるなどして、打撃成績は向上しています.

ここでクエスチョン

  • 大谷翔平の何が変わったのか?
    • 三振が減った
    • 四球が増えた
    • パワーがついた
  • キャリアハイな成績を残す(と思われる)打者大谷の強みはナンだ!?

なお、

  • 二刀流した結果打撃に良い効果が?
  • 相手が弱くなったor自分(大谷)が強くなった

等の仮説は手に入るデータ(と時間)で検証するのは無理なので断念しました.

早速データを出した&検証してみました

検証方法

  • NPB(日本プロ野球機構)の公式データを元に、野球統計学で用いる指標を算出.
  • デビューした2013年〜今年(途中)までの数字を見比べる.
  • シンプルに「パワー(どれだけ長打を打つか)」と「我慢強さ(ボールの見極めができているか、簡単にバットを振っていないか)」に着目して見てみる.

使ったモノ

Python 3前提ですが、Python 2でも動くはず(試していません&保証しません).

環境はMac OS Xを想定していますがLinux/Windowsでも十分行けると思います.

不安な方はAnacondaなどを使ってください.

  • Python 3.5.2
  • pandas
  • Beautifulsoup
  • jupyter notebook

環境を作る

venvもしくはpyenvなどでPython 3.5.2の実行環境を作った後、pipで以下のライブラリをインストールする

$ pip install jupyter pandas lxml html5lib BeautifulSoup4 matplotlib seaborn

インストールが終わったらjupyter notebookを起動.

$ jupyter notebook

コードを書く&実行

PandasでHTMLから直接読めるよ!的な便利機能を初めて使いました.

大したコードになりませんでしたよと(所要時間:30分).

gistad401e1e8b0aba94b2d983aa96b81c1b

考察!

計算結果

ざっとこんな感じになりました.

f:id:shinyorke:20160704002923p:plain

数値の傾向

一般的な指標値からの想像

  • 出塁率長打率ともにヤバい!キャリアハイ待ったなし.
  • 44試合で22四球、「2試合に一回」程度四球を奪うようになってる.元々四球が少ない選手(70試合出て20個オーバーがやっと)な選手なのに、これは大きい.
  • 一方三振のペースは例年通り?このペースだと50個行かないぐらいで着地しそう.
  • (見ての通り)打率も高く、こちらもキャリアハイを十分狙える.

セイバーメトリクス指標からの想像

  • パワー・我慢強さ共に兼ね揃えたいい打者に!
  • 出塁・長打が多くOPSはリーグ屈指のクラスに.
  • 我慢強さを表すisoD(出塁率-打率)は前年の倍近く改善. 打率上がってisoD下がりそうなところが、ボールを選ぶ粘り強さで更に価値を出している.
  • 純粋なパワーを表すisoP(長打率-打率)も0.302と異常な数字に.そりゃ初回初球先頭打者プレイボール弾もキメるよね.
  • BB/Kが劇的ビフォーアフターな数字に! 四球1個取るのに5,6回の三振が必要だった去年とくらべ、今年は「三振1.4個あたり四球1個」となかなかの改善ぶりを見せている.

結論

  • 打者大谷翔平は我慢強さとパワーを兼ね揃えた化物に変貌していた!!!
  • 四球が増加したことによりStats(成績)全体が改善).
  • オフのトレーニング(ビルドアップ)の効果は長打という実にわかりやすい形で吉と出ている.

検証できなかったこと

いずれもデータの関係で出来なかった.

MLBならいくつか検証可能なのに...くやしい.

四球数の増加要因

  • 相手が警戒している
  • 大谷の選球眼がよくなった
  • ペイシェント(我慢強さ)を表す数字が手に入れば...!(ボールの数、スイング率など)

DH専任VS二刀流

  • いわゆる、「投手大谷としてのリズムが打者大谷に大して好影響を...」的な奴
  • 真面目な野球統計学の分野では割と否定される仮説なのだが、実際どうなんだろう?

周りの打者の影響

  • 中島卓也(ショート)が去年以上にカットしまくってるとか、レアードが打ちまくってるからとかとか.
  • 打線が大谷という「点」ではなく、中田や陽岱鋼ほかスタメンを含めた「線」で機能している→大谷勝負のみに集中できない?とか.
  • この辺は機械学習なアプローチで検証できるかも.

以上、久々の野球Hackでした.