Update app.py
Browse files
app.py
CHANGED
@@ -79,45 +79,34 @@ os.makedirs(app.config['MODEL_FOLDER'], exist_ok=True)
|
|
79 |
# ------------------------------
|
80 |
|
81 |
# Prediction analysis models loaded from Hugging Face.
|
82 |
-
src_path = hf_hub_download(
|
83 |
-
repo_id="WebashalarForML/Diamond_model_",
|
84 |
-
filename="models_list/mkble/DecisionTree_best_pipeline_mkble_1_to_1.49.pkl",
|
85 |
-
cache_dir=MODEL_FOLDER
|
86 |
-
)
|
87 |
-
dst_path = os.path.join(MODEL_FOLDER, "DecisionTree_best_pipeline_mkble_1_to_1.49.pkl")
|
88 |
-
shutil.copy(src_path, dst_path)
|
89 |
-
makable_model = load(dst_path)
|
90 |
|
91 |
-
'''
|
92 |
src_path = hf_hub_download(
|
93 |
repo_id="WebashalarForML/Diamond_model_",
|
94 |
-
filename="models_list/
|
95 |
cache_dir=MODEL_FOLDER
|
96 |
)
|
97 |
-
dst_path = os.path.join(MODEL_FOLDER, "
|
98 |
shutil.copy(src_path, dst_path)
|
99 |
-
|
100 |
-
|
101 |
|
102 |
src_path = hf_hub_download(
|
103 |
repo_id="WebashalarForML/Diamond_model_",
|
104 |
-
filename="models_list/
|
105 |
cache_dir=MODEL_FOLDER
|
106 |
)
|
107 |
-
dst_path = os.path.join(MODEL_FOLDER, "
|
108 |
shutil.copy(src_path, dst_path)
|
109 |
-
|
110 |
-
|
111 |
|
|
|
112 |
src_path = hf_hub_download(
|
113 |
repo_id="WebashalarForML/Diamond_model_",
|
114 |
-
filename="models_list/
|
115 |
cache_dir=MODEL_FOLDER
|
116 |
)
|
117 |
-
dst_path = os.path.join(MODEL_FOLDER, "
|
118 |
shutil.copy(src_path, dst_path)
|
119 |
-
|
120 |
-
'''
|
121 |
|
122 |
#classsification model on the task
|
123 |
src_path = hf_hub_download(
|
@@ -129,49 +118,13 @@ dst_path = os.path.join(MODEL_FOLDER, "3_pipeline.pkl")
|
|
129 |
shutil.copy(src_path, dst_path)
|
130 |
mkble_amt_class_model = load(dst_path)
|
131 |
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
print("makable_model type:", type(makable_model))
|
136 |
#print("grade_model type:", type(grade_model))
|
137 |
#print("bygrade_model type:", type(bygrade_model))
|
138 |
#print("gia_model type:", type(gia_model))
|
139 |
print("================================")
|
140 |
print("mkble_amt_class_model type:", type(mkble_amt_class_model))
|
141 |
|
142 |
-
#gia_model = load("models/StackingRegressor_best_pipeline_mkble_0_to_1.01.pkl")
|
143 |
-
#grade_model = load("models/StackingRegressor_best_pipeline_grd_0_to_1.01.pkl")
|
144 |
-
#bygrade_model = load("models/StackingRegressor_best_pipeline_bygrad_0_to_1.01.pkl")
|
145 |
-
#makable_model = load("models/StackingRegressor_best_pipeline_gia_0_to_1.01.pkl")
|
146 |
-
|
147 |
-
|
148 |
-
# Classification models loaded using joblib.
|
149 |
-
'''
|
150 |
-
col_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_col.joblib'))
|
151 |
-
cts_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_cts.joblib'))
|
152 |
-
cut_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_cut.joblib'))
|
153 |
-
qua_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_qua.joblib'))
|
154 |
-
shp_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_shp.joblib'))
|
155 |
-
|
156 |
-
blk_eng_to_mkbl_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_mkbl_blk.joblib'))
|
157 |
-
wht_eng_to_mkbl_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_mkbl_wht.joblib'))
|
158 |
-
open_eng_to_mkbl_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_mkbl_open.joblib'))
|
159 |
-
pav_eng_to_mkbl_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_mkbl_pav.joblib'))
|
160 |
-
blk_eng_to_grade_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_grade_blk.joblib'))
|
161 |
-
wht_eng_to_grade_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_grade_wht.joblib'))
|
162 |
-
open_eng_to_grade_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_grade_open.joblib'))
|
163 |
-
pav_eng_to_grade_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_grade_pav.joblib'))
|
164 |
-
blk_eng_to_bygrade_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_bygrade_blk.joblib'))
|
165 |
-
wht_eng_to_bygrade_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_bygrade_wht.joblib'))
|
166 |
-
open_eng_to_bygrade_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_bygrade_open.joblib'))
|
167 |
-
pav_eng_to_bygrade_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_bygrade_pav.joblib'))
|
168 |
-
blk_eng_to_gia_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_gia_blk.joblib'))
|
169 |
-
wht_eng_to_gia_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_gia_wht.joblib'))
|
170 |
-
open_eng_to_gia_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_gia_open.joblib'))
|
171 |
-
pav_eng_to_gia_model = load(os.path.join(MODEL_DIR, 'classification_LogisticRegression_gia_pav.joblib'))
|
172 |
-
'''
|
173 |
-
|
174 |
-
|
175 |
# List of label encoder names.
|
176 |
encoder_list = [
|
177 |
'Tag', 'EngShp', 'EngQua', 'EngCol', 'EngCut', 'EngPol', 'EngSym', 'EngFlo',
|
@@ -265,7 +218,7 @@ def process_dataframe(df):
|
|
265 |
|
266 |
# Create two DataFrames: one for prediction and one for classification.
|
267 |
df_pred = df[required_columns].copy()
|
268 |
-
df_pred = df_pred[(df_pred[['EngCts']] > 0.99).all(axis=1) & (df_pred[['EngCts']] < 1.50).all(axis=1)]
|
269 |
df_pred[['EngBlk', 'EngWht', 'EngOpen', 'EngPav']]=df_pred[['EngBlk', 'EngWht', 'EngOpen', 'EngPav']].fillna("NA")
|
270 |
df_class = df[required_columns_2].fillna("NA").copy()
|
271 |
|
@@ -297,95 +250,60 @@ def process_dataframe(df):
|
|
297 |
# Prediction Report Section
|
298 |
# -------------------------
|
299 |
try:
|
300 |
-
|
301 |
-
#
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
df_pred = df_pred[['Tag', 'EngCts', 'EngShp', 'EngQua', 'EngCol', 'EngCut', 'EngPol',
|
307 |
'EngSym', 'EngFlo', 'EngNts', 'EngMikly', 'EngBlk', 'EngWht', 'EngOpen',
|
308 |
'EngPav', 'EngAmt',
|
309 |
'change_in_amt_mkble'
|
310 |
]]
|
311 |
-
|
312 |
-
print(
|
313 |
-
|
314 |
-
#
|
315 |
-
|
316 |
-
df_pred['
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
317 |
|
318 |
for col in ['Tag', 'EngShp', 'EngQua', 'EngCol', 'EngCut', 'EngPol', 'EngSym', 'EngFlo', 'EngNts', 'EngMikly','EngBlk', 'EngWht', 'EngOpen', 'EngPav']:
|
319 |
try:
|
320 |
-
|
321 |
except ValueError as e:
|
322 |
print(f'inverse transform fails value in column {col}: {e}', 'error')
|
323 |
|
324 |
except ValueError as e:
|
325 |
print(f'pred model error----->: {e}', 'error')
|
326 |
|
327 |
-
# -------------------------
|
328 |
-
# Classification Report Section
|
329 |
-
# -------------------------
|
330 |
-
'''
|
331 |
-
try:
|
332 |
-
x2 = df_class.copy()
|
333 |
-
dx = df_pred.copy() # Start with the prediction data.
|
334 |
-
dx['col_change'] = col_model.predict(x2)
|
335 |
-
dx['cts_change'] = cts_model.predict(x2)
|
336 |
-
dx['cut_change'] = cut_model.predict(x2)
|
337 |
-
dx['qua_change'] = qua_model.predict(x2)
|
338 |
-
dx['shp_change'] = shp_model.predict(x2)
|
339 |
-
except ValueError as e:
|
340 |
-
print(f'class model error----->: {e}', 'error')
|
341 |
-
|
342 |
-
try:
|
343 |
-
dx['Change_Blk_Eng_to_Mkbl_value'] = blk_eng_to_mkbl_model.predict(x)
|
344 |
-
dx['Change_Wht_Eng_to_Mkbl_value'] = wht_eng_to_mkbl_model.predict(x)
|
345 |
-
dx['Change_Open_Eng_to_Mkbl_value'] = open_eng_to_mkbl_model.predict(x)
|
346 |
-
dx['Change_Pav_Eng_to_Mkbl_value'] = pav_eng_to_mkbl_model.predict(x)
|
347 |
-
dx['Change_Blk_Eng_to_Grd_value'] = blk_eng_to_grade_model.predict(x)
|
348 |
-
dx['Change_Wht_Eng_to_Grd_value'] = wht_eng_to_grade_model.predict(x)
|
349 |
-
dx['Change_Open_Eng_to_Grd_value'] = open_eng_to_grade_model.predict(x)
|
350 |
-
dx['Change_Pav_Eng_to_Grd_value'] = pav_eng_to_grade_model.predict(x)
|
351 |
-
dx['Change_Blk_Eng_to_ByGrd_value'] = blk_eng_to_bygrade_model.predict(x)
|
352 |
-
dx['Change_Wht_Eng_to_ByGrd_value'] = wht_eng_to_bygrade_model.predict(x)
|
353 |
-
dx['Change_Open_Eng_to_ByGrd_value'] = open_eng_to_bygrade_model.predict(x)
|
354 |
-
dx['Change_Pav_Eng_to_ByGrd_value'] = pav_eng_to_bygrade_model.predict(x)
|
355 |
-
dx['Change_Blk_Eng_to_Gia_value'] = blk_eng_to_gia_model.predict(x)
|
356 |
-
dx['Change_Wht_Eng_to_Gia_value'] = wht_eng_to_gia_model.predict(x)
|
357 |
-
dx['Change_Open_Eng_to_Gia_value'] = open_eng_to_gia_model.predict(x)
|
358 |
-
dx['Change_Pav_Eng_to_Gia_value'] = pav_eng_to_gia_model.predict(x)
|
359 |
-
except ValueError as e:
|
360 |
-
print(f'grade_code model error----->: {e}', 'error')
|
361 |
-
|
362 |
-
# Inverse transform classification predictions.
|
363 |
-
dx['col_change'] = loaded_label_encoder['Change_color_value'].inverse_transform(dx['col_change'])
|
364 |
-
dx['cts_change'] = loaded_label_encoder['Change_cts_value'].inverse_transform(dx['cts_change'])
|
365 |
-
dx['cut_change'] = loaded_label_encoder['Change_cut_value'].inverse_transform(dx['cut_change'])
|
366 |
-
dx['qua_change'] = loaded_label_encoder['Change_quality_value'].inverse_transform(dx['qua_change'])
|
367 |
-
dx['shp_change'] = loaded_label_encoder['Change_shape_value'].inverse_transform(dx['shp_change'])
|
368 |
-
dx['Change_Blk_Eng_to_Mkbl_value'] = loaded_label_encoder['Change_Blk_Eng_to_Mkbl_value'].inverse_transform(dx['Change_Blk_Eng_to_Mkbl_value'])
|
369 |
-
dx['Change_Wht_Eng_to_Mkbl_value'] = loaded_label_encoder['Change_Wht_Eng_to_Mkbl_value'].inverse_transform(dx['Change_Wht_Eng_to_Mkbl_value'])
|
370 |
-
dx['Change_Open_Eng_to_Mkbl_value'] = loaded_label_encoder['Change_Open_Eng_to_Mkbl_value'].inverse_transform(dx['Change_Open_Eng_to_Mkbl_value'])
|
371 |
-
dx['Change_Pav_Eng_to_Mkbl_value'] = loaded_label_encoder['Change_Pav_Eng_to_Mkbl_value'].inverse_transform(dx['Change_Pav_Eng_to_Mkbl_value'])
|
372 |
-
dx['Change_Blk_Eng_to_Grd_value'] = loaded_label_encoder['Change_Blk_Eng_to_Grd_value'].inverse_transform(dx['Change_Blk_Eng_to_Grd_value'])
|
373 |
-
dx['Change_Wht_Eng_to_Grd_value'] = loaded_label_encoder['Change_Wht_Eng_to_Grd_value'].inverse_transform(dx['Change_Wht_Eng_to_Grd_value'])
|
374 |
-
dx['Change_Open_Eng_to_Grd_value'] = loaded_label_encoder['Change_Open_Eng_to_Grd_value'].inverse_transform(dx['Change_Open_Eng_to_Grd_value'])
|
375 |
-
dx['Change_Pav_Eng_to_Grd_value'] = loaded_label_encoder['Change_Pav_Eng_to_Grd_value'].inverse_transform(dx['Change_Pav_Eng_to_Grd_value'])
|
376 |
-
dx['Change_Blk_Eng_to_ByGrd_value'] = loaded_label_encoder['Change_Blk_Eng_to_ByGrd_value'].inverse_transform(dx['Change_Blk_Eng_to_ByGrd_value'])
|
377 |
-
dx['Change_Wht_Eng_to_ByGrd_value'] = loaded_label_encoder['Change_Wht_Eng_to_ByGrd_value'].inverse_transform(dx['Change_Wht_Eng_to_ByGrd_value'])
|
378 |
-
dx['Change_Open_Eng_to_ByGrd_value'] = loaded_label_encoder['Change_Open_Eng_to_ByGrd_value'].inverse_transform(dx['Change_Open_Eng_to_ByGrd_value'])
|
379 |
-
dx['Change_Pav_Eng_to_ByGrd_value'] = loaded_label_encoder['Change_Pav_Eng_to_ByGrd_value'].inverse_transform(dx['Change_Pav_Eng_to_ByGrd_value'])
|
380 |
-
dx['Change_Blk_Eng_to_Gia_value'] = loaded_label_encoder['Change_Blk_Eng_to_Gia_value'].inverse_transform(dx['Change_Blk_Eng_to_Gia_value'])
|
381 |
-
dx['Change_Wht_Eng_to_Gia_value'] = loaded_label_encoder['Change_Wht_Eng_to_Gia_value'].inverse_transform(dx['Change_Wht_Eng_to_Gia_value'])
|
382 |
-
dx['Change_Open_Eng_to_Gia_value'] = loaded_label_encoder['Change_Open_Eng_to_Gia_value'].inverse_transform(dx['Change_Open_Eng_to_Gia_value'])
|
383 |
-
dx['Change_Pav_Eng_to_Gia_value'] = loaded_label_encoder['Change_Pav_Eng_to_Gia_value'].inverse_transform(dx['Change_Pav_Eng_to_Gia_value'])
|
384 |
-
|
385 |
-
'''
|
386 |
-
|
387 |
# Final return with full data for pagination.
|
388 |
-
return
|
389 |
except Exception as e:
|
390 |
print(f'Error processing file: {e}', 'error')
|
391 |
return pd.DataFrame(), pd.DataFrame()
|
@@ -437,4 +355,4 @@ def download_class():
|
|
437 |
return send_file(CLASS_OUTPUT_FILE, as_attachment=True)
|
438 |
|
439 |
if __name__ == "__main__":
|
440 |
-
app.run(debug=True)
|
|
|
79 |
# ------------------------------
|
80 |
|
81 |
# Prediction analysis models loaded from Hugging Face.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
|
|
|
83 |
src_path = hf_hub_download(
|
84 |
repo_id="WebashalarForML/Diamond_model_",
|
85 |
+
filename="models_list/mkble/DecisionTree_best_pipeline_mkble_0_to_0.99_al.pkl",
|
86 |
cache_dir=MODEL_FOLDER
|
87 |
)
|
88 |
+
dst_path = os.path.join(MODEL_FOLDER, "DecisionTree_best_pipeline_mkble_0_to_0.99_al.pkl")
|
89 |
shutil.copy(src_path, dst_path)
|
90 |
+
makable_model_0 = load(dst_path)
|
|
|
91 |
|
92 |
src_path = hf_hub_download(
|
93 |
repo_id="WebashalarForML/Diamond_model_",
|
94 |
+
filename="models_list/mkble/DecisionTree_best_pipeline_mkble_1_to_1.49.pkl",
|
95 |
cache_dir=MODEL_FOLDER
|
96 |
)
|
97 |
+
dst_path = os.path.join(MODEL_FOLDER, "DecisionTree_best_pipeline_mkble_1_to_1.49.pkl")
|
98 |
shutil.copy(src_path, dst_path)
|
99 |
+
makable_model_1 = load(dst_path)
|
|
|
100 |
|
101 |
+
# Prediction analysis models loaded from Hugging Face.
|
102 |
src_path = hf_hub_download(
|
103 |
repo_id="WebashalarForML/Diamond_model_",
|
104 |
+
filename="models_list/mkble/DecisionTree_best_pipeline_mkble_1.50_to_1.99.pkl",
|
105 |
cache_dir=MODEL_FOLDER
|
106 |
)
|
107 |
+
dst_path = os.path.join(MODEL_FOLDER, "DecisionTree_best_pipeline_mkble_1.50_to_1.99.pkl")
|
108 |
shutil.copy(src_path, dst_path)
|
109 |
+
makable_model_2 = load(dst_path)
|
|
|
110 |
|
111 |
#classsification model on the task
|
112 |
src_path = hf_hub_download(
|
|
|
118 |
shutil.copy(src_path, dst_path)
|
119 |
mkble_amt_class_model = load(dst_path)
|
120 |
|
121 |
+
#print("makable_model type:", type(makable_model))
|
|
|
|
|
|
|
122 |
#print("grade_model type:", type(grade_model))
|
123 |
#print("bygrade_model type:", type(bygrade_model))
|
124 |
#print("gia_model type:", type(gia_model))
|
125 |
print("================================")
|
126 |
print("mkble_amt_class_model type:", type(mkble_amt_class_model))
|
127 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
# List of label encoder names.
|
129 |
encoder_list = [
|
130 |
'Tag', 'EngShp', 'EngQua', 'EngCol', 'EngCut', 'EngPol', 'EngSym', 'EngFlo',
|
|
|
218 |
|
219 |
# Create two DataFrames: one for prediction and one for classification.
|
220 |
df_pred = df[required_columns].copy()
|
221 |
+
#df_pred = df_pred[(df_pred[['EngCts']] > 0.99).all(axis=1) & (df_pred[['EngCts']] < 1.50).all(axis=1)]
|
222 |
df_pred[['EngBlk', 'EngWht', 'EngOpen', 'EngPav']]=df_pred[['EngBlk', 'EngWht', 'EngOpen', 'EngPav']].fillna("NA")
|
223 |
df_class = df[required_columns_2].fillna("NA").copy()
|
224 |
|
|
|
250 |
# Prediction Report Section
|
251 |
# -------------------------
|
252 |
try:
|
253 |
+
|
254 |
+
# for model 0 to 0.99
|
255 |
+
df_pred_0 = df_pred[(df_pred[['EngCts']] > 0.00).all(axis=1) & (df_pred[['EngCts']] < 0.99).all(axis=1)]
|
256 |
+
df_pred_0['change_in_amt_mkble'] = pd.DataFrame(mkble_amt_class_model.predict(df_pred_0), columns=["pred_change_in_eng_to_mkble"])
|
257 |
+
print(df_pred_0.columns)
|
258 |
+
df_pred_0 = df_pred_0[['Tag', 'EngCts', 'EngShp', 'EngQua', 'EngCol', 'EngCut', 'EngPol',
|
|
|
259 |
'EngSym', 'EngFlo', 'EngNts', 'EngMikly', 'EngBlk', 'EngWht', 'EngOpen',
|
260 |
'EngPav', 'EngAmt',
|
261 |
'change_in_amt_mkble'
|
262 |
]]
|
263 |
+
df_pred_0['Makable_Predicted'] = pd.DataFrame(np.expm1(makable_model_0.predict(df_pred_0)), columns=["Predicted"])
|
264 |
+
print(df_pred_0.columns)
|
265 |
+
|
266 |
+
# for model 1 to 1.49
|
267 |
+
|
268 |
+
df_pred_1 = df_pred[(df_pred[['EngCts']] > 0.99).all(axis=1) & (df_pred[['EngCts']] < 1.50).all(axis=1)]
|
269 |
+
df_pred_1['change_in_amt_mkble'] = pd.DataFrame(mkble_amt_class_model.predict(df_pred_1), columns=["pred_change_in_eng_to_mkble"])
|
270 |
+
print(df_pred_1.columns)
|
271 |
+
df_pred_1 = df_pred_1[['Tag', 'EngCts', 'EngShp', 'EngQua', 'EngCol', 'EngCut', 'EngPol',
|
272 |
+
'EngSym', 'EngFlo', 'EngNts', 'EngMikly', 'EngBlk', 'EngWht', 'EngOpen',
|
273 |
+
'EngPav', 'EngAmt',
|
274 |
+
'change_in_amt_mkble'
|
275 |
+
]]
|
276 |
+
df_pred_1['Makable_Predicted'] = pd.DataFrame(np.expm1(makable_model_1.predict(df_pred_1)), columns=["Predicted"])
|
277 |
+
print(df_pred_1.columns)
|
278 |
+
|
279 |
+
# for model 1.50 to 1.99
|
280 |
+
|
281 |
+
df_pred_2 = df_pred[(df_pred[['EngCts']] > 1.49).all(axis=1) & (df_pred[['EngCts']] < 2.00).all(axis=1)]
|
282 |
+
df_pred_2['change_in_amt_mkble'] = pd.DataFrame(mkble_amt_class_model.predict(df_pred_2), columns=["pred_change_in_eng_to_mkble"])
|
283 |
+
print(df_pred_2.columns)
|
284 |
+
df_pred_2 = df_pred_2[['Tag', 'EngCts', 'EngShp', 'EngQua', 'EngCol', 'EngCut', 'EngPol',
|
285 |
+
'EngSym', 'EngFlo', 'EngNts', 'EngMikly', 'EngBlk', 'EngWht', 'EngOpen',
|
286 |
+
'EngPav', 'EngAmt',
|
287 |
+
'change_in_amt_mkble'
|
288 |
+
]]
|
289 |
+
df_pred_2['Makable_Predicted'] = pd.DataFrame(np.expm1(makable_model_2.predict(df_pred_2)), columns=["Predicted"])
|
290 |
+
print(df_pred_2.columns)
|
291 |
+
|
292 |
+
|
293 |
+
df_pred_main = pd.concat([df_pred_0, df_pred_1, df_pred_2])
|
294 |
+
df_pred_main['Makable_Diff'] = df_pred_main['EngAmt'] - df_pred_main['Makable_Predicted']
|
295 |
|
296 |
for col in ['Tag', 'EngShp', 'EngQua', 'EngCol', 'EngCut', 'EngPol', 'EngSym', 'EngFlo', 'EngNts', 'EngMikly','EngBlk', 'EngWht', 'EngOpen', 'EngPav']:
|
297 |
try:
|
298 |
+
df_pred_main[col] = loaded_label_encoder[col].inverse_transform(df_pred_main[col].astype(int))
|
299 |
except ValueError as e:
|
300 |
print(f'inverse transform fails value in column {col}: {e}', 'error')
|
301 |
|
302 |
except ValueError as e:
|
303 |
print(f'pred model error----->: {e}', 'error')
|
304 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
305 |
# Final return with full data for pagination.
|
306 |
+
return df_pred_main, df_pred_main
|
307 |
except Exception as e:
|
308 |
print(f'Error processing file: {e}', 'error')
|
309 |
return pd.DataFrame(), pd.DataFrame()
|
|
|
355 |
return send_file(CLASS_OUTPUT_FILE, as_attachment=True)
|
356 |
|
357 |
if __name__ == "__main__":
|
358 |
+
app.run(debug=True)
|