James McCool commited on
Commit
7cf4749
·
1 Parent(s): 3cfe4c4

Refactor Lineup Edge calculation in predict_dupes.py to improve accuracy. Updated the formula to average the adjusted edge based on the number of duplicates, enhancing the overall performance of the prediction model.

Browse files
Files changed (1) hide show
  1. global_func/predict_dupes.py +1 -1
global_func/predict_dupes.py CHANGED
@@ -420,7 +420,7 @@ 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'] = portfolio['Win%'] * ((.5 - portfolio['Finish_percentile']) * (Contest_Size / 2.5))
423
- portfolio['Lineup Edge'] = portfolio.apply(lambda row: row['Lineup Edge'] / (row['Dupes'] + 1) if row['Dupes'] > 0 else row['Lineup Edge'], 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))
 
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'] = portfolio['Win%'] * ((.5 - portfolio['Finish_percentile']) * (Contest_Size / 2.5))
423
+ portfolio['Lineup Edge'] = portfolio.apply(lambda row: (row['Lineup Edge'] / (row['Dupes'] + 1) + row['Lineup Edge']) / 2 if row['Dupes'] > 0 else row['Lineup Edge'], 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))