James McCool commited on
Commit
7fc9432
·
1 Parent(s): 9abb8d1

Refine Assist Projection Calculation with Simplified Base Assist Approach

Browse files

Update the assist projection method to:
- Use 'Assist_Base' column for base assist calculation
- Maintain separate calculations for win and loss scenarios
- Simplify assist projection scaling logic

Files changed (1) hide show
  1. app.py +6 -6
app.py CHANGED
@@ -363,17 +363,17 @@ def init_team_data(game_count, team, opponent, win_loss_settings, kill_predictio
363
  if win_loss_settings[game] == "Win":
364
  team_data['Kill_Proj'] = team_data.apply(lambda row: row['wKill%'] * opp_pos_kills_boost_win.get(row['position'], 1), axis=1)
365
  team_data['Death_Proj'] = team_data.apply(lambda row: row['wDeath%'] * opp_pos_deaths_boost_win.get(row['position'], 1), axis=1)
366
- raw_assists = team_data.apply(lambda row: row['wAssist%'] * opp_pos_assists_boost_win.get(row['position'], 1), axis=1) * team_data['Kill_Proj'].sum()
367
- assist_scale = min(1.0, team_data['Kill_Proj'].sum() / raw_assists.sum()) if raw_assists.sum() > 0 else 1.0
368
- team_data['Assist_Proj'] = raw_assists * assist_scale
369
  team_data['CS_Proj'] = team_data.apply(lambda row: row['wCS'] * opp_pos_cs_boost_win.get(row['position'], 1), axis=1)
370
  team_data = team_data[['playername', 'teamname', 'position', 'Kill_Proj', 'Death_Proj', 'Assist_Proj', 'CS_Proj']]
371
  else:
372
  team_data['Kill_Proj'] = team_data.apply(lambda row: row['lKill%'] * opp_pos_kills_boost_loss.get(row['position'], 1), axis=1)
373
  team_data['Death_Proj'] = team_data.apply(lambda row: row['lDeath%'] * opp_pos_deaths_boost_loss.get(row['position'], 1), axis=1)
374
- raw_assists = team_data.apply(lambda row: row['wAssist%'] * opp_pos_assists_boost_win.get(row['position'], 1), axis=1) * team_data['Kill_Proj'].sum()
375
- assist_scale = min(1.0, team_data['Kill_Proj'].sum() / raw_assists.sum()) if raw_assists.sum() > 0 else 1.0
376
- team_data['Assist_Proj'] = raw_assists * assist_scale
377
  team_data['CS_Proj'] = team_data.apply(lambda row: row['lCS'] * opp_pos_cs_boost_loss.get(row['position'], 1), axis=1)
378
  team_data = team_data[['playername', 'teamname', 'position', 'Kill_Proj', 'Death_Proj', 'Assist_Proj', 'CS_Proj']]
379
 
 
363
  if win_loss_settings[game] == "Win":
364
  team_data['Kill_Proj'] = team_data.apply(lambda row: row['wKill%'] * opp_pos_kills_boost_win.get(row['position'], 1), axis=1)
365
  team_data['Death_Proj'] = team_data.apply(lambda row: row['wDeath%'] * opp_pos_deaths_boost_win.get(row['position'], 1), axis=1)
366
+ team_data['Assist_Base'] = team_data.apply(lambda row: row['wAssist%'] * opp_pos_assists_boost_win.get(row['position'], 1), axis=1)
367
+ assist_scale = min(1.0, team_data['Kill_Proj'].sum() / team_data['Assist_Base'].sum()) if team_data['Assist_Base'].sum() > 0 else 1.0
368
+ team_data['Assist_Proj'] = team_data['wAssist%']
369
  team_data['CS_Proj'] = team_data.apply(lambda row: row['wCS'] * opp_pos_cs_boost_win.get(row['position'], 1), axis=1)
370
  team_data = team_data[['playername', 'teamname', 'position', 'Kill_Proj', 'Death_Proj', 'Assist_Proj', 'CS_Proj']]
371
  else:
372
  team_data['Kill_Proj'] = team_data.apply(lambda row: row['lKill%'] * opp_pos_kills_boost_loss.get(row['position'], 1), axis=1)
373
  team_data['Death_Proj'] = team_data.apply(lambda row: row['lDeath%'] * opp_pos_deaths_boost_loss.get(row['position'], 1), axis=1)
374
+ team_data['Assist_Base'] = team_data.apply(lambda row: row['lAssist%'] * opp_pos_kills_boost_loss.get(row['position'], 1), axis=1)
375
+ assist_scale = min(1.0, team_data['Kill_Proj'].sum() / team_data['Assist_Base'].sum()) if team_data['Assist_Base'].sum() > 0 else 1.0
376
+ team_data['Assist_Proj'] = team_data['wAssist%']
377
  team_data['CS_Proj'] = team_data.apply(lambda row: row['lCS'] * opp_pos_cs_boost_loss.get(row['position'], 1), axis=1)
378
  team_data = team_data[['playername', 'teamname', 'position', 'Kill_Proj', 'Death_Proj', 'Assist_Proj', 'CS_Proj']]
379