Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Predict Salary of Baseball Player

Dan.Namba
March 27, 2019
2.5k

Predict Salary of Baseball Player

Dan.Namba

March 27, 2019
Tweet

Transcript

  1. * * なんかややこしいしピンと来ないかもしれないので 馴染みのある借金貯金方式でも測る 予測精度の評価方法 <例> 選手名 実際の年俸 DELTA予測 私の予測

    勝敗 柳田 悠岐 57,000万円 60,000万円 47,000万円 負け 菊池 涼介 24,000万円 18,000万円 19,000万円 勝ち N・ソト 9,500万円 11,000万円 10,000万円 勝ち 岡本 和真 8,000万円 5,000万円 6,000万円 勝ち 陽川 尚将 2,000万円 1,800万円 2,300万円 負け ※ 今回対象となる野手の総数は285名 (この表の数字はダミー) 3勝2敗(+1)
  2. * * まずはどんな指標が年俸を決めるのに役に立ちそうか考える。 そのためにデータを眺めたりセイバーメトリクスを勉強したりする。 結果決めたのが下の項目。 やったこと① データを決める ⚫ 基本情報 年齢

    前季年俸 所属チーム 出場試合数 助っ人 ⚫ 打撃成績 打席数 安打数 塁打数 HR数 打点 四球 故意四球 死球 ⚫ 走塁成績 UBR wSB ⚫ 守備成績 Defense <注釈メモ> 本当はモデルの調整プロセスでこれらの項目も何 度も見直すべき。今回はこれらの項目で据え置い た。(時間・体力の制約上。)
  3. * * ⚫ 工夫ポイント やったこと① データを決める ➢ 打率等、少ない打席数では価値が測れないものは含めない。 規定打席に到達していない選手も年俸はもらうので。 ➢

    守備指標については、一般的に知られるUZRではなく、ポジションの重要 さが考慮されるDefenseを採用した。(年俸における守備の価値には、ポ ジションの重要さも反映されていると思ったので。) ➢ wighted系の指標は「得点価値」をベースに重みが決まるが、今回は各数 字を「年俸」をベースに重みづけしたい。よって今回は極力入力変数と して扱わないものとした。 ➢ 走塁については、走塁企画数を考慮する方法に苦慮。盗塁成功率は打率 と同様の理由で入れることが出来ない。やむなくwSBを用いることとした。 また、盗塁以外の走塁を考慮するために、UBRも加えた。(間違ったこと 言っている気がするので有識者に相談したい・・・。)
  4. * * ⚫ スクレイピング やったこと② データを揃える整える ➢ データをWEBサイトからいい感じに取得。今回は1.02Essence of Baseballから拝借。

    ➢ ログインが必要だったのでSeleniumを使用。 ➢ 2015年~2018年までの欲しい項目一式をCSV形式で手に入れる。 ⚫ データクリーニング ➢ 翌年契約していない選手のデータは答え合わせが出来ないので、 一律除外。 ➢ チームをOne-hot表現(次スライドで説明)に変更。 ➢ 名前にカタカナが含まれるかどうかを基準に、助っ人フラグを立 てる。 <余談:名前にカタカナが含まれたから個別に修正した日本人選手> オコエ 瑠偉・サブロー・三ツ俣 大樹
  5. * * やったこと③ モデルを作る 1. 2015年~2017年データを訓練データと検証データに分割。 2. 様々なアルゴリズムで簡易的に学習を行い、ある程度の精度が見込める アルゴリズムを選定する。 <今回試行したアルゴリズム>

    重回帰・RandomForest・NeuralNetwork・決定木・SVR・Ridge・ExtraTree・ GradientBoosting・XGBoost・KNeighbors 個々のアルゴリズムの特性や、そもそものバリエーションを体系的に理 解していないため、もっと知識が欲しいポイント。 3. 見込みがあるアルゴリズムについて、それぞれハイパーパラメータ調整。 調整にはGridSearchCVと、過学習を抑制するための人手調整も。 4. それらアルゴリズムをEnsemble。正しく行うコツを知らないため、こちら ももう少し勉強が必要。
  6. * * なんやかやあって出来た構成 XGBoost ExtraTree Gradient Boosting XGBoost XGBoost ExtraTree

    Gradient Boosting x14 x1 x2 x3 x5 x7 x9 x11 x4 x6 x8 x10 x12 x16 x13 x15 予測年俸 入力 Layer1 Layer2 Layer3 出力
  7. * * 結果発表 DELTA社 私のロボ RMSE MAE 2 8 4

    6 2 8 6 4 1 2 2 9 1 0 5 6 勝ち! 負け!
  8. * * 自己紹介 プロスピやってます。 フレンドを募集しています。 ←ID 趣味 ベイスターズとゲームと漫画 野球歴 小学校の頃に3ヶ月と社会人草野球2試合。

    キャッチャー。 ベイスターズ 歴 ラミレス監督就任後、応援しはじめる。 (ニワカですが、見逃して下さい!) ゲーム 主に格闘ゲームをやっています。ラスベガス 開催の世界大会でました。(エントリーすれば 誰でも出れるやつです。) 仕事 ITの会社で、今は事業企画の仕事をしていま す。 最近は機械学習の勉強を頑張っています。 お酒も好きです。仲良くして下さい。 よろしくおねがいします! 難波 大輔(31歳、横浜出身)