creditscore / app.py
nukimayasari's picture
Create app.py
9a3f13b verified
import gradio as gr
import pickle
import numpy as np
import warnings
warnings.filterwarnings("ignore", category=UserWarning, message="If you are loading a serialized model")
# Load your saved model
with open('xgb_credit_score_model.pkl', 'rb') as file:
model = pickle.load(file)
# Define the prediction function
def predict_credit_score(interest_rate, num_credit_inquiries, delay_from_due_date,
num_credit_card, num_bank_accounts, outstanding_debt,
num_of_delayed_payment, num_of_loan):
# Arrange inputs into a format that the model expects
features = np.array([[interest_rate, num_credit_inquiries, delay_from_due_date,
num_credit_card, num_bank_accounts, outstanding_debt,
num_of_delayed_payment, num_of_loan]])
prediction = model.predict(features)
return f"Predicted Credit Score Category: {int(prediction[0])}"
# Define the Gradio input interface with labeled inputs
inputs = [
gr.Number(label="Interest Rate"),
gr.Number(label="Number of Credit Inquiries"),
gr.Number(label="Days Delayed from Due Date"),
gr.Number(label="Number of Credit Cards"),
gr.Number(label="Number of Bank Accounts"),
gr.Number(label="Outstanding Debt"),
gr.Number(label="Number of Delayed Payments"),
gr.Number(label="Number of Loans")
]
# Define a detailed description with the correct category explanation
description = """
Enter your details to get a prediction of your credit score category.
**Credit Score Categories**:
- 2 = Good
- 1 = Standard
- 0 = Poor
"""
# Define the Gradio interface
gr.Interface(fn=predict_credit_score, inputs=inputs, outputs="text",
title="Credit Score Predictor",
description=description).launch()