Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

価値を見せる技術 #DevLOVE ベースボールからみる技術

2,765 views

Published on

DevLOVE #204 登壇資料
https://devlove.doorkeeper.jp/events/60625

Published in: Software
  • Be the first to comment

価値を見せる技術 #DevLOVE ベースボールからみる技術

  1. 1. 価値を見せる技術 Shinichi Nakagawa(@shinyorke) Retty.Inc Engineer/Baseball Scientist ベースボールからみる技術 2017/6/6 〜野球×エンジニアリングではじめるデータ分析と可視化のススメ〜
  2. 2. IT勉強会 ユニフォーム正装化活動中 写真付きでシェアおねがいします!
  3. 3. Who am I ?(お前誰よ) ■ Shinichi Nakagawa(@shinyorke) ■ Retty.Inc Tech Lead/Engineer ■ たまに「野球の人」と呼ばれる ■ Career(球歴...ではない) ✓ WASHIN SYSTEMS(2000-2003) ✓ BayCurrent Consulting(2004-2014) ✓ Recruit Sumai Company(2014-2016) ✓ visasQ(2016) ✓ Retty(2017-今) ■ #Agile #Scrum #LeanStartup #Python #セイバーメトリクス ■ 登壇歴など ✓ XP祭り 2015(Talk) , 2013,2014,2016(LT) ✓ PyCon JP(2014, 2015, 2016) ✓ その他いっぱい ✓ 「野球」「技術(Python)」「Agile」の掛け合わせが多い
  4. 4. blog「Lean Baseball」 http://shinyorke.hatenablog.com/
  5. 5. 野球×技術×Agile = 私がやりたいこと ■ 2020年までに成し遂げたいこと ✓ 東京オリンピックの侍JAPANでEngineerとして価値を創る ✓ Rettyが今以上に「食を通じて世界中の人々をHappyに」させる ■ Engineerとして「野球での価値創造」に必要な知見を まとめる場としてブログをはじめた(2014年から) ■ 主な記事 ✓ 初心者がPythonを覚える為の本の選び方を体系化してみた ✓ 【野球】30分でわかるセイバーメトリクス ✓ たった数行のPythonコードで打者大谷翔平の凄さを見てみる ■ 3年続けた結果,SEO的にこんな事に...w ✓ 「Python 入門」で検索順第六位(広告を除く) ✓ 「Python 本」で検索順第三位(同上) ✓ 「セイバーメトリクス」でWikipediaの次 ✓ 「野球統計学」で検索順第一位!
  6. 6. DevLOVEとRettyのDiff #とは ※DevLOVEのテーマ「現場のDiffを取る」から拝借しました
  7. 7. DevLOVEとRettyのDiff #とは ※DevLOVEのテーマ「現場のDiffを取る」から拝借しました
  8. 8. RettyのDiff - 挑戦と越境(2016-2017) ■ 多くのユーザーさんにHappyを届ける機械学習基盤 ✓ Retty流『2200万ユーザを支える機械学習基盤』の作り方 ✓ 社内で24時間好きなだけGPUを使える環境の実現 ✓ CTO+若手エンジニアの「越境」 ■ アプリの開発を最適化する技術的な挑戦 ✓ RettyとKotlinの歩み〜アプリからサーバサイドまで ✓ リニューアル版はAll Kotlin,サーバサイドAPIもKotlin化 ✓ Androidエンジニアチームの「越境」 ■ User Happyをささえるチームとプロセス創り(途中) ✓ User Happyをささえるアジャイルのココロとスクラムのキホン ✓ アジャイル・スクラムを軸とした発想とプロセスのカイゼン ✓ 私(中川)が全社的なスクラムマスターとして「越境」の途中 ■ その他にも多くの挑戦・越境をしてます!(いずれ紹介したい)
  9. 9. 野球ファンとプロ野球のDiff #とは
  10. 10. 野球ファンとプロ野球のDiff #とは
  11. 11. 野球ファンとプロ野球のDiff - 2017春 ■ 楽天ゴールデンイーグルスが今年大躍進している理由 ■ 読売巨人軍が10連敗もしてしまうのは何故? ■ 近藤健介(北海道日本ハムファイターズ)が打率4割をキープ ■ その他にもたくさんある これらの疑問・知的好奇心を「見える化」し, チームや選手の「価値」を明らかにしたいよね? →それ,エンジニアリングでやれますよ!
  12. 12. Starting Member
  13. 13. Starting Member 1. プロ野球における「価値」 #とは 2. 「価値」を見せるエンジニアリング a. セイバーメトリクス(野球統計学) i. 得点期待値(Linear Weights) ii. 得点価値(Run Value) b. PyData(Pythonによるデータ分析と可視化) i. PyData #とは ii. なぜPythonなのか(他の手段との比較) iii. データを集める(Scrapy, Beautifulsoup) iv. データを見せる(Jupyter notebook, Redash) c. Agile i. やることを言語化する(インセプションデッキ) 3. 実例 4. 結び
  14. 14. プロ野球における「価値」 #とは
  15. 15. プロ野球における「価値」=「勝利」「得点」 ■ プロ野球(に限らずプロスポーツ全般)は勝つことが大事 ■ 勝利を積み重ねる事により,すべてが上手く循環する. ✓ 順位が上がる ✓ 観客が増える ✓ 選手が有名になる ✓ 集客に有利になる ✓ ファンも球団もWin-Winになる ✓ 逆はあっ(察し ■ 試合に勝つ=相手より得点する(失点を抑える)こと ■ シーズン得失点差がゼロだと勝率5割の可能性が高い この法則をピタゴラス勝率と呼ぶ ■ 選手が得点に貢献(or失点に関連)しているかを分析・可視化 することにより,プロ野球選手の価値を見える化できる ■ これらを統計学的に分析する手法をセイバーメトリクスと呼ぶ
  16. 16. 「価値」を見せるエンジニアリング
  17. 17. ● セイバーメトリクス ● PyData ● Agile
  18. 18. ● セイバーメトリクス ● PyData ● Agile
  19. 19. セイバーメトリクス(野球統計学) ■ 野球を分析するために必要不可欠なドメイン知識 ■ 野球を客観的かつ統計学的に分析・評価する考え方のこと. 書籍・映画「マネーボール」により広まった. ■ 野球への情熱・知識だけでなく,以下の知識とスタンスが必要 ✓ 記録の付け方・読み方 ✓ ルールの正確な把握 ✓ 自身のプレー体験など,主観的な見解・思い出を胸にしまう ■ プレー・野球観戦を多くしているだけでは使いこなせない! →主観性を捨てる,新しい考え・変化を受け入れる勇気 ■ これって野球以外のドメインでも同じ #では ※個人的な見解です
  20. 20. 得点期待値と得点価値 - KPIの基礎となる考え ■ セイバーメトリクスには得点に関する以下の数値・概念が存在 ✓ 得点期待値(Linear Weights) ✓ 得点価値(Run Value) ■ 得点期待値(Linear Weights) ✓ 3アウトをとられるまで入るであろう得点の平均値 ✓ 過去成績を元に,アウトカウント・ランナー状況毎に 入った得点の平均値から算出する ■ 得点価値(Run Value) ✓ あるプレーが得点期待値を上げた(下げた)かを評価する考え方 ✓ 一死一塁で二塁打だったら得点期待値がUP,アウトならDownとか ■ これらはwOBA,wRAAなどを用いて可視化(実例は後ほど) ■ もっと詳しく知りたい方はリンク先or専門書をどうぞ
  21. 21. ● セイバーメトリクス ● PyData ● Agile
  22. 22. PyData #とは
  23. 23. PyDataとは,データ分析やデータ活用に PythonならびにPython Libraryを 利用しようという人類の営みの総称 @iktakahiro さん「PyData で見るサンフレッチェ広島」より引用
  24. 24. Pythonとデータ ■ Python is 何? ※念のため ✓ いわゆるLightweight Language(LL言語)の一種 ✓ RubyやPHP, Rと並んで語られることが多い ✓ 組み込み・Web・GUIそしてデータ分析と何でも使える ■ Pythonとデータ ✓ 統計パッケージのR,プログラミング言語のC/C++,MATLABの 領域をすべてこなせるオールラウンダーな言語でもある ✓ 特にデータ,(最近流行りの)機械学習・Deep Learning周りは強い − Tensorflow − Chainer − Keras − これ全部Pythonなのよ ✓ 統計パッケージ・データ収集&前処理に強いライブラリが多数 ✓ データ収集-分析-可視化までALL IN ONEで作る時はPython!
  25. 25. Python以外の言語でデータやりたいのだが... ■ 使い慣れてるRubyやJava,PHPでやりたい?気持ちはわかる ■ でも,(教育コストを差し引いても)Python覚えたほうが良い ■ 多言語との比較 ※データ分析な文脈(Webなどは含まず) ✓ [Ruby]ライブラリ&ノウハウの充実度的にお話しにならない ✓ [Java]Rubyよりは良い印象だがPythonの方が &いちいちビルドとかします? ✓ [PHP]あっ #察し ■ ただし,以下の場合は他の言語の方が良い ✓ パフォーマンスほしければCとかC++ (Cythonなどの実装系で逃げる手はあるとはいえ) ✓ 統計モデルを扱うならR (Pythonでもできるが,慣れている人はRの方が良いらしい) ■ 技術は正しく選んで使いましょう! ■ なおRettyでは一部Python製のプロダクトあります &データ分析・可視化はほぼPythonです(他と併用しつつ)
  26. 26. 【例】野球データ分析環境 ※実際の構成と同じ データ分析と可視化 データ収集と保存
  27. 27. 【例】野球データ分析環境 ※実際の構成と同じ データ分析と可視化 データ収集と保存 ✗ (MySQLを除き)すべてPython製です!
  28. 28. PyDataならこれを使え!(中川オススメ) ■ データの収集と保存(クローラー/スクレイピング) ✓ クローラーとスクレイピング両方まとめて開発ならScrapy ✓ MySQLなど,DBの操作ならSQLAlchemy(O/R mapper)が強い ✓ 収集〜前処理〜保存のJOB管理はAirflowやluigiが良い (Rundeckと役割はほぼ同じ) ■ 分析と可視化 ✓ 定期的に見たいレポートやKPI通知はRedash ✓ 仮説・推論に基づき都度実験・分析したい場合は, − 実行環境としてJupyter notebook ※Rubyなども利用可能 − データ操作&前処理としてpandas − グラフ描画でmatplotlibやseaborn, Bokehなど ■ 重要なポイント(言いたいだけ) 「PyData = Deep Learning(または機械学習)」じゃない!
  29. 29. ● セイバーメトリクス ● PyData ● Agile
  30. 30. Agile = 「価値」あるプロダクトを速く作る ■ データ分析(に限らずプロダクト開発)でよくあること ✓ 要件(やりたいこと)が膨らむ ✓ よそ見をする ✓ 手段が目的化する ✓ 他にもいっぱい ■ 見せるべき「価値」を最初の内に言語化し,一気に作り切る! ■ 思想と手法 ✓ アジャイルサムライでおなじみ,インセプションデッキを書く ✓ 不確実性が高い場合はLean Canvasなどで関係性を整理 ✓ 目的とやる/やら,見るべき指標を言語化するのがポイント!
  31. 31. エレベーターピッチ(目的を一筆書きする)
  32. 32. やらないことリスト(やること・やらないことを宣言,もやりポイントも)
  33. 33. アーキテクチャ(あらかじめ使う技術を決める,よそ見しないように)
  34. 34. 実例 - ブログのネタより
  35. 35. このネタの最新バージョンです. http://shinyorke.hatenablog.com/entry/baseball-wraa-20170506
  36. 36. テーマ「wRAAを用いて選手の得点力を比較」 ■ 得点価値(Run Value)を元にした指標「wRAA」を用いて評価 ■ wRAA(Weighted Runs Above Average) #とは ✓ リーグ平均打者が同じ打席数立った場合に比べて, 増やした(減らした)得点を示す ✓ リーグ平均打者 = 0 ✓ リーグ屈指の打者は10以上 ✓ チームのスタメンクラスでプラス ✓ マイナスは足を引っ張っている可能性大 ■ 算出条件 ✓ 2017/6/4時点のデータを使用 ✓ 50打席以上の出場がある選手のみ対象 ✓ 計算式に使うLeague wOBAは0.320で固定
  37. 37. [再掲]野球ファンとプロ野球のDiff - 2017春 ■ 楽天ゴールデンイーグルスが今年大躍進している理由 ■ 読売巨人軍が10連敗もしてしまうのは何故? ■ 近藤健介(北海道日本ハムファイターズ)が打率4割をキープ wRAAで証明しようじゃないか!
  38. 38. 楽天ゴールデンイーグルスの躍進の秘訣は? →スタメンの半数以上がwRAAがプラス,特に茂木凄い!
  39. 39. 読売巨人軍の闇(の一つ) →マギー・坂本は合格,他が...そりゃ得点力無いわ
  40. 40. 北海道日本ハムファイターズの今 →近藤におんぶにだっこ過ぎる,大田泰示のパフォーマンス◎
  41. 41. 他のチームは!? 全部説明すると時間無くなりそうなので割愛m(_ _)m ※近日中にブログで公開します!
  42. 42. 結び
  43. 43. [結び]ベースボールからみる技術 ■ プロ野球における「価値」 #とは ✓ プロ野球チームの「価値」は「勝利」である ✓ 「勝利」するためには「得点」が不可欠 ✓ 「セイバーメトリクス」による言語化が必要 ■ 「価値」を見せるエンジニアリング ✓ ドメイン知識(セイバーメトリクス)を活用する ✓ データの分析と可視化はPythonが強い ✓ 価値の言語化としてAgileプラクティスを活用 ■ ベースボールからみる技術 #とは ✓ そら (得点する方が勝つに) そうよ(決まってるじゃないか) ✓ ドメイン知識と技術,Agileは正しく使いましょう
  44. 44. (ちょこっとだけ)宣伝
  45. 45. 食の世界で一緒に「越境」したい方募集! ■ 食のドメインで一緒に越境しようぜ! ■ 技術(機械学習,データ,Pythonほか) ■ プロセス(Agile,Scrum,Lean) ■ チェンジエージェントな挑戦したい! ■ なお弊社野球好き多いです ぜひ,お声掛けください!! http://corp.retty.me/team/ https://www.wantedly.com/companies/retty
  46. 46. ご清聴ありがとうございました. Shinichi Nakagawa Twitter/Facebook/hatena/etc… @shinyorke

×