pantdipendra commited on
Commit
642143a
·
verified ·
1 Parent(s): 87dd6c1
Files changed (1) hide show
  1. app.py +27 -17
app.py CHANGED
@@ -386,32 +386,42 @@ def predict(
386
  fig_in.update_layout(width=1200, height=400)
387
 
388
  # 8) Bar chart for predicted labels
389
- label_counts = {}
390
  for lbl_col, (pred_val, _) in label_prediction_info.items():
391
  if lbl_col in df.columns:
392
- label_counts[lbl_col] = len(df[df[lbl_col] == pred_val])
393
- if label_counts:
394
- bar_lbl_df = pd.DataFrame({
395
- "Label": list(label_counts.keys()),
396
- "Count": list(label_counts.values())
397
- })
 
 
 
 
 
 
 
 
 
 
 
 
 
 
398
  fig_lbl = px.bar(
399
- bar_lbl_df, x="Label", y="Count",
400
- title="Number of Patients with the Same Predicted Label"
 
 
 
 
401
  )
402
  fig_lbl.update_layout(width=1200, height=400)
403
  else:
404
  fig_lbl = px.bar(title="No valid predicted labels to display.")
405
  fig_lbl.update_layout(width=1200, height=400)
406
 
407
- return (
408
- final_str, # 1) Prediction Results
409
- severity_msg, # 2) Mental Health Severity
410
- total_count_md, # 3) Total Patient Count
411
- nn_md, # 4) Nearest Neighbors Summary
412
- fig_in, # 5) Bar Chart (input features)
413
- fig_lbl # 6) Bar Chart (labels)
414
- )
415
 
416
  ######################################
417
  # 6) UNIFIED DISTRIBUTION/CO-OCCURRENCE
 
386
  fig_in.update_layout(width=1200, height=400)
387
 
388
  # 8) Bar chart for predicted labels
389
+ label_df_list = []
390
  for lbl_col, (pred_val, _) in label_prediction_info.items():
391
  if lbl_col in df.columns:
392
+ # Count how many patients in df have the predicted value
393
+ predicted_count = len(df[df[lbl_col] == pred_val])
394
+
395
+ # Determine the "other" class (0 ↔ 1)
396
+ other_val = 1 - pred_val
397
+ other_count = len(df[df[lbl_col] == other_val])
398
+
399
+ label_df_list.append({
400
+ "Label": lbl_col,
401
+ "Class": f"Predicted_{pred_val}",
402
+ "Count": predicted_count
403
+ })
404
+ label_df_list.append({
405
+ "Label": lbl_col,
406
+ "Class": f"Opposite_{other_val}",
407
+ "Count": other_count
408
+ })
409
+
410
+ if label_df_list:
411
+ bar_lbl_df = pd.DataFrame(label_df_list)
412
  fig_lbl = px.bar(
413
+ bar_lbl_df,
414
+ x="Label",
415
+ y="Count",
416
+ color="Class",
417
+ barmode="group",
418
+ title="Number of Patients with the Predicted vs. Opposite Label"
419
  )
420
  fig_lbl.update_layout(width=1200, height=400)
421
  else:
422
  fig_lbl = px.bar(title="No valid predicted labels to display.")
423
  fig_lbl.update_layout(width=1200, height=400)
424
 
 
 
 
 
 
 
 
 
425
 
426
  ######################################
427
  # 6) UNIFIED DISTRIBUTION/CO-OCCURRENCE