Spaces:
Sleeping
Sleeping
| """Module d'évaluation des modèles de régression. | |
| Ce module contient une fonction pour évaluer les performances d'un modèle de régression en calculant des métriques telles que MAE, RMSE et R², à la fois sur l'échelle log et sur l'échelle réelle après transformation inverse avec expm1. | |
| Les métriques sont retournées dans un dictionnaire""" | |
| import numpy as np | |
| from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score | |
| def evaluate_regression_model(y_true_log, y_pred_log): | |
| """ | |
| Calcule les métriques d'évaluation pour un modèle de régression. | |
| Les métriques sont calculées : | |
| - sur l'échelle log | |
| - sur l'échelle réelle après transformation inverse avec expm1 | |
| Args: | |
| y_true_log: valeurs réelles de la target en log | |
| y_pred_log: valeurs prédites par le modèle en log | |
| Returns: | |
| dict: dictionnaire contenant MAE, RMSE et R² en log et en réel | |
| """ | |
| try: | |
| # Métriques sur l'échelle log | |
| mae_log = mean_absolute_error(y_true_log, y_pred_log) | |
| rmse_log = np.sqrt(mean_squared_error(y_true_log, y_pred_log)) | |
| r2_log = r2_score(y_true_log, y_pred_log) | |
| # Retour à l'échelle réelle | |
| y_true_real = np.expm1(y_true_log) | |
| y_pred_real = np.expm1(y_pred_log) | |
| # Sécurité : éviter valeurs négatives éventuelles après inversion | |
| y_pred_real = np.maximum(y_pred_real, 0) | |
| # Métriques sur l'échelle réelle | |
| mae_real = mean_absolute_error(y_true_real, y_pred_real) | |
| rmse_real = np.sqrt(mean_squared_error(y_true_real, y_pred_real)) | |
| r2_real = r2_score(y_true_real, y_pred_real) | |
| return { | |
| "mae_log": mae_log, | |
| "rmse_log": rmse_log, | |
| "r2_log": r2_log, | |
| "mae_real": mae_real, | |
| "rmse_real": rmse_real, | |
| "r2_real": r2_real, | |
| } | |
| except Exception as e: | |
| print(f"Erreur lors de l'évaluation du modèle : {e}") | |
| return None |