|
import numpy as np |
|
import pandas as pd |
|
|
|
|
|
|
|
import gradio as gr |
|
import joblib |
|
|
|
encoder0 = joblib.load('marque.joblib') |
|
encoder1 = joblib.load('transmission.joblib') |
|
encoder2 = joblib.load('quartier.joblib') |
|
encoder3 = joblib.load('etat.joblib') |
|
|
|
Qt= joblib.load('liste_quartier.joblib') |
|
Mq= joblib.load('liste_marque.joblib') |
|
Tr= joblib.load('liste_transmission.joblib') |
|
|
|
xgb = joblib.load('xgb.joblib') |
|
|
|
scaler = joblib.load('scaler.joblib') |
|
def Pred_func(marque,annee,transmission,prix, quartier): |
|
|
|
|
|
Marque = encoder0.transform([marque])[0] |
|
Transmission = encoder1.transform([transmission])[0] |
|
Quartier = encoder2.transform([quartier])[0] |
|
|
|
|
|
x_new = np.array([Marque,annee, Transmission,prix, Quartier, ]) |
|
x_new = x_new.reshape(1,-1) |
|
|
|
x_new = scaler.transform(x_new) |
|
|
|
y_pred = xgb.predict(x_new)[0] |
|
if y_pred == 1: |
|
return 'venant' |
|
else: |
|
return 'occasion' |
|
Pred_func('Ford',2017,'Automatique',30000000,'Amitié') |
|
|
|
|
|
|
|
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]) |
|
|
|
|
|
predictions.append(y_pred) |
|
|
|
df['etat'] = predictions |
|
df.to_csv('predictions.csv', index = False) |
|
return 'predictions.csv' |
|
|
|
|
|
|
|
demo = gr.Blocks(theme = gr.themes.Monochrome()) |
|
|
|
|
|
inputs = [gr.Dropdown(choices=Mq, label ='Marque'), |
|
gr.Number(label='Annee'), |
|
gr.Dropdown(choices=Tr, label='Transmission'), |
|
gr.Number(label='Prix'), |
|
gr.Dropdown(choices=Qt, label='Quartier')] |
|
|
|
|
|
outputs = gr.Textbox(label='Etat') |
|
|
|
interface1 = gr.Interface(fn = Pred_func, |
|
inputs = inputs, |
|
outputs = outputs, |
|
title="Prédire l'Etat de la voiture", |
|
description = """Ce modèle de machine learning nous permet de predire l'état d'une voiture |
|
à partir de sa marque,de l'annee, de la transmission, du prix et du quartier de la voiture. |
|
""") |
|
|
|
interface2 = gr.Interface(fn = Pred_func_csv, |
|
inputs = gr.File(label='Importer un fichier CSV'), |
|
outputs = gr.File(label='Télécharger un fichier CSV'), |
|
title="Prédiction de l'Etat de plusieurs voitures", |
|
description = """Ce modèle de machine learning nous permet de predire l'état d'une voiture |
|
à partir de sa marque,de l'annee, de la transmission, du prix et du quartier de la voiture. |
|
""") |
|
|
|
|
|
with demo: |
|
gr.TabbedInterface([interface1, interface2], ['Prédiction Simple', 'Prédiction multiple']) |
|
|
|
|
|
demo.launch() |
|
|