SerenaTOUM commited on
Commit
4bb0742
·
verified ·
1 Parent(s): 03c6eb5

Create modele.py

Browse files
Files changed (1) hide show
  1. modele.py +65 -0
modele.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from joblib import dump
2
+ import pandas as pd
3
+ import os
4
+ from sklearn.ensemble import RandomForestClassifier
5
+
6
+ def save_model():
7
+ print("Chargement des données...")
8
+ try:
9
+ # Charger les données
10
+ finaldata = pd.read_excel("final_data.xlsx")
11
+ finaldata.rename(columns={'IMC Calculé': 'IMC_Calcule', 'Ménage': 'Menage'}, inplace=True)
12
+ except FileNotFoundError:
13
+ print("Erreur : le fichier de données n'a pas été trouvé.")
14
+ return
15
+ except Exception as e:
16
+ print(f"Erreur lors du chargement des données : {e}")
17
+ return
18
+
19
+ print("Données chargées, réduction de la dimension de la base de données...")
20
+ try:
21
+ # Réduire la dimension de la base de données
22
+ finalanemie = finaldata[['Region', 'Zone', 'Statut_Matrimonial', 'Menstruation', 'Fer', 'Age', 'IMC_Calcule', 'Menage', 'anemie']]
23
+
24
+ print("Données réduites, préparation des données...")
25
+
26
+ # Sélection des colonnes d'intérêt pour les variables explicatives et la variable cible
27
+ X = finalanemie[['Region', 'Zone', 'Age', 'Statut_Matrimonial', 'Menstruation', 'Fer', 'IMC_Calcule']]
28
+ y = finalanemie['anemie']
29
+
30
+ # Encodage des variables catégorielles
31
+ X_encoded = pd.get_dummies(X, columns=['Region', 'Zone', 'Statut_Matrimonial', 'Menstruation', 'Fer'], drop_first=True)
32
+
33
+ # Conversion des booléens en entiers (si nécessaire)
34
+ X_encoded = X_encoded.astype(int)
35
+
36
+ # Ajout de la variable Menage
37
+ X_encoded['Menage'] = finalanemie['Menage']
38
+
39
+ # Division des données en ensembles d'entraînement et de test
40
+ from sklearn.model_selection import train_test_split
41
+ X_train, X_test, y_train, y_test = train_test_split(X_encoded, y, test_size=0.2, random_state=42)
42
+
43
+ # Ajuster le modèle (Remplacez par votre modèle préféré)
44
+ model = RandomForestClassifier() # Exemple : utiliser un RandomForestClassifier
45
+ model.fit(X_train, y_train)
46
+
47
+ # Sauvegarder le modèle
48
+ model_path = "model.joblib"
49
+ print(f"Sauvegarde du modèle dans {model_path}...")
50
+ try:
51
+ dump(model, model_path)
52
+ if os.path.exists(model_path):
53
+ print(f"Le modèle a été sauvegardé avec succès dans {model_path}.")
54
+ else:
55
+ print("Échec de la sauvegarde du modèle.")
56
+ except Exception as e:
57
+ print(f"Erreur lors de la sauvegarde du modèle : {e}")
58
+
59
+ except KeyError as e:
60
+ print(f"Erreur : colonne manquante dans les données - {e}")
61
+ except Exception as e:
62
+ print(f"Erreur lors de la préparation des données ou de l'ajustement du modèle : {e}")
63
+
64
+ if __name__ == "__main__":
65
+ save_model()