import joblib import numpy as np import pandas as pd #MODEL_PATH = 'model/dt_clf.joblib' #another method to load the model model = joblib.load('model/dt_clf.joblib') FEATURE_NAMES = ['Gender', 'Married', 'Dependents', 'Education', 'Self_Employed', 'ApplicantIncome', 'CoapplicantIncome', 'LoanAmount', 'Loan_Amount_Term', 'Credit_History', 'Property_Area'] def preprocess_input(user_input): mapping = { 'Gender': {'Female': 0, 'Male': 1}, 'Married': {"Yes": 1, 'No': 0}, 'Education': {'Graduate': 1, 'Not Graduate': 0}, 'Self_Employed': {'Yes': 1, 'No': 0}, 'Property_Area': {'Rural': 0, "Semiurban": 1, 'Urban': 2}, 'Dependents': {'0':0, '1':1, '2':2, '3':3, '3+':4} } processed = [] for feature in FEATURE_NAMES: val = user_input[feature] if feature in mapping: val = mapping[feature][val] processed.append(val) return np.array(processed).reshape(1, -1) def make_prediction(user_input): try: processed_input = preprocess_input(user_input) pred = model.predict(processed_input)[0] prob = model.predict_proba(processed_input).max() return pred, prob except Exception as e: return f'Error: {str(e)}', 0.0