日誌-(6)試合進行アルゴリズム作成-打者vs投手


中心的な打者と投手の対決アルゴリズムを作り始めた.
約40年続く試合なので、統計学的な方法ozが必要です.
必要なのは、打者と投手の個人出線率と被出線率、打者と投手の年間リーグ平均出線率、約40年のkbo総リーグ平均出線率です.
まずは比較する投手と打者の個人出塁率を求めたoz
batter_oz = batter_obp / (1 - batter_obp)
pitcher_oz = (1 - pitcher_obp) / pitcher_obp
その後、出撃投手と投手の年間リーグ平均出場率のozを求める.
batter_league_obp_oz = batter_league_obp / (1 - batter_league_obp)
pitcher_league_obp_oz = (1 - pitcher_league_obp) / pitcher_league_obp
最後に、リーグ通算平均出場率ozとともに算出し、2選手の出場率(出場率)を得た.
vs = ((batter_oz / batter_league_obp_oz) / (pitcher_oz / pitcher_league_obp_oz))
* total_league_obp_oz

vs_obp = vs / (1 + vs)
最も基本的なアルゴリズムが完成した.次に、各打者のデータに基づき、それぞれの確率で安打、二塁打、三塁打、本塁打、四球を選出する.
投手もゴロ、フロート、三振を打とうとしたが、特定の年から詳細なデータがなく、33.333の確率でしか投げられなかった.
Pythonランダムモジュールの選択を使用しました.
hit_kind = ['안타', '2루타', '3루타', '홈런', '볼넷']
run_rate = [hit_one / hit, hit_two / hit, hit_three / hit, home_run / hit, BB / hit]
hit_def = choices(hit_kind, run_rate)
最後に、投球数に応じて投手を交代させるため、一撃ごとに投球数をランダムに出力する.最大10個、四球1回4~10個、三振1回3~10個を想定し、残り1~10個をランダムに出す.
今、最も複雑で、最も時間のかかる基礎訓練と採点のアルゴリズムを制定しなければならない......