import streamlit as st
import pandas as pd
import numpy as np
import pickle
from PIL import Image
import plotly.express as px
import plotly.graph_objects as go
from streamlit_lottie import st_lottie
import requests
from streamlit_option_menu import option_menu
# --------- UTILS ---------
@st.cache_resource
def load_model():
with open('src/best_regression_model.pkl', 'rb') as f:
data = pickle.load(f)
return data['model'], data['scaler_X'], data['scaler_y'], data.get('metrics', None)
def load_lottieurl(url: str):
r = requests.get(url)
if r.status_code != 200:
return None
return r.json()
# --------- ANIMATIONS ---------
credit_animation = load_lottieurl("https://assets2.lottiefiles.com/packages/lf20_4kx2q32n.json")
loading_animation = load_lottieurl("https://assets3.lottiefiles.com/packages/lf20_p8bfn5to.json")
about_animation = load_lottieurl("https://assets2.lottiefiles.com/packages/lf20_0yfsb3a1.json")
# --------- PAGE CONFIG ---------
st.set_page_config(
page_title="Credit Card Expenditure Predictor",
page_icon="💳",
layout="wide",
initial_sidebar_state="expanded"
)
# --------- CSS ---------
st.markdown("""
""", unsafe_allow_html=True)
# --------- SIDEBAR ---------
with st.sidebar:
st_lottie(credit_animation, height=120, key="sidebar_animation")
selected = option_menu(
menu_title="Navigation",
options=["Accueil", "Prédiction", "Analyse", "À propos"],
icons=['house', 'credit-card', 'bar-chart', 'info-circle'],
menu_icon="cast",
default_index=0,
styles={
"container": {"padding": "0!important", "background-color": "#ffffff"},
"icon": {"color": "#4b79a1", "font-size": "20px"},
"nav-link": {
"font-size": "16px",
"text-align": "left",
"margin": "0px",
"padding": "10px",
"--hover-color": "#4b79a1",
},
"nav-link-selected": {"background-color": "#4b79a1"},
}
)
# --------- ACCUEIL ---------
if selected == "Accueil":
st.markdown("""
💳 Credit Card Expenditure Predictor
Prédisez les dépenses annuelles de vos clients grâce à l'IA, pour une gestion financière plus intelligente et personnalisée.
Cette application met la puissance du machine learning au service de la finance :
analysez, prédisez et optimisez les dépenses de carte de crédit de vos clients en quelques clics. Pensée pour les professionnels, accessible à tous.
""", unsafe_allow_html=True)
col1, col2 = st.columns([1.5, 1])
with col1:
st.markdown("""
🎯 Mission
Offrir un outil prédictif fiable et intuitif pour anticiper les dépenses annuelles des clients,
en s'appuyant sur leurs caractéristiques financières et personnelles.
🔬 Technologies
Random ForestXGBoostSVRGridSearchCVScikit-learnStreamlitPlotly
""", unsafe_allow_html=True)
with col2:
st_lottie(credit_animation, height=220, key="main_animation")
st.markdown("""
""", unsafe_allow_html=True)
with col2:
st.markdown("""
Qui suis-je ?
Je suis un passionné de l'intelligence artificielle et de la donnée.
Actuellement en Master 2 en IA et Big Data, je travaille sur des solutions innovantes dans le domaine de l'Intelligence Artificielle appliquée à la finance et à la santé.