k-mktr commited on
Commit
84f107c
1 Parent(s): 0223ad5

Update app.py

Browse files

Improved the Score Chart

Files changed (1) hide show
  1. app.py +28 -2
app.py CHANGED
@@ -213,14 +213,26 @@ def get_leaderboard():
213
 
214
  def get_leaderboard_chart():
215
  battle_results = get_current_leaderboard()
 
 
 
 
 
 
 
 
 
 
216
  sorted_results = sorted(
217
  battle_results.items(),
218
- key=lambda x: (x[1]["wins"], -x[1]["losses"]),
219
  reverse=True
220
  )
 
221
  models = [get_human_readable_name(model) for model, _ in sorted_results]
222
  wins = [results["wins"] for _, results in sorted_results]
223
  losses = [results["losses"] for _, results in sorted_results]
 
224
 
225
  fig = go.Figure()
226
 
@@ -238,11 +250,25 @@ def get_leaderboard_chart():
238
  marker_color='#38a3a5'
239
  ))
240
 
241
- # Update layout for full-width and increased height
 
 
 
 
 
 
 
 
 
242
  fig.update_layout(
243
  title='Model Performance',
244
  xaxis_title='Models',
245
  yaxis_title='Number of Battles',
 
 
 
 
 
246
  barmode='stack',
247
  height=800,
248
  width=1450,
 
213
 
214
  def get_leaderboard_chart():
215
  battle_results = get_current_leaderboard()
216
+
217
+ # Calculate scores and sort results
218
+ for model, results in battle_results.items():
219
+ total_battles = results["wins"] + results["losses"]
220
+ if total_battles > 0:
221
+ win_rate = results["wins"] / total_battles
222
+ results["score"] = win_rate * (1 - 1 / (total_battles + 1))
223
+ else:
224
+ results["score"] = 0
225
+
226
  sorted_results = sorted(
227
  battle_results.items(),
228
+ key=lambda x: (x[1]["score"], x[1]["wins"] + x[1]["losses"]),
229
  reverse=True
230
  )
231
+
232
  models = [get_human_readable_name(model) for model, _ in sorted_results]
233
  wins = [results["wins"] for _, results in sorted_results]
234
  losses = [results["losses"] for _, results in sorted_results]
235
+ scores = [results["score"] for _, results in sorted_results]
236
 
237
  fig = go.Figure()
238
 
 
250
  marker_color='#38a3a5'
251
  ))
252
 
253
+ # Line chart for Scores
254
+ fig.add_trace(go.Scatter(
255
+ x=models,
256
+ y=scores,
257
+ name='Score',
258
+ yaxis='y2',
259
+ line=dict(color='#ff7f0e', width=2)
260
+ ))
261
+
262
+ # Update layout for full-width, increased height, and secondary y-axis
263
  fig.update_layout(
264
  title='Model Performance',
265
  xaxis_title='Models',
266
  yaxis_title='Number of Battles',
267
+ yaxis2=dict(
268
+ title='Score',
269
+ overlaying='y',
270
+ side='right'
271
+ ),
272
  barmode='stack',
273
  height=800,
274
  width=1450,