import pandas as pd import numpy as np import joblib import gradio as gr gender_mapping = {'Male': 1, 'Female': 0} married_mapping = {'Yes': 1, 'No': 0} education_mapping = {'Graduate': 1, 'Not Graduate': 0} self_employed_mapping = {'Yes': 1, 'No': 0} property_area_mapping = {'Urban': 2, 'Semiurban': 1, 'Rural': 0} credit_mapping = {'Yes': 1, 'No': 0} dependents_mapping = {'0': 0, '1': 1, '2': 2, '3+': 3} def predict_the_loan(gender, married, dependents, education, self_employed, applicant_income, coapplicant_income, loan_amount, loan_amount_term, credit_history, property_area): gender = gender_mapping[gender] married = married_mapping[married] education = education_mapping[education] self_employed = self_employed_mapping[self_employed] property_area = property_area_mapping[property_area] dependents = dependents_mapping[dependents] credit_history = credit_mapping[credit_history] input_data = pd.DataFrame({ 'Gender': [gender], 'Married': [married], 'Dependents': [dependents], 'Education': [education], 'Self_Employed': [self_employed], 'ApplicantIncome': [applicant_income], 'CoapplicantIncome': [coapplicant_income], 'LoanAmount': [loan_amount], 'Loan_Amount_Term': [loan_amount_term], 'Credit_History': [credit_history], 'Property_Area': [property_area] }) model = joblib.load("random_forest_model.pkl") prediction = model.predict(input_data)[0] return "Approved" if prediction == 1 else "Rejected" app = gr.Interface( fn=predict_the_loan, inputs=[ gr.Dropdown(["Male", "Female"], label="Gender"), gr.Radio(["Yes", "No"], label="Married"), gr.Dropdown(["0", "1", "2", "3+"], label="Dependents"), gr.Dropdown(["Graduate", "Not Graduate"], label="Education"), gr.Radio(["Yes", "No"], label="Self Employed"), gr.Number(label="Applicant Income"), gr.Number(label="Coapplicant Income"), gr.Number(label="Loan Amount"), gr.Number(label="Loan Amount Term"), gr.Radio(["Yes", "No"], label="Credit History"), gr.Dropdown(["Urban", "Semiurban", "Rural"], label="Property Area") ], outputs=gr.Textbox(label="Prediction"), title="AI-Powered Loan Approval Prediction System", description="Enter the details and get the prediction" ) app.launch()