File size: 2,410 Bytes
46075c6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1809391
46075c6
 
 
 
 
 
 
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import gradio as gr
import joblib
import pandas as pd

model = joblib.load("best_random_forest_model.joblib")


def predict_loan_status(
        loan_original_amount,
        credit_score_range_lower,
        stated_monthly_income,
        investors,
        monthly_loan_payment,

):
    input_dict = {
        'LoanOriginalAmount': loan_original_amount,
        'CreditScoreRangeLower': credit_score_range_lower,
        'StatedMonthlyIncome': stated_monthly_income,
        'Investors': investors,
        'MonthlyLoanPayment': monthly_loan_payment,

    }

    user_input_df = pd.DataFrame(data=[[loan_original_amount,
                                        credit_score_range_lower,
                                        stated_monthly_income,
                                        investors,
                                        monthly_loan_payment]],
                                 columns=[
                                     'LoanOriginalAmount',
                                     'CreditScoreRangeLower',
                                     'StatedMonthlyIncome',
                                     'Investors',
                                     'MonthlyLoanPayment',
                                 ])

    scaler = joblib.load('std_scaler.bin')
    # Convert the dictionary to a 2D array
    input_array = user_input_df.values
    # print(user_input_df)
    scaled_array = scaler.transform(input_array)
    # print('scaled array', scaled_array)
    prediction = model.predict(scaled_array)
    # print('Prediction: ', prediction)

    return prediction[0]


options = ['Current', 'Completed', 'ChargedOff']

inputs = [
    gr.Slider(1000, 100000, label="Loan Original Amount"),
    gr.Slider(100, 2000, step=1, label='Credit Score Range (Lower)'),
    gr.Slider(1000, 100000, step=10, label="Stated Monthly Income"),
    gr.Slider(0, 1000, step=1, label='Number of Investors'),
    gr.Slider(20, 5000, step=5, label="Monthly Loan Payment")

]

outputs = gr.Label()
title = "Loan Status Classifier"
description = (
    "Enter the details of the loan to check the status of the loan."
)
gr.Interface(
    fn=predict_loan_status,
    inputs=inputs,
    outputs=outputs,
    title=title,
    description=description,
).launch(share=True)

# def greet(name):
#     return "Hello " + name + "!!"
#
#
# iface = gr.Interface(fn=greet, inputs="text", outputs="text")
# iface.launch()