File size: 2,447 Bytes
6503da8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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()