James McCool
commited on
Commit
·
f61c9fc
1
Parent(s):
85afab8
Enhance reassess_lineup_edge function in reassess_edge.py to incorporate previous finish_percentile and dupes for improved lineup edge calculations. Update the return logic to better reflect the relationship between finish_percentile and lineup edge, ensuring more accurate assessments.
Browse files
global_func/reassess_edge.py
CHANGED
|
@@ -85,11 +85,12 @@ def reassess_dupes(row: pd.Series, salary_max: int) -> float:
|
|
| 85 |
|
| 86 |
return math.ceil(final_dupes)
|
| 87 |
|
| 88 |
-
def reassess_lineup_edge(row: pd.Series, Contest_Size: int) -> float:
|
| 89 |
-
|
| 90 |
-
|
|
|
|
| 91 |
|
| 92 |
-
return lineup_edge
|
| 93 |
|
| 94 |
def reassess_edge(refactored_frame: pd.DataFrame, original_frame: pd.DataFrame, maps_dict: dict, Contest_Size: int, salary_max: int) -> pd.DataFrame:
|
| 95 |
orig_df = original_frame.copy()
|
|
@@ -111,10 +112,12 @@ def reassess_edge(refactored_frame: pd.DataFrame, original_frame: pd.DataFrame,
|
|
| 111 |
refactored_df[f'player_{col}_own'] = refactored_df.iloc[:,col].map(maps_dict['own_map']).astype('float32') / 100
|
| 112 |
|
| 113 |
for lineups in change_mask.index:
|
|
|
|
|
|
|
| 114 |
refactored_df.loc[lineups, 'Dupes'] = reassess_dupes(refactored_df.loc[lineups, :], salary_max)
|
| 115 |
refactored_df.loc[lineups, 'Finish_percentile'] = reassess_finish_percentile(refactored_df.loc[lineups, :])
|
| 116 |
refactored_df.loc[lineups, 'Win%'] = refactored_df.loc[lineups, 'Win%']
|
| 117 |
-
refactored_df.loc[lineups, 'Lineup Edge'] = reassess_lineup_edge(refactored_df.loc[lineups, :], Contest_Size)
|
| 118 |
refactored_df.loc[lineups, 'Weighted Own'] = calculate_weighted_ownership_single_row(refactored_df.loc[lineups, own_columns])
|
| 119 |
refactored_df.loc[lineups, 'Geomean'] = np.power((refactored_df.loc[lineups, own_columns] * 100).product(), 1 / len(own_columns))
|
| 120 |
|
|
|
|
| 85 |
|
| 86 |
return math.ceil(final_dupes)
|
| 87 |
|
| 88 |
+
def reassess_lineup_edge(row: pd.Series, Contest_Size: int, prev_finish_percentile: float, prev_dupes: int) -> float:
|
| 89 |
+
fp_rate = row['Finish_percentile'] / prev_finish_percentile
|
| 90 |
+
dupe_rate = row['Dupes'] / prev_dupes
|
| 91 |
+
lineup_edge = (fp_rate * dupe_rate)
|
| 92 |
|
| 93 |
+
return (row['Finish_percentile'] + (row['Finish_percentile'] * lineup_edge)) / 2
|
| 94 |
|
| 95 |
def reassess_edge(refactored_frame: pd.DataFrame, original_frame: pd.DataFrame, maps_dict: dict, Contest_Size: int, salary_max: int) -> pd.DataFrame:
|
| 96 |
orig_df = original_frame.copy()
|
|
|
|
| 112 |
refactored_df[f'player_{col}_own'] = refactored_df.iloc[:,col].map(maps_dict['own_map']).astype('float32') / 100
|
| 113 |
|
| 114 |
for lineups in change_mask.index:
|
| 115 |
+
prev_finish_percentile = refactored_df.loc[lineups, 'Finish_percentile']
|
| 116 |
+
prev_dupes = refactored_df.loc[lineups, 'Dupes']
|
| 117 |
refactored_df.loc[lineups, 'Dupes'] = reassess_dupes(refactored_df.loc[lineups, :], salary_max)
|
| 118 |
refactored_df.loc[lineups, 'Finish_percentile'] = reassess_finish_percentile(refactored_df.loc[lineups, :])
|
| 119 |
refactored_df.loc[lineups, 'Win%'] = refactored_df.loc[lineups, 'Win%']
|
| 120 |
+
refactored_df.loc[lineups, 'Lineup Edge'] = reassess_lineup_edge(refactored_df.loc[lineups, :], Contest_Size, prev_finish_percentile, prev_dupes)
|
| 121 |
refactored_df.loc[lineups, 'Weighted Own'] = calculate_weighted_ownership_single_row(refactored_df.loc[lineups, own_columns])
|
| 122 |
refactored_df.loc[lineups, 'Geomean'] = np.power((refactored_df.loc[lineups, own_columns] * 100).product(), 1 / len(own_columns))
|
| 123 |
|