saherPervaiz commited on
Commit
b034a75
·
verified ·
1 Parent(s): e58ad46

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -58
app.py CHANGED
@@ -105,8 +105,7 @@ if uploaded_file is not None:
105
  # Highlight highly correlated pairs
106
  st.subheader("Highly Correlated Features")
107
  high_corr = corr.abs().unstack().sort_values(ascending=False).drop_duplicates()
108
- high_corr = high_corr[high_corr >= 0.8]
109
- high_corr_df = high_corr[high_corr.index.get_level_values(0) != high_corr.index.get_level_values(1)]
110
  st.write(high_corr_df)
111
 
112
  target = st.selectbox("Select Target Variable", df.columns)
@@ -145,15 +144,18 @@ if uploaded_file is not None:
145
  st.dataframe(metrics_df)
146
 
147
  # Save metrics as PNG
148
- fig, ax = plt.subplots()
149
- sns.barplot(data=metrics_df, x="Model", y="Accuracy", ax=ax)
150
- ax.set_title("Classification Model Performance")
151
- buf = BytesIO()
152
- fig.savefig(buf, format="png")
153
- buf.seek(0)
 
 
 
154
  st.download_button(
155
  label="Download Classification Report as PNG",
156
- data=buf,
157
  file_name="classification_report.png",
158
  mime="image/png"
159
  )
@@ -187,58 +189,18 @@ if uploaded_file is not None:
187
  st.dataframe(regression_metrics_df)
188
 
189
  # Save metrics as PNG
190
- fig, ax = plt.subplots()
191
- sns.barplot(data=regression_metrics_df, x="Model", y="R² Score", ax=ax)
192
- ax.set_title("Regression Model Performance")
193
- buf = BytesIO()
194
- fig.savefig(buf, format="png")
195
- buf.seek(0)
196
- st.download_button(
197
- label="Download Regression Report as PNG",
198
- data=buf,
199
- file_name="regression_report.png",
200
- mime="image/png"
201
- ) alse add the button to generate the report as image
202
-
203
-
204
-
205
-
206
 
207
-
208
- # After generating the metrics (classification or regression)
209
- # Add a button to generate the performance report as an image
210
- generate_report_button = st.button("Generate Performance Report as Image")
211
-
212
- if generate_report_button:
213
- if y.dtype == 'object' or len(y.unique()) <= 10: # Categorical target (classification)
214
- fig, ax = plt.subplots(figsize=(10, 6))
215
- sns.barplot(data=metrics_df, x="Model", y="Accuracy", ax=ax)
216
- ax.set_title("Classification Model Performance")
217
-
218
- # Save the classification report as PNG
219
- buf = BytesIO()
220
- fig.savefig(buf, format="png")
221
- buf.seek(0)
222
-
223
- st.download_button(
224
- label="Download Classification Report as PNG",
225
- data=buf,
226
- file_name="classification_report.png",
227
- mime="image/png"
228
- )
229
- else: # Continuous target (regression)
230
- fig, ax = plt.subplots(figsize=(10, 6))
231
- sns.barplot(data=regression_metrics_df, x="Model", y="R² Score", ax=ax)
232
- ax.set_title("Regression Model Performance")
233
-
234
- # Save the regression report as PNG
235
- buf = BytesIO()
236
- fig.savefig(buf, format="png")
237
- buf.seek(0)
238
-
239
  st.download_button(
240
  label="Download Regression Report as PNG",
241
- data=buf,
242
  file_name="regression_report.png",
243
  mime="image/png"
244
  )
 
105
  # Highlight highly correlated pairs
106
  st.subheader("Highly Correlated Features")
107
  high_corr = corr.abs().unstack().sort_values(ascending=False).drop_duplicates()
108
+ high_corr = high_corr[high_corr.index.get_level_values(0) != high_corr.index.get_level_values(1)]
 
109
  st.write(high_corr_df)
110
 
111
  target = st.selectbox("Select Target Variable", df.columns)
 
144
  st.dataframe(metrics_df)
145
 
146
  # Save metrics as PNG
147
+ def generate_classification_report_image():
148
+ fig, ax = plt.subplots()
149
+ sns.barplot(data=metrics_df, x="Model", y="Accuracy", ax=ax)
150
+ ax.set_title("Classification Model Performance")
151
+ buf = BytesIO()
152
+ fig.savefig(buf, format="png")
153
+ buf.seek(0)
154
+ return buf
155
+
156
  st.download_button(
157
  label="Download Classification Report as PNG",
158
+ data=generate_classification_report_image(),
159
  file_name="classification_report.png",
160
  mime="image/png"
161
  )
 
189
  st.dataframe(regression_metrics_df)
190
 
191
  # Save metrics as PNG
192
+ def generate_regression_report_image():
193
+ fig, ax = plt.subplots()
194
+ sns.barplot(data=regression_metrics_df, x="Model", y="R² Score", ax=ax)
195
+ ax.set_title("Regression Model Performance")
196
+ buf = BytesIO()
197
+ fig.savefig(buf, format="png")
198
+ buf.seek(0)
199
+ return buf
 
 
 
 
 
 
 
 
200
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
201
  st.download_button(
202
  label="Download Regression Report as PNG",
203
+ data=generate_regression_report_image(),
204
  file_name="regression_report.png",
205
  mime="image/png"
206
  )