Loan_Classifier / app.py
esteele's picture
modified privacy
1809391
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()