| 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() | |