Spaces:
Sleeping
Sleeping
| from joblib import dump | |
| import pandas as pd | |
| import os | |
| from sklearn.ensemble import RandomForestClassifier | |
| def save_model(): | |
| print("Chargement des données...") | |
| try: | |
| # Charger les données | |
| finaldata = pd.read_excel("final_data.xlsx") | |
| finaldata.rename(columns={'IMC Calculé': 'IMC_Calcule', 'Ménage': 'Menage'}, inplace=True) | |
| except FileNotFoundError: | |
| print("Erreur : le fichier de données n'a pas été trouvé.") | |
| return | |
| except Exception as e: | |
| print(f"Erreur lors du chargement des données : {e}") | |
| return | |
| print("Données chargées, réduction de la dimension de la base de données...") | |
| try: | |
| # Réduire la dimension de la base de données | |
| finalanemie = finaldata[['Region', 'Zone', 'Statut_Matrimonial', 'Menstruation', 'Fer', 'Age', 'IMC_Calcule', 'Menage', 'anemie']] | |
| print("Données réduites, préparation des données...") | |
| # Sélection des colonnes d'intérêt pour les variables explicatives et la variable cible | |
| X = finalanemie[['Region', 'Zone', 'Age', 'Statut_Matrimonial', 'Menstruation', 'Fer', 'IMC_Calcule']] | |
| y = finalanemie['anemie'] | |
| # Encodage des variables catégorielles | |
| X_encoded = pd.get_dummies(X, columns=['Region', 'Zone', 'Statut_Matrimonial', 'Menstruation', 'Fer'], drop_first=True) | |
| # Conversion des booléens en entiers (si nécessaire) | |
| X_encoded = X_encoded.astype(int) | |
| # Ajout de la variable Menage | |
| X_encoded['Menage'] = finalanemie['Menage'] | |
| # Division des données en ensembles d'entraînement et de test | |
| from sklearn.model_selection import train_test_split | |
| X_train, X_test, y_train, y_test = train_test_split(X_encoded, y, test_size=0.2, random_state=42) | |
| # Ajuster le modèle (Remplacez par votre modèle préféré) | |
| model = RandomForestClassifier() # Exemple : utiliser un RandomForestClassifier | |
| model.fit(X_train, y_train) | |
| # Sauvegarder le modèle | |
| model_path = "model.joblib" | |
| print(f"Sauvegarde du modèle dans {model_path}...") | |
| try: | |
| dump(model, model_path) | |
| if os.path.exists(model_path): | |
| print(f"Le modèle a été sauvegardé avec succès dans {model_path}.") | |
| else: | |
| print("Échec de la sauvegarde du modèle.") | |
| except Exception as e: | |
| print(f"Erreur lors de la sauvegarde du modèle : {e}") | |
| except KeyError as e: | |
| print(f"Erreur : colonne manquante dans les données - {e}") | |
| except Exception as e: | |
| print(f"Erreur lors de la préparation des données ou de l'ajustement du modèle : {e}") | |
| if __name__ == "__main__": | |
| save_model() |