Spaces:
Sleeping
Sleeping
| import pandas as pd | |
| data = pd.DataFrame(columns=["Dataset", "Alpha", "Top K", "Recall", "Precision"]) | |
| data = pd.concat( | |
| [ | |
| data, | |
| pd.DataFrame( | |
| [["ml-100k", 0.1, 20, 0.2, 0.2]], | |
| columns=["Dataset", "Alpha", "Top K", "Recall", "Precision"], | |
| ), | |
| ] | |
| ) | |
| import os | |
| import plotly.express as px | |
| import pandas as pd | |
| from dash import Dash, html, dcc, Input, Output, callback | |
| import plotly.express as px | |
| from dataclasses import dataclass | |
| import json | |
| data = pd.DataFrame(columns=["Dataset", "Alpha", "Top K", "Recall", "Precision"]) | |
| data = pd.concat( | |
| [ | |
| data, | |
| pd.DataFrame( | |
| [["ml-100k", 0.1, 20, 0.2, 0.2]], | |
| columns=["Dataset", "Alpha", "Top K", "Recall", "Precision"], | |
| ), | |
| ] | |
| ) | |
| debug = False | |
| external_stylesheets = ["https://codepen.io/chriddyp/pen/bWLwgP.css"] | |
| app = Dash(__name__, external_stylesheets=external_stylesheets) | |
| server = app.server | |
| dataset_options = [ | |
| {"label": entry, "value": entry} for entry in data["Dataset"].unique() | |
| ] | |
| dataset_options_default_value = data["Dataset"].unique()[0] | |
| alpha_options = [{"label": entry, "value": entry} for entry in data["Alpha"].unique()] | |
| alpha_options_default_value = data["Alpha"].unique()[0] | |
| top_k_options = [{"label": entry, "value": entry} for entry in data["Top K"].unique()] | |
| top_k_options_default_value = data["Top K"].unique()[0] | |
| app.layout = html.Div( | |
| [ | |
| html.H1("System Evaluation"), | |
| html.Div( | |
| [ | |
| html.Div( | |
| [ | |
| html.H3("Dataset"), | |
| dcc.Dropdown( | |
| id="dataset-dropdown", | |
| options=dataset_options, | |
| value=dataset_options_default_value, | |
| ), | |
| ], | |
| className="three columns", | |
| ), | |
| html.Div( | |
| [ | |
| html.H3("Alpha"), | |
| dcc.Dropdown( | |
| id="alpha-dropdown", | |
| options=alpha_options, | |
| value=alpha_options_default_value, | |
| ), | |
| ], | |
| className="three columns", | |
| ), | |
| html.Div( | |
| [ | |
| html.H3("Top K"), | |
| dcc.Dropdown( | |
| id="top_k-dropdown", | |
| options=top_k_options, | |
| value=top_k_options_default_value, | |
| ), | |
| ], | |
| className="three columns", | |
| ), | |
| ], | |
| className="row", | |
| ), | |
| html.Div( | |
| [ | |
| html.Div([dcc.Graph(id="recall-graph")], className="six columns"), | |
| html.Div([dcc.Graph(id="precision-graph")], className="six columns"), | |
| ], | |
| className="row", | |
| ), | |
| ] | |
| ) | |
| def update_graph(alpha, dataset, top_k): | |
| filtered_data = data[ | |
| (data["Alpha"] == alpha) | |
| & (data["Dataset"] == dataset) | |
| & (data["Top K"] == top_k) | |
| ] | |
| recall_fig = px.bar(filtered_data, x="Dataset", y="Recall") | |
| precision_fig = px.bar(filtered_data, x="Dataset", y="Precision") | |
| return recall_fig, precision_fig | |
| # Run app and display result inline in the notebook | |
| if __name__ == "__main__": | |
| app.run_server(debug=debug, port=8050) | |