LoanPrediction / app.py
Kazeemkz's picture
updated the app.py code to give meaning to textboxes
fb8d442
# app.py
import streamlit as st
import pandas as pd
import joblib
# Load the trained model and encoders
loaded_model = joblib.load('loan_prediction_model.joblib')
label_encoder_education = joblib.load('label_encoder_education.joblib')
# Title of the Streamlit app
st.title("IntuiPy Loan Default Prediction App")
st.write("Enter the details below to predict whether a loan will default or not.")
# Function to make predictions based on user input
def predict_loan_default(user_input):
# Encode categorical features
user_input['education'] = label_encoder_education.transform([user_input['education']])[0]
# Create DataFrame for prediction
user_input_df = pd.DataFrame([user_input])
# Make prediction
prediction = loaded_model.predict(user_input_df)
return prediction[0] # Return the predicted class
# Input fields for the user to provide data
age = st.number_input("Age", min_value=18, max_value=100, value=30)
education = st.selectbox("Highest Education (1 for Secondary, 2 for Undergrad)", options=label_encoder_education.classes_)
loan_amount = st.number_input("Requested Loan Amount", min_value=0, value=5000)
asset_cost = st.number_input("Asset Cost", min_value=0, value=6000)
no_of_loans = st.number_input("Loans collected to date", min_value=0, value=2)
no_of_curr_loans = st.number_input("Number of Current Loans", min_value=0, value=1)
last_delinq_none = st.selectbox("Previously failed to make required payments on time ?(1 for True, 0 for False)", options=[1, 0])
# Prepare the input for prediction
user_input = {
'age': age,
'education': education,
#'proof_submitted': proof_submitted,
'loan_amount': loan_amount,
'asset_cost': asset_cost,
'no_of_loans': no_of_loans,
'no_of_curr_loans': no_of_curr_loans,
'last_delinq_none': last_delinq_none
}
# Predict button
if st.button("Predict Loan Default"):
prediction = predict_loan_default(user_input)
result = "There is a likelihood of default. We regret to inform you that we cannot grant your loan" if prediction == 1 else "We are pleased to inform you that you will not default. We will be sending #" +str(loan_amount) +""
st.write(f" {result}")