Update app.py
Browse files
app.py
CHANGED
@@ -42,43 +42,50 @@ def visualize(df_pairwise: pd.DataFrame) -> Figure:
|
|
42 |
|
43 |
|
44 |
def counting(xs: "pd.Series[str]", ys: "pd.Series[str]",
|
45 |
-
ws: "pd.Series[Winner]") -> tuple["pd.Series[str]",
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
result = evalica.counting(xs, ys, ws)
|
47 |
return result.scores, result.index
|
48 |
|
49 |
|
50 |
def bradley_terry(xs: "pd.Series[str]", ys: "pd.Series[str]",
|
51 |
-
ws: "pd.Series[Winner]") -> tuple["pd.Series[str]",
|
52 |
result = evalica.bradley_terry(xs, ys, ws, tolerance=TOLERANCE, limit=LIMIT)
|
53 |
return result.scores, result.index
|
54 |
|
55 |
|
56 |
def elo(xs: "pd.Series[str]", ys: "pd.Series[str]",
|
57 |
-
ws: "pd.Series[Winner]") -> tuple["pd.Series[str]",
|
58 |
result = evalica.elo(xs, ys, ws)
|
59 |
return result.scores, result.index
|
60 |
|
61 |
|
62 |
def eigen(xs: "pd.Series[str]", ys: "pd.Series[str]",
|
63 |
-
ws: "pd.Series[Winner]") -> tuple["pd.Series[str]",
|
64 |
result = evalica.eigen(xs, ys, ws, tolerance=TOLERANCE, limit=LIMIT)
|
65 |
return result.scores, result.index
|
66 |
|
67 |
|
68 |
def pagerank(xs: "pd.Series[str]", ys: "pd.Series[str]",
|
69 |
-
ws: "pd.Series[Winner]") -> tuple["pd.Series[str]",
|
70 |
result = evalica.pagerank(xs, ys, ws, tolerance=TOLERANCE, limit=LIMIT)
|
71 |
return result.scores, result.index
|
72 |
|
73 |
|
74 |
def newman(xs: "pd.Series[str]", ys: "pd.Series[str]",
|
75 |
-
ws: "pd.Series[Winner]") -> tuple["pd.Series[str]",
|
76 |
result = evalica.newman(xs, ys, ws, tolerance=TOLERANCE, limit=LIMIT)
|
77 |
return result.scores, result.index
|
78 |
|
79 |
|
80 |
ALGORITHMS = {
|
81 |
"Counting": counting,
|
|
|
82 |
"Bradley-Terry (1952)": bradley_terry,
|
83 |
"Elo (1960)": elo,
|
84 |
"Eigenvector (1987)": eigen,
|
@@ -132,9 +139,9 @@ def handler(
|
|
132 |
ws = df_pairs["winner"].map({"left": Winner.X, "right": Winner.Y, "tie": Winner.Draw})
|
133 |
|
134 |
scores, index = ALGORITHMS[algorithm](xs, ys, ws)
|
135 |
-
index.name = "item"
|
136 |
|
137 |
df_result = pd.DataFrame(data={"score": scores}, index=index)
|
|
|
138 |
|
139 |
df_result["pairs"] = pd.Series(0, dtype=int, index=index).add(
|
140 |
df_pairs.groupby("left")["left"].count(), fill_value=0,
|
@@ -204,6 +211,7 @@ def main() -> None:
|
|
204 |
["food.csv", "Eigenvector (1987)", False, False],
|
205 |
["food.csv", "PageRank (1998)", False, False],
|
206 |
["food.csv", "Newman (2023)", False, False],
|
|
|
207 |
["llmfao.csv", "Bradley-Terry (1952)", False, True],
|
208 |
["llmfao.csv", "Elo (1960)", False, True],
|
209 |
],
|
|
|
42 |
|
43 |
|
44 |
def counting(xs: "pd.Series[str]", ys: "pd.Series[str]",
|
45 |
+
ws: "pd.Series[Winner]") -> tuple["pd.Series[str]", dict[str, int]]: # type: ignore[type-var]
|
46 |
+
result = evalica.counting(xs, ys, ws)
|
47 |
+
return result.scores, result.index
|
48 |
+
|
49 |
+
|
50 |
+
def average_win_rate(xs: "pd.Series[str]", ys: "pd.Series[str]",
|
51 |
+
ws: "pd.Series[Winner]") -> tuple["pd.Series[str]", dict[str, int]]: # type: ignore[type-var]
|
52 |
result = evalica.counting(xs, ys, ws)
|
53 |
return result.scores, result.index
|
54 |
|
55 |
|
56 |
def bradley_terry(xs: "pd.Series[str]", ys: "pd.Series[str]",
|
57 |
+
ws: "pd.Series[Winner]") -> tuple["pd.Series[str]", dict[str, int]]: # type: ignore[type-var]
|
58 |
result = evalica.bradley_terry(xs, ys, ws, tolerance=TOLERANCE, limit=LIMIT)
|
59 |
return result.scores, result.index
|
60 |
|
61 |
|
62 |
def elo(xs: "pd.Series[str]", ys: "pd.Series[str]",
|
63 |
+
ws: "pd.Series[Winner]") -> tuple["pd.Series[str]", dict[str, int]]: # type: ignore[type-var]
|
64 |
result = evalica.elo(xs, ys, ws)
|
65 |
return result.scores, result.index
|
66 |
|
67 |
|
68 |
def eigen(xs: "pd.Series[str]", ys: "pd.Series[str]",
|
69 |
+
ws: "pd.Series[Winner]") -> tuple["pd.Series[str]", dict[str, int]]: # type: ignore[type-var]
|
70 |
result = evalica.eigen(xs, ys, ws, tolerance=TOLERANCE, limit=LIMIT)
|
71 |
return result.scores, result.index
|
72 |
|
73 |
|
74 |
def pagerank(xs: "pd.Series[str]", ys: "pd.Series[str]",
|
75 |
+
ws: "pd.Series[Winner]") -> tuple["pd.Series[str]", dict[str, int]]: # type: ignore[type-var]
|
76 |
result = evalica.pagerank(xs, ys, ws, tolerance=TOLERANCE, limit=LIMIT)
|
77 |
return result.scores, result.index
|
78 |
|
79 |
|
80 |
def newman(xs: "pd.Series[str]", ys: "pd.Series[str]",
|
81 |
+
ws: "pd.Series[Winner]") -> tuple["pd.Series[str]", dict[str, int]]: # type: ignore[type-var]
|
82 |
result = evalica.newman(xs, ys, ws, tolerance=TOLERANCE, limit=LIMIT)
|
83 |
return result.scores, result.index
|
84 |
|
85 |
|
86 |
ALGORITHMS = {
|
87 |
"Counting": counting,
|
88 |
+
"Average Win Rate": average_win_rate,
|
89 |
"Bradley-Terry (1952)": bradley_terry,
|
90 |
"Elo (1960)": elo,
|
91 |
"Eigenvector (1987)": eigen,
|
|
|
139 |
ws = df_pairs["winner"].map({"left": Winner.X, "right": Winner.Y, "tie": Winner.Draw})
|
140 |
|
141 |
scores, index = ALGORITHMS[algorithm](xs, ys, ws)
|
|
|
142 |
|
143 |
df_result = pd.DataFrame(data={"score": scores}, index=index)
|
144 |
+
df_result.index.name = "item"
|
145 |
|
146 |
df_result["pairs"] = pd.Series(0, dtype=int, index=index).add(
|
147 |
df_pairs.groupby("left")["left"].count(), fill_value=0,
|
|
|
211 |
["food.csv", "Eigenvector (1987)", False, False],
|
212 |
["food.csv", "PageRank (1998)", False, False],
|
213 |
["food.csv", "Newman (2023)", False, False],
|
214 |
+
["llmfao.csv", "Average Win Rate", False, True],
|
215 |
["llmfao.csv", "Bradley-Terry (1952)", False, True],
|
216 |
["llmfao.csv", "Elo (1960)", False, True],
|
217 |
],
|