Spaces:
Sleeping
Sleeping
File size: 4,399 Bytes
f6c456d 16bcc58 c31822d f6c456d 16bcc58 f6c456d 16bcc58 f6c456d 16bcc58 f6c456d 16bcc58 f6c456d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | # Importer gradio
import gradio as gr
import joblib
import numpy as np
import pandas as pd
# Télécharger le model
model = joblib.load("knn_model.joblib")
# Téléchager le scaler
scaler = joblib.load("scaler.joblib")
# Télécharger les encoders
encoder0 = joblib.load("marque.joblib")
encoder1 = joblib.load("transmission.joblib")
encoder2 = joblib.load('region.joblib')
# Foncton de prediction simple
def predict_simple(marque, annee, transmission, prix, region):
marque = encoder0.transform([marque])[0]
transmission = encoder1.transform([transmission])[0]
region = encoder2.transform([region])[0]
# vecteur des valeurs numériques
x_new = np.array([marque, annee, transmission, prix, region])
x_new = x_new.reshape(1,-1)
# Normaliser les données
x_new = scaler.transform(x_new)
# Prediction
y_pred = model.predict(x_new)
# Afficher
return "Venante" if y_pred == 1 else "Occasion"
# FOnction de prediction multiple
def predict_multiple(file):
# Lire le fichier
df = pd.read_csv(file)
predictions = []
for row in df.iloc[:, :].values:
y_pred = predict_simple(row[0], row[1],row[2],row[3],row[4])
# ajouter la prediction sur List_predictions
predictions.append(y_pred)
df.to_csv('predictions.csv', index = False)
return 'predictions.csv'
# Interface gradio
demo = gr.Blocks(theme = gr.themes.Glass())
inputs = [gr.Dropdown(choices= ['Acura', 'Audi', 'Autres', 'BMW', 'Buick', 'Cadillac', 'Chevrolet',
'Chrysler', 'Citroen', 'Dacia', 'Daihatsu', 'Dodge', 'Fiat',
'Ford', 'GMC', 'Great Wall', 'Honda', 'Hyundai', 'Infinity',
'Isuzu', 'Jaguar', 'Jeep', 'Kia', 'Land Rover', 'Lexus', 'Lincoln',
'Maserati', 'Mazda', 'Mercedes-Benz', 'Mini', 'Mitsubishi',
'Nissan', 'Opel', 'Peugeot', 'Porsche', 'Range Rover', 'Renault',
'Saturn', 'Seat', 'Skoda', 'Ssangyong', 'Subaru', 'Suzuki', 'Tata',
'Toyota', 'Volkswagen'],label= "Marque"),
gr.Slider(2000, 2025, step=1, label="Année"),
gr.Dropdown(choices=['Automatique', 'Manuelle', 'Tiptronic'],label="Transmission"),
gr.Number(label="Prix"),
gr.Dropdown(choices=['Almadies', 'Almadies 2', 'Amitié', 'Avenue Bourguiba', 'Bambilor',
'Bargny', 'Bel air', 'Biscuiterie', 'Cambérène', 'Castor',
'Cite Mixta', 'Cité Damel', 'Cité asecna', 'Cité assemblée',
'Cité avion', 'Cité biagui', 'Cité keur gorgui', 'Colobane',
'Comico', 'Dalifort', 'Derkle', 'Diamaguene', 'Diamniadio',
'Dieuppeul', 'Djily mbaye', 'Fann', 'Fann Hock', 'Fenêtre mermoz',
'Gibraltar', 'Golf', 'Gorée', 'Grand-Dakar', 'Grand-Yoff',
'Guediawaye', 'Gueule-Tapée', 'Hann Bel-Air', 'Hann marinas',
'Hann maristes', 'Hlm', 'Hlm grand-yoff', 'Keur Massar',
'Keur ndiaye lô', 'Lac Rose', 'Lac rose', 'Liberte 1', 'Liberte 2',
'Liberte 3', 'Liberte 4', 'Liberte 5', 'Liberte 6',
'Liberte 6 extension', 'Malika', 'Mamelles', 'Mbao', 'Mermoz',
'Médina', 'Ndiakhirate', 'Ngor', 'Niague', 'Nord foire', 'Ouakam',
'Ouest foire', 'Parcelles Assainies', 'Patte d‘oie', 'Pikine',
'Plateau', 'Point-e', 'Rufisque', 'Sacré-cœur', 'Sangalkam',
'Sebikotane', 'Sicap Liberté', 'Sicap Sacré-cœur', 'Sicap baobab',
'Sicap foire', 'Sicap mbao', 'Sud foire', 'Thiaroye',
'Tivaouane peulh', 'VDN', 'Virage', 'Yene', 'Yeumbeul', 'Yoff',
'Zac Mbao', 'Zone de captage'], label="Region")]
outputs = gr.Textbox(label="Etat")
interface1 = gr.Interface(fn = predict_simple,inputs=inputs,outputs=outputs,
title=" Predire si une voiture est venante ou occasion",
description=" Faire la prediction simple pour savoir si une voiture est venante ou occasion")
interface2 = gr.Interface(fn = predict_multiple, inputs=gr.File(label="Téléversez un fichier csv"),
outputs=gr.File(label="Télécharger votre fichier"),
title=" Predire si une voiture est venante ou occasion avec une prediction multiple",
description=" Faire la prediction simple pour savoir si une voiture est venante ou occasion avec une prediction multiple")
with demo :
gr.TabbedInterface([interface1, interface2],['Simple Prediction', 'Prédiction multiple'])
demo.launch()
|