import pandas as pd import numpy as np def make_prediction(input_data, model, encoders, target_encoder, feature_columns): # convert user input into dataframe df = pd.DataFrame([input_data]) # remove Loan_ID if it exists in feature list feature_columns = [c for c in feature_columns if c != "Loan_ID"] # add any missing columns (to match training data) for col in feature_columns: if col not in df.columns: df[col] = 0 # arrange columns in correct order df = df[feature_columns] # encode categorical values for col, le in encoders.items(): df[col] = le.transform(df[col].astype(str)) # make prediction pred = model.predict(df) prob = model.predict_proba(df) # convert numeric result back to Y/N result = target_encoder.inverse_transform(pred)[0] confidence = np.max(prob) * 100 return result, confidence