Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

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

3.018 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

価値を見せる技術 #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

×