Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import models.model as mod | |
from menu import get_menu | |
st.set_page_config( | |
layout="centered" | |
) | |
get_menu() | |
st.title("Formulaire") | |
with st.form("prediction_form", border=False): | |
# info bancaire | |
name = st.text_input('Votre nom') | |
age = st.number_input('Votre age', min_value=16) | |
job,education = st.columns(2) | |
job_val = job.selectbox('Votre metier', ["admin.","unknown","unemployed","management","housemaid","entrepreneur","student","blue-collar","self-employed","retired","technician","services"]) | |
education_val = education.selectbox('Votre niveau d\'etude', ["unknown","secondary","primary","tertiary"]) | |
marital = st.selectbox('Votre status marital', ["married","divorced","single"]) | |
balance = st.number_input('Votre solde annuel moyen (en euro)', min_value=1) | |
default = st.checkbox('Avez vous un crédit en déficite ?') | |
housing = st.checkbox('Avez vous un pret logement ?') | |
loan = st.checkbox('Avez vous un pret ?') | |
#informations contact | |
contact = st.selectbox('Moyen de contact', ["unknown","telephone","cellular"]) | |
day,month = st.columns([2,2]) | |
day_val = day.number_input('Dernier jours de contact du mois', min_value=0) | |
month_val = month.selectbox('Dernier mois de contact de l\'année', ['jan','fed','mar','apr','may','jun','jul','aug','sep','oct','nov','dec']) | |
duration = st.number_input('Durée de la derniere conversation', min_value=0) | |
#autres infos | |
campaign = st.number_input('Nombre de contact effectuer pour cette campagne', min_value=0) | |
pdays = st.number_input('Nombre de jours ecoulé depuis le dernier contact', min_value=0) | |
previous = st.number_input('Nombre de contact effectuer avant cette campagne', min_value=0) | |
poutcome = st.selectbox('Resultat de la derniere campagne', ["unknown","other","failure","success"]) | |
selected_model = st.selectbox('Choisir le model', ["XGBOOST", "KNN", "SVC LINEAIRE","SVC", "RAMDOM FOREST"]) | |
submitted = st.form_submit_button('Predire le choix', use_container_width=True) | |
if submitted: | |
if name == "": | |
st.error('Le nom est obligatoire !') | |
else: | |
data_vals = [ | |
age, | |
job_val, | |
marital, | |
education_val, | |
'yes' if default else 'no', | |
balance, | |
'yes' if housing else 'no', | |
'yes' if loan else 'no', | |
contact, | |
day_val, | |
month_val, | |
duration, | |
campaign, | |
pdays, | |
previous, | |
poutcome | |
] | |
index = [ | |
"age", | |
"job", | |
"marital", | |
"education", | |
"default", | |
"balance", | |
"housing", | |
"loan", | |
"contact", | |
"day", | |
"month", | |
"duration", | |
"campaign", | |
"pdays", | |
"previous", | |
"poutcome" | |
] | |
data = pd.DataFrame([data_vals], columns=index) | |
data_transform = mod.transform_data(data) | |
if selected_model == "XGBOOST": | |
res = mod.xg_boost_model(data_transform) | |
elif selected_model == "KNN": | |
res = mod.knn_model(data_transform) | |
elif selected_model == "SVC LINEAIRE": | |
res = mod.svc_linear_model(data_transform) | |
elif selected_model == "SVC": | |
res = mod.svc_model(data_transform) | |
else: | |
res = mod.ramdom_forest_model(data_transform) | |
msg = f"D'apres notre model {selected_model} le client {name} " | |
if res == 0: | |
st.error(f"{msg} ne va pas souscrire à l'offre.") | |
else: | |
st.success(f"{msg} va pas souscrire à l'offre.") | |