| |
| import gradio as gr |
| import joblib |
| import pandas as pd |
| import numpy as np |
| |
| encoder0 = joblib.load('job.joblib') |
| encoder1 = joblib.load('marital.joblib') |
| encoder2 = joblib.load('education.joblib') |
| encoder3 = joblib.load('housing.joblib') |
| encoder4 = joblib.load('loan.joblib') |
| encoder5 = joblib.load('contact.joblib') |
| encoder6 = joblib.load('month.joblib') |
| encoder7 = joblib.load('day_of_week.joblib') |
| encoder8 = joblib.load('poutcome.joblib') |
|
|
|
|
|
|
| |
| gb = joblib.load('gb.joblib') |
| |
| scaler = joblib.load('scaler.joblib') |
| def Pred_func(age,job, marital, education, housing, loan, contact, month, |
| day_of_week, duration, campaign, pdays, previous, poutcome): |
|
|
| |
| job = encoder0.transform([job])[0] |
| marital = encoder1.transform([marital])[0] |
| education = encoder2.transform([education])[0] |
| housing = encoder3.transform([housing])[0] |
| loan = encoder4.transform([loan])[0] |
| contact = encoder5.transform([contact])[0] |
| month = encoder6.transform([month])[0] |
| day_of_week = encoder7.transform([day_of_week])[0] |
| poutcome = encoder8.transform([poutcome])[0] |
|
|
|
|
| |
| x_new = np.array([age,job, marital, education, housing, loan, contact, month, |
| day_of_week, duration, campaign, pdays, previous, poutcome]) |
| x_new = x_new.reshape(1,-1) |
| |
| x_new = scaler.transform(x_new) |
| |
| y_pred = gb.predict(x_new)[0] |
| if y_pred == 1: |
| return 'Depot' |
| else: |
| return 'Pas de depot' |
|
|
| |
| def Pred_func_csv(file): |
| |
| df = pd.read_csv(file) |
| predictions = [] |
| |
| for row in df.iloc[:, :].values: |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| y_pred = Pred_func(row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13]) |
| |
| predictions.append(y_pred) |
|
|
| df['BANQUE'] = predictions |
| df.to_csv('predictions.csv', index = False) |
| return 'predictions.csv' |
|
|
| |
| demo = gr.Blocks(theme='shivi/calm_seafoam') |
|
|
| |
| inputs = [gr.Number(label='age'), |
| gr.Radio(choices=['admin.', 'blue-collar', 'entrepreneur', 'housemaid', 'management', |
| 'retired', 'self-employed', 'services', 'student', 'technician', |
| 'unemployed', 'unknown'], label='job'), |
| gr.Radio(choices=['divorced', 'married', 'single', 'unknown'], label='marital'), |
| gr.Radio(choices=['basic.4y', 'basic.6y', 'basic.9y', 'high.school', 'illiterate', |
| 'professional.course', 'university.degree', 'unknown'], label='education'), |
| gr.Radio(choices=['no', 'unknown', 'yes'], label='housing'), |
| gr.Radio(choices=['no', 'unknown', 'yes'], label='loan'), |
| gr.Radio(choices=['cellular', 'telephone'], label='contact'), |
| gr.Radio(choices=['apr', 'aug', 'dec', 'jul', 'jun', 'mar', 'may', 'nov', 'oct', |
| 'sep'], label='month'), |
| gr.Radio(choices=['fri', 'mon', 'thu', 'tue', 'wed'], label='day_of_week'), |
| gr.Number(label='duration'), |
| gr.Number(label='campaign'), |
| gr.Number(label='pdays'), |
| gr.Number(label='previous'), |
| gr.Radio(choices=['failure', 'nonexistent', 'success'], label='poutcome')] |
| |
| |
| outputs = gr.Textbox(label='BANQUE') |
| |
| interface1 = gr.Interface(fn = Pred_func, |
| inputs = inputs, |
| outputs = outputs, |
| title="Prédire si le client d'une banque souscrira à un dépôt à terme (term deposit) ou pas avec une seule entrée", |
| description = """Ce modèle d'apprentissage automatique nous permet de prédire si le client d'une banque souscrira |
| à un dépôt à terme (term deposit) à partir de son age, de son job, |
| de sa situation matrimoniale, de son niveau d'etude, de son logement, |
| de son prêt bancaire, de son contact, de son dernier mois de contact, |
| de son dernier jour de contact, de la durée de son dernier contact, |
| de sa campagne, de son jour de travail, de son precedent contact, |
| et de son poutcome""") |
| |
| interface2 = gr.Interface(fn = Pred_func_csv, |
| inputs = gr.File(label='Upload a csv file'), |
| outputs = gr.File(label='Download a csv file'), |
| title="Prédire si le client d'une banque souscrira à un dépôt à terme (term deposit) ou pas avec plusieurs entrées", |
| description = """Ce modèle d'apprentissage automatique nous permet de prédire si le client d'une banque souscrira |
| à un dépôt à terme (term deposit) à partir de son age, de son job, |
| de sa situation matrimoniale, de son niveau d'etude, de son logement, |
| de son prêt bancaire, de son contact, de son dernier mois de contact, |
| de son dernier jour de contact, de la durée de son dernier contact, |
| de sa campagne, de son jour de travail, de son precedent contact, |
| et de son poutcome """) |
|
|
| |
| with demo: |
| gr.TabbedInterface([interface1, interface2], ['Simple Prediction', 'Prédiction multiple']) |
|
|
| |
| demo.launch() |
|
|