add more details in results page
Browse files
app.py
CHANGED
|
@@ -183,19 +183,18 @@ def render_results():
|
|
| 183 |
)
|
| 184 |
st.markdown("## User Performance Breakdown")
|
| 185 |
|
| 186 |
-
categories =
|
|
|
|
|
|
|
|
|
|
| 187 |
breakdown_stats_correct = {c: 0 for c in categories}
|
| 188 |
breakdown_stats_wrong = {c: 0 for c in categories}
|
| 189 |
|
| 190 |
experiment_summary = []
|
| 191 |
|
| 192 |
for q in session_state.user_feedback.keys():
|
| 193 |
-
category = session_state.is_classifier_correct[q]
|
| 194 |
-
|
| 195 |
-
True if session_state.user_feedback[q] == "Correct" else False
|
| 196 |
-
)
|
| 197 |
-
|
| 198 |
-
is_user_correct = category == user_feedback_boolean
|
| 199 |
|
| 200 |
if is_user_correct:
|
| 201 |
breakdown_stats_correct[category] += 1
|
|
@@ -214,7 +213,7 @@ def render_results():
|
|
| 214 |
is_user_correct,
|
| 215 |
]
|
| 216 |
)
|
| 217 |
-
|
| 218 |
experiment_summary_df = pd.DataFrame.from_records(
|
| 219 |
experiment_summary,
|
| 220 |
columns=[
|
|
@@ -232,6 +231,44 @@ def render_results():
|
|
| 232 |
st.download_button(
|
| 233 |
"Press to Download", csv, "summary.csv", "text/csv", key="download-records"
|
| 234 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 235 |
|
| 236 |
|
| 237 |
def render_menu():
|
|
|
|
| 183 |
)
|
| 184 |
st.markdown("## User Performance Breakdown")
|
| 185 |
|
| 186 |
+
categories = [
|
| 187 |
+
"Correct",
|
| 188 |
+
"Wrong",
|
| 189 |
+
] # set(session_state.is_classifier_correct.values())
|
| 190 |
breakdown_stats_correct = {c: 0 for c in categories}
|
| 191 |
breakdown_stats_wrong = {c: 0 for c in categories}
|
| 192 |
|
| 193 |
experiment_summary = []
|
| 194 |
|
| 195 |
for q in session_state.user_feedback.keys():
|
| 196 |
+
category = "Correct" if session_state.is_classifier_correct[q] else "Wrong"
|
| 197 |
+
is_user_correct = category == session_state.user_feedback[q]
|
|
|
|
|
|
|
|
|
|
|
|
|
| 198 |
|
| 199 |
if is_user_correct:
|
| 200 |
breakdown_stats_correct[category] += 1
|
|
|
|
| 213 |
is_user_correct,
|
| 214 |
]
|
| 215 |
)
|
| 216 |
+
################################### Summary Table
|
| 217 |
experiment_summary_df = pd.DataFrame.from_records(
|
| 218 |
experiment_summary,
|
| 219 |
columns=[
|
|
|
|
| 231 |
st.download_button(
|
| 232 |
"Press to Download", csv, "summary.csv", "text/csv", key="download-records"
|
| 233 |
)
|
| 234 |
+
################################### SHOW BREAKDOWN
|
| 235 |
+
user_pf_by_model_pred = experiment_summary_df.groupby("Category").agg(
|
| 236 |
+
{"Is User Prediction Correct": ["count", "sum", "mean"]}
|
| 237 |
+
)
|
| 238 |
+
# rename columns
|
| 239 |
+
user_pf_by_model_pred.columns = user_pf_by_model_pred.columns.droplevel(0)
|
| 240 |
+
user_pf_by_model_pred.columns = [
|
| 241 |
+
"Count",
|
| 242 |
+
"Correct User Guess",
|
| 243 |
+
"Mean User Performance",
|
| 244 |
+
]
|
| 245 |
+
user_pf_by_model_pred.index.name = "Model Prediction"
|
| 246 |
+
st.write("User performance break down by Model prediction:", user_pf_by_model_pred)
|
| 247 |
+
csv = convert_df(user_pf_by_model_pred)
|
| 248 |
+
st.download_button(
|
| 249 |
+
"Press to Download",
|
| 250 |
+
csv,
|
| 251 |
+
"user-performance-by-model-prediction.csv",
|
| 252 |
+
"text/csv",
|
| 253 |
+
key="download-performance-by-model-prediction",
|
| 254 |
+
)
|
| 255 |
+
################################### CONFUSION MATRIX
|
| 256 |
+
|
| 257 |
+
confusion_matrix = pd.crosstab(
|
| 258 |
+
experiment_summary_df["Category"],
|
| 259 |
+
experiment_summary_df["User Prediction"],
|
| 260 |
+
rownames=["Actual"],
|
| 261 |
+
colnames=["Predicted"],
|
| 262 |
+
)
|
| 263 |
+
st.write("Confusion Matrix", confusion_matrix)
|
| 264 |
+
csv = convert_df(confusion_matrix)
|
| 265 |
+
st.download_button(
|
| 266 |
+
"Press to Download",
|
| 267 |
+
csv,
|
| 268 |
+
"confusion-matrix.csv",
|
| 269 |
+
"text/csv",
|
| 270 |
+
key="download-confusiion-matrix",
|
| 271 |
+
)
|
| 272 |
|
| 273 |
|
| 274 |
def render_menu():
|