SouthridgeCorp / player-outcome-predictor

Predictive modeling to forecast player outcomes over a T20 tournament
MIT License
0 stars 0 forks source link

Define PYMC multinomial logistic regression model for First Innings #28

Closed gireesh-fractal closed 1 year ago

gireesh-fractal commented 1 year ago
with pm.model(coords = COORDS) as bowling_outcomes_model_by_ball_first_innings:
  batter_id_by_ball_and_innings_data = pm.MutableData('batter_id_by_ball_and_innings_data',match_state_by_ball_and_innings_df['batter_id'].values)
  bowling_outcomes_by_ball_and_innings_data = pm.MutableData('bowling_outcomes_by_ball_and_innings_data',bowling_outcomes_by_ball_and_innings_df['bowling_outcome_index'].values)
  alpha_bowling_outcome = pm.Normal('alfa', mu=0, sd=1, shape=bowling_outcomes_index.shape[0])
  beta_for_batter_id_and_bowling_outcome = pm.Normal('beta_for_batter_id_and_bolwing_outcome', mu=0, sd=1, shape=(batter_id_index.shape[0],bowling_outcomes_index.shape[0]))
  mu_bowling_outcome = pm.Deterministic('mu_bowling_outcome',at.dot(batter_id_by_ball_and_innings_data['batter_id'],beta_for_batter_id_and_bowling_outcome) + alpha_bowling_outcome)
  probability_of_bowling_outcome = pm.Deterministic('probability_of_bowling_outcome',at.nnet.softmax(mu_bowling_outcome))
  bowling_outcomes_by_ball_and_innings_rv = pm.Categorical('bowling_outcomes_by_ball_and_innings_rv', p = probability_of_bowling_outcome, observed = bowling_outcomes_by_ball_and_innings_data)