James McCool
commited on
Commit
·
635a3c6
1
Parent(s):
b2eb74d
Refactor Lineup Edge calculation in predict_dupes.py to incorporate both raw edge and adjusted edge values. This change enhances the accuracy of the prediction model by averaging the adjusted edge with the raw edge, improving overall portfolio predictions.
Browse files
global_func/predict_dupes.py
CHANGED
@@ -420,8 +420,9 @@ def predict_dupes(portfolio, maps_dict, site_var, type_var, Contest_Size, streng
|
|
420 |
portfolio['low_own_count'] = portfolio[own_columns].apply(lambda row: (row < 0.10).sum(), axis=1)
|
421 |
portfolio['Finish_percentile'] = portfolio.apply(lambda row: row['Finish_percentile'] if row['low_own_count'] <= 0 else row['Finish_percentile'] / row['low_own_count'], axis=1)
|
422 |
portfolio['Lineup Edge_Raw'] = (portfolio['Win%'] * ((.5 - portfolio['Finish_percentile']) * (Contest_Size / 2.5))) - .5
|
423 |
-
portfolio['Lineup Edge'] = portfolio
|
424 |
-
portfolio['Lineup Edge'] = (
|
|
|
425 |
portfolio['Weighted Own'] = portfolio[own_columns].apply(calculate_weighted_ownership_wrapper, axis=1)
|
426 |
portfolio['Geomean'] = np.power((portfolio[own_columns] * 100).product(axis=1), 1 / len(own_columns))
|
427 |
|
|
|
420 |
portfolio['low_own_count'] = portfolio[own_columns].apply(lambda row: (row < 0.10).sum(), axis=1)
|
421 |
portfolio['Finish_percentile'] = portfolio.apply(lambda row: row['Finish_percentile'] if row['low_own_count'] <= 0 else row['Finish_percentile'] / row['low_own_count'], axis=1)
|
422 |
portfolio['Lineup Edge_Raw'] = (portfolio['Win%'] * ((.5 - portfolio['Finish_percentile']) * (Contest_Size / 2.5))) - .5
|
423 |
+
portfolio['Lineup Edge'] = (portfolio['Win%'] * ((.5 - portfolio['Finish_percentile']) * (Contest_Size / 2.5)))
|
424 |
+
portfolio['Lineup Edge'] = portfolio.apply(lambda row: row['Lineup Edge'] / (row['Dupes'] + 1) if row['Dupes'] > 0 else row['Lineup Edge'], axis=1)
|
425 |
+
portfolio['Lineup Edge'] = (((portfolio['Lineup Edge'] - portfolio['Lineup Edge'].mean())) + portfolio['Lineup Edge_Raw']) / 2
|
426 |
portfolio['Weighted Own'] = portfolio[own_columns].apply(calculate_weighted_ownership_wrapper, axis=1)
|
427 |
portfolio['Geomean'] = np.power((portfolio[own_columns] * 100).product(axis=1), 1 / len(own_columns))
|
428 |
|