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
Files changed (1) hide show
  1. global_func/predict_dupes.py +3 -2
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.apply(lambda row: row['Lineup Edge_Raw'] / (row['Dupes'] + 1) if row['Dupes'] > 0 else row['Lineup Edge_Raw'], axis=1)
424
- portfolio['Lineup Edge'] = (portfolio['Lineup Edge'] - portfolio['Lineup Edge'].mean())
 
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