Alglege commited on
Commit
426cf2f
·
verified ·
1 Parent(s): 3c441c5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -36
app.py CHANGED
@@ -1,70 +1,69 @@
1
  import gradio as gr
2
  import numpy as np
 
3
  import pickle
4
  from sklearn.preprocessing import LabelEncoder, StandardScaler
5
  from sklearn.linear_model import Ridge
6
 
7
- # Charger le modèle et le scaler
8
- with open("ridge_model.pkl", "rb") as model_file:
9
- ridge_model = pickle.load(model_file)
10
 
11
- with open("scaler.pkl", "rb") as scaler_file:
12
- scaler = pickle.load(scaler_file)
 
13
 
14
  # Initialisation des encodeurs
15
  label_encoder_fuel = LabelEncoder()
16
  label_encoder_seller = LabelEncoder()
17
  label_encoder_trans = LabelEncoder()
18
 
19
- # Fonction pour effectuer une prédiction
20
- def predict(Kms_Driven, Present_Price, Fuel_Type, Seller_Type, Transmission, Age):
21
  try:
 
 
 
 
 
 
 
 
22
  # Encoder les variables catégorielles
23
- Fuel_Type_encoded = label_encoder_fuel.fit_transform([Fuel_Type])[0]
24
- Seller_Type_encoded = label_encoder_seller.fit_transform([Seller_Type])[0]
25
- Transmission_encoded = label_encoder_trans.fit_transform([Transmission])[0]
26
 
27
- # Préparer les caractéristiques d'entrée
28
- input_features = np.array([
29
- Kms_Driven,
30
- Present_Price,
31
- Fuel_Type_encoded,
32
- Seller_Type_encoded,
33
- Transmission_encoded,
34
- Age
35
- ]).reshape(1, -1)
36
 
37
  # Normaliser les données
38
  input_features_scaled = scaler.transform(input_features)
39
 
40
- # Faire une prédiction
41
- prediction = ridge_model.predict(input_features_scaled)
 
 
 
 
 
42
 
43
- return prediction[0]
44
  except Exception as e:
45
  return f"Erreur : {str(e)}"
46
 
47
- # Définir les entrées
48
- inputs = [
49
- gr.Number(label="Kms Driven"),
50
- gr.Number(label="Present Price"),
51
- gr.Dropdown(["Petrol", "Diesel"], label="Fuel Type"),
52
- gr.Dropdown(["Individual", "Dealer"], label="Seller Type"),
53
- gr.Dropdown(["Manual", "Automatic"], label="Transmission"),
54
- gr.Number(label="Age")
55
- ]
56
-
57
- # Définir la sortie
58
- outputs = gr.Textbox(label="Prédiction")
59
 
60
  # Créer l'application Gradio
61
  app = gr.Interface(
62
- fn=predict,
63
  inputs=inputs,
64
  outputs=outputs,
65
  title="Prédictions avec le modèle Ridge",
66
- description="Entrez les valeurs des caractéristiques pour obtenir une prédiction."
67
  )
68
 
69
  # Lancer l'application
70
  app.launch(debug=True)
 
 
1
  import gradio as gr
2
  import numpy as np
3
+ import pandas as pd
4
  import pickle
5
  from sklearn.preprocessing import LabelEncoder, StandardScaler
6
  from sklearn.linear_model import Ridge
7
 
8
+ # Charger le modèle sauvegardé
9
+ with open('ridge_model.pkl', 'rb') as file:
10
+ ridge_model = pickle.load(file)
11
 
12
+ # Charger le scaler sauvegardé
13
+ with open('scaler.pkl', 'rb') as file:
14
+ scaler = pickle.load(file)
15
 
16
  # Initialisation des encodeurs
17
  label_encoder_fuel = LabelEncoder()
18
  label_encoder_seller = LabelEncoder()
19
  label_encoder_trans = LabelEncoder()
20
 
21
+ # Fonction pour effectuer une prédiction à partir du fichier CSV
22
+ def predict_from_file(file):
23
  try:
24
+ # Charger les données du fichier CSV
25
+ df = pd.read_csv(file.name)
26
+
27
+ # Vérifier si les colonnes nécessaires existent dans le fichier
28
+ required_columns = ['Kms_Driven', 'Present_Price', 'Fuel_Type', 'Seller_Type', 'Transmission', 'Age']
29
+ if not all(col in df.columns for col in required_columns):
30
+ return "Erreur : Le fichier CSV doit contenir les colonnes suivantes : Kms_Driven, Present_Price, Fuel_Type, Seller_Type, Transmission, Age"
31
+
32
  # Encoder les variables catégorielles
33
+ df['Fuel_Type'] = label_encoder_fuel.fit_transform(df['Fuel_Type'])
34
+ df['Seller_Type'] = label_encoder_seller.fit_transform(df['Seller_Type'])
35
+ df['Transmission'] = label_encoder_trans.fit_transform(df['Transmission'])
36
 
37
+ # Sélectionner les colonnes nécessaires pour la prédiction
38
+ input_features = df[['Kms_Driven', 'Present_Price', 'Fuel_Type', 'Seller_Type', 'Transmission', 'Age']]
 
 
 
 
 
 
 
39
 
40
  # Normaliser les données
41
  input_features_scaled = scaler.transform(input_features)
42
 
43
+ # Effectuer la prédiction
44
+ predictions = ridge_model.predict(input_features_scaled)
45
+
46
+ # Ajouter les prédictions au DataFrame
47
+ df['Prédictions'] = predictions
48
+
49
+ return df[['Kms_Driven', 'Present_Price', 'Fuel_Type', 'Seller_Type', 'Transmission', 'Age', 'Prédictions']] # Afficher les résultats
50
 
 
51
  except Exception as e:
52
  return f"Erreur : {str(e)}"
53
 
54
+ # Interface Gradio
55
+ inputs = gr.File(label="Télécharger un fichier CSV")
56
+ outputs = gr.Dataframe(label="Prédictions")
 
 
 
 
 
 
 
 
 
57
 
58
  # Créer l'application Gradio
59
  app = gr.Interface(
60
+ fn=predict_from_file,
61
  inputs=inputs,
62
  outputs=outputs,
63
  title="Prédictions avec le modèle Ridge",
64
+ description="Téléchargez un fichier CSV pour effectuer des prédictions."
65
  )
66
 
67
  # Lancer l'application
68
  app.launch(debug=True)
69
+