James McCool commited on
Commit
55ed614
·
1 Parent(s): 46a3d32

Enhance opponent performance metrics in init_team_data function of app.py. Added calculations for kills, deaths, assists, and CS projections based on opponent statistics for both win and loss scenarios. This update improves the accuracy of team performance evaluations by incorporating opponent-specific boosts, enhancing the overall depth of statistical analysis.

Browse files
Files changed (1) hide show
  1. app.py +28 -16
app.py CHANGED
@@ -270,6 +270,14 @@ def init_team_data(team, opponent, win_loss, kill_prediction, death_prediction,
270
  player_tables = tables
271
  else:
272
  opp_tables = tables
 
 
 
 
 
 
 
 
273
 
274
  if kill_prediction > 0:
275
  player_tables = player_tables[['playername', 'teamname', 'position', 'playername_avg_kill_share_win', 'playername_avg_death_share_win','playername_avg_assist_share_win',
@@ -280,15 +288,17 @@ def init_team_data(team, opponent, win_loss, kill_prediction, death_prediction,
280
  team_data = player_tables.drop_duplicates(subset = ['playername'])
281
 
282
  if win_loss == "Win":
283
- team_data['Kill_Proj'] = team_data['wKill%'] * kill_prediction
284
- team_data['Death_Proj'] = team_data['wDeath%'] * death_prediction
285
- team_data['Assist_Proj'] = team_data['wAssist%'] * kill_prediction
286
- team_data = team_data[['playername', 'teamname', 'position', 'Kill_Proj', 'Death_Proj', 'Assist_Proj', 'wCS']]
 
287
  else:
288
- team_data['Kill_Proj'] = team_data['lKill%'] * kill_prediction
289
- team_data['Death_Proj'] = team_data['lDeath%'] * death_prediction
290
- team_data['Assist_Proj'] = team_data['lAssist%'] * kill_prediction
291
- team_data = team_data[['playername', 'teamname', 'position', 'Kill_Proj', 'Death_Proj', 'Assist_Proj', 'lCS']]
 
292
  else:
293
  player_tables = player_tables[['playername', 'teamname', 'position', 'playername_avg_kills_win', 'playername_avg_deaths_win', 'playername_avg_assists_win', 'playername_avg_total_cs_win',
294
  'playername_avg_kills_loss', 'playername_avg_deaths_loss', 'playername_avg_assists_loss', 'playername_avg_total_cs_loss']]
@@ -298,15 +308,17 @@ def init_team_data(team, opponent, win_loss, kill_prediction, death_prediction,
298
  team_data = player_tables.drop_duplicates(subset = ['playername'])
299
 
300
  if win_loss == "Win":
301
- team_data['Kill_Proj'] = team_data['wKill%']
302
- team_data['Death_Proj'] = team_data['wDeath%']
303
- team_data['Assist_Proj'] = team_data['wAssist%']
304
- team_data = team_data[['playername', 'teamname', 'position', 'Kill_Proj', 'Death_Proj', 'Assist_Proj', 'wCS']]
 
305
  else:
306
- team_data['Kill_Proj'] = team_data['lKill%']
307
- team_data['Death_Proj'] = team_data['lDeath%']
308
- team_data['Assist_Proj'] = team_data['lAssist%']
309
- team_data = team_data[['playername', 'teamname', 'position', 'Kill_Proj', 'Death_Proj', 'Assist_Proj', 'lCS']]
 
310
 
311
  return team_data.dropna().reset_index(drop=True)
312
 
 
270
  player_tables = tables
271
  else:
272
  opp_tables = tables
273
+ opp_pos_kills_boost_win = dict(zip(tables['position'], tables['overall_win_kills_boost_pos']))
274
+ opp_pos_deaths_boost_win = dict(zip(tables['position'], tables['overall_win_deaths_boost_pos']))
275
+ opp_pos_assists_boost_win = dict(zip(tables['position'], tables['overall_win_assists_boost_pos']))
276
+ opp_pos_cs_boost_win = dict(zip(tables['position'], tables['overall_win_total_cs_boost_pos']))
277
+ opp_pos_kills_boost_loss = dict(zip(tables['position'], tables['overall_loss_kills_boost_pos']))
278
+ opp_pos_deaths_boost_loss = dict(zip(tables['position'], tables['overall_loss_deaths_boost_pos']))
279
+ opp_pos_assists_boost_loss = dict(zip(tables['position'], tables['overall_loss_assists_boost_pos']))
280
+ opp_pos_cs_boost_loss = dict(zip(tables['position'], tables['overall_loss_total_cs_boost_pos']))
281
 
282
  if kill_prediction > 0:
283
  player_tables = player_tables[['playername', 'teamname', 'position', 'playername_avg_kill_share_win', 'playername_avg_death_share_win','playername_avg_assist_share_win',
 
288
  team_data = player_tables.drop_duplicates(subset = ['playername'])
289
 
290
  if win_loss == "Win":
291
+ team_data['Kill_Proj'] = (team_data['wKill%'] * opp_pos_kills_boost_win.get(team_data['position'], 1)) * kill_prediction
292
+ team_data['Death_Proj'] = (team_data['wDeath%'] * opp_pos_deaths_boost_win.get(team_data['position'], 1)) * death_prediction
293
+ team_data['Assist_Proj'] = (team_data['wAssist%'] * opp_pos_assists_boost_win.get(team_data['position'], 1)) * kill_prediction
294
+ team_data['CS_Proj'] = (team_data['wCS'] * opp_pos_cs_boost_win.get(team_data['position'], 1)) * kill_prediction
295
+ team_data = team_data[['playername', 'teamname', 'position', 'Kill_Proj', 'Death_Proj', 'Assist_Proj', 'CS_Proj']]
296
  else:
297
+ team_data['Kill_Proj'] = (team_data['lKill%'] * opp_pos_kills_boost_loss.get(team_data['position'], 1)) * kill_prediction
298
+ team_data['Death_Proj'] = (team_data['lDeath%'] * opp_pos_deaths_boost_loss.get(team_data['position'], 1)) * death_prediction
299
+ team_data['Assist_Proj'] = (team_data['lAssist%'] * opp_pos_assists_boost_loss.get(team_data['position'], 1)) * kill_prediction
300
+ team_data['CS_Proj'] = (team_data['lCS'] * opp_pos_cs_boost_loss.get(team_data['position'], 1)) * kill_prediction
301
+ team_data = team_data[['playername', 'teamname', 'position', 'Kill_Proj', 'Death_Proj', 'Assist_Proj', 'CS_Proj']]
302
  else:
303
  player_tables = player_tables[['playername', 'teamname', 'position', 'playername_avg_kills_win', 'playername_avg_deaths_win', 'playername_avg_assists_win', 'playername_avg_total_cs_win',
304
  'playername_avg_kills_loss', 'playername_avg_deaths_loss', 'playername_avg_assists_loss', 'playername_avg_total_cs_loss']]
 
308
  team_data = player_tables.drop_duplicates(subset = ['playername'])
309
 
310
  if win_loss == "Win":
311
+ team_data['Kill_Proj'] = (team_data['wKill%'] * opp_pos_kills_boost_win.get(team_data['position'], 1))
312
+ team_data['Death_Proj'] = (team_data['wDeath%'] * opp_pos_deaths_boost_win.get(team_data['position'], 1))
313
+ team_data['Assist_Proj'] = (team_data['wAssist%'] * opp_pos_assists_boost_win.get(team_data['position'], 1))
314
+ team_data['CS_Proj'] = (team_data['wCS'] * opp_pos_cs_boost_win.get(team_data['position'], 1))
315
+ team_data = team_data[['playername', 'teamname', 'position', 'Kill_Proj', 'Death_Proj', 'Assist_Proj', 'CS_Proj']]
316
  else:
317
+ team_data['Kill_Proj'] = (team_data['lKill%'] * opp_pos_kills_boost_loss.get(team_data['position'], 1))
318
+ team_data['Death_Proj'] = (team_data['lDeath%'] * opp_pos_deaths_boost_loss.get(team_data['position'], 1))
319
+ team_data['Assist_Proj'] = (team_data['lAssist%'] * opp_pos_assists_boost_loss.get(team_data['position'], 1))
320
+ team_data['CS_Proj'] = (team_data['lCS'] * opp_pos_cs_boost_loss.get(team_data['position'], 1))
321
+ team_data = team_data[['playername', 'teamname', 'position', 'Kill_Proj', 'Death_Proj', 'Assist_Proj', 'CS_Proj']]
322
 
323
  return team_data.dropna().reset_index(drop=True)
324