Spaces:
Sleeping
Sleeping
| # 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() | |