banking_helper / app.py
anasmkh's picture
Update app.py
8189527 verified
import streamlit as st
import pandas as pd
import numpy as np
import tensorflow as tf
import joblib
# Load trained model
model = tf.keras.models.load_model("banking_model.keras")
# Load encoders and scaler
label_encoders = joblib.load("label_encoders.pkl")
scaler = joblib.load("scaler.pkl")
# Define feature names
numerical_features = ["DPD", "Credit Expiration"]
binary_features = ["Feature1", "Feature2", "Feature3"] # Replace with actual binary features
stage_feature = "Stage As Last Month"
st.title("Classification Prediction App")
# Create input fields for user input
user_input = {}
# Numerical inputs (DPD, Credit Expiration)
for feature in numerical_features:
user_input[feature] = st.number_input(f"Enter {feature}", value=0, min_value=0)
# Binary features (Yes/No)
for feature in binary_features:
user_input[feature] = st.selectbox(f"{feature} (Yes/No)", ["Yes", "No"])
user_input[feature] = 1 if user_input[feature] == "Yes" else 0 # Convert to 1/0
# Stage as Last Month (Dropdown 1, 2, 3)
user_input[stage_feature] = st.selectbox("Stage As Last Month", [1, 2, 3])
# Convert input to DataFrame
input_df = pd.DataFrame([user_input])
# Apply scaling
input_df[numerical_features] = scaler.transform(input_df[numerical_features])
# Predict when user clicks button
if st.button("Predict"):
prediction = model.predict(input_df)
predicted_stage = np.argmax(prediction)
st.success(f"Predicted Stage: {predicted_stage}")
if __name__ == "__main__":
main()