rosacastillo commited on
Commit
23fcc73
·
1 Parent(s): a597a7b

updating the weighted accuracy formula

Browse files
Files changed (2) hide show
  1. app.py +4 -0
  2. tabs/tool_accuracy.py +29 -1
app.py CHANGED
@@ -292,6 +292,10 @@ with demo:
292
 
293
  with gr.Row():
294
  gr.Markdown("# Weighted accuracy ranking per tool")
 
 
 
 
295
  with gr.Row():
296
  gr.Markdown(
297
  "The data used for this metric is from the past two months. This metric is computed using both the tool accuracy and the volume of requests received by the tool"
 
292
 
293
  with gr.Row():
294
  gr.Markdown("# Weighted accuracy ranking per tool")
295
+ with gr.Row():
296
+ gr.Markdown(
297
+ "This metric is an approximation to the real metric used by the trader since some parameters are only dynamically generated."
298
+ )
299
  with gr.Row():
300
  gr.Markdown(
301
  "The data used for this metric is from the past two months. This metric is computed using both the tool accuracy and the volume of requests received by the tool"
tabs/tool_accuracy.py CHANGED
@@ -2,11 +2,39 @@ import pandas as pd
2
  import gradio as gr
3
  import matplotlib.pyplot as plt
4
  import seaborn as sns
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
 
7
  def get_weighted_accuracy(row, global_requests: int):
8
  """Function to compute the weighted accuracy of a tool"""
9
- return (row["tool_accuracy"] / 100.0) * (row["total_requests"] / global_requests)
 
 
 
 
 
 
 
10
 
11
 
12
  def compute_weighted_accuracy(tools_accuracy: pd.DataFrame):
 
2
  import gradio as gr
3
  import matplotlib.pyplot as plt
4
  import seaborn as sns
5
+ from typing import Tuple
6
+
7
+ VOLUME_FACTOR_REGULARIZATION = 0.5
8
+ UNSCALED_WEIGHTED_ACCURACY_INTERVAL = (-0.5, 100.5)
9
+ SCALED_WEIGHTED_ACCURACY_INTERVAL = (0, 1)
10
+
11
+
12
+ def scale_value(
13
+ value: float,
14
+ min_max_bounds: Tuple[float, float],
15
+ scale_bounds: Tuple[float, float] = (0, 1),
16
+ ) -> float:
17
+ """Perform min-max scaling on a value."""
18
+ min_, max_ = min_max_bounds
19
+ current_range = max_ - min_
20
+ # normalize between 0-1
21
+ std = (value - min_) / current_range
22
+ # scale between min_bound and max_bound
23
+ min_bound, max_bound = scale_bounds
24
+ target_range = max_bound - min_bound
25
+ return std * target_range + min_bound
26
 
27
 
28
  def get_weighted_accuracy(row, global_requests: int):
29
  """Function to compute the weighted accuracy of a tool"""
30
+ return scale_value(
31
+ (
32
+ row["tool_accuracy"]
33
+ + (row["total_requests"] / global_requests) * VOLUME_FACTOR_REGULARIZATION
34
+ ),
35
+ UNSCALED_WEIGHTED_ACCURACY_INTERVAL,
36
+ SCALED_WEIGHTED_ACCURACY_INTERVAL,
37
+ )
38
 
39
 
40
  def compute_weighted_accuracy(tools_accuracy: pd.DataFrame):