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 |
],
|