0% ont trouvé ce document utile (0 vote)
48 vues21 pages

DOCX

Le projet vise à développer un modèle de réseau de neurones pour prédire la puissance active à partir de quatre paramètres météorologiques. Utilisant la bibliothèque PyTorch, il inclut des étapes de chargement, nettoyage et prétraitement des données, ainsi que des visualisations graphiques pour évaluer les performances du modèle. Les objectifs incluent la compréhension des relations entre les variables, l'automatisation du traitement des données et la création d'une base réutilisable pour d'autres projets similaires.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
48 vues21 pages

DOCX

Le projet vise à développer un modèle de réseau de neurones pour prédire la puissance active à partir de quatre paramètres météorologiques. Utilisant la bibliothèque PyTorch, il inclut des étapes de chargement, nettoyage et prétraitement des données, ainsi que des visualisations graphiques pour évaluer les performances du modèle. Les objectifs incluent la compréhension des relations entre les variables, l'automatisation du traitement des données et la création d'une base réutilisable pour d'autres projets similaires.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

MINISTERE DE L’ENSEIGNEMENT REPUBLIQUE TOGOLAISE

Travail-Liberté-Patrie
SUPERIEUR ET DE LA RECHERCHE

………………
UNIVERSITE DE LOME (UL)

ECOLE POLYTECHNIQUE DE LOME

DEPARTEMENT DE GENIE ELECTRIQUE

PARCOURS : LP-GE-S4

Introduction à l’algorithme, à la programmation et aux bases de


donnéés :

( INF1426 )

PREDICTION DE LA PUISSANCE ACTIVE PAR RNA RELU BASEE SUR


QUATRE PARAMETRES METEROLOGIQUES

Présenté par : Responsable de l’UE :

ADONKOR Koudjovi Emmanuel Mr. APALOO BARA

ANNEE : 2024-2025
Sommaire
Introduction ...............................................................................................................................................2
1. Contexte du projet .................................................................................................................................2
2. Objectifs du projet ................................................................................................................................. 3
I. Présentation du Projet ...................................................................................................................4
2.1. Description Générale ........................................................................................................ 4
2.2. Objectifs Fonctionnels ...................................................................................................... 4
2.3. Fonctionnalités Principales ............................................................................................... 4
II. Développement & Implémentation ...................................................................................................... 5
3.1. Étapes de développement ................................................................................................ 5
Chargement et nettoyage des données .................................................................................................... 5
Prétraitement des données .......................................................................................................................5
Séparation des ensembles .........................................................................................................................5
Définition du modèle .................................................................................................................................5
Entraînement du modèle .......................................................................................................................... 5
Évaluation du modèle ................................................................................................................................6
Visualisation automatique .........................................................................................................................6
3.2. Outils et technologies utilisés ........................................................................................... 6
III. Visualisation & Graphiques ..........................................................................................................7
5.1. Courbe d’apprentissage (Loss et MAE) .............................................................................7
5.2. Valeurs Réelles vs Prédictions ...........................................................................................7
5.3. Courbe des Résidus ...........................................................................................................8
5.4. Histogramme des Résidus .................................................................................................9
5.5. Histogramme des Erreurs Absolues ..................................................................................9
5.6. Boxplot Réel vs Prédiction ................................................................................................ 9
5.7. Scatter Prédictions vs Variable A .................................................................................... 10
5.8. Résidus vs Prédictions .....................................................................................................11
5.9. Matrice de Corrélation ....................................................................................................11
6. Détail du Code .............................................................................................................................17
6.1. Chargement et Prétraitement des Données ...................................................................17
Conclusion ............................................................................................................................................... 20

ANNEE : 2024-2025 1
Introduction
Dans un monde où les technologies numériques occupent une place de plus en plus
centrale, le traitement des données et la prédiction de variables complexes sont
devenus des enjeux clés dans de nombreux domaines, notamment l’énergie, la
météorologie, l’éducation ou encore la santé. C’est dans ce contexte que s’inscrit le
projet modèle neuronal pour l’estimation de grandeurs continues à partir de
données tabulaires .

Ce projet a pour objectif de développer un modèle intelligent capable de prédire une


variable continue (la Puissance) à partir de plusieurs facteurs environnementaux.
Pour cela, nous avons utilisé des outils modernes d’intelligence artificielle, en
particulier un réseau de neurones artificiels implémenté avec PyTorch, une
bibliothèque puissante et flexible pour le machine learning.

Au-delà de la simple prédiction, le projet vise également à :

 Comprendre les relations entre les différentes variables d’entrée (pluie, vent,
humidité, etc.)
 Fournir des visualisations graphiques interprétables des performances du
modèle
 Mettre en place une chaîne de traitement complète, depuis les données brutes
jusqu'à l'analyse des résultats

Grâce à une approche basée sur la science des données et l’apprentissage


automatique, modèle neuronal pour l’estimation de grandeurs continues à partir de
données tabulaires illustre la capacité des réseaux de neurones à modéliser des
systèmes complexes de manière autonome, évolutive et performante.

1. Contexte du projet

La prévision de variables continues telles que la puissance énergétique (électrique ou


thermique) est un enjeu majeur dans plusieurs domaines : gestion des réseaux,
optimisation de la production, monitoring environnemental ou encore pilotage
intelligent des équipements.

Face à la complexité et la variabilité des facteurs influençant ces mesures (pluie,


humidité, vent, couverture nuageuse, etc.), les méthodes traditionnelles atteignent
leurs limites. D’où l’intérêt d’utiliser des modèles d’apprentissage automatique,
capables d’apprendre automatiquement les relations non linéaires entre ces
variables.

ANNEE : 2024-2025 2
Le projet modèle neuronal pour l’estimation de grandeurs continues à partir de
données tabulaires s’inscrit dans cette dynamique en proposant une approche basée
sur les réseaux de neurones, grâce à la bibliothèque PyTorch, pour offrir un modèle
prédictif moderne, efficace et visuellement interprétable.

2. Objectifs du projet

Les objectifs du projet sont à la fois techniques, analytique et pédagogiques :

✅ Objectifs techniques

 Développer un réseau de neurones (multi-couches) pour la régression


 Automatiser le traitement des données : nettoyage, normalisation, conversion
 Implémenter un pipeline complet d’apprentissage supervisé

✅ Objectifs analytiques

 Évaluer la qualité du modèle via des métriques (R², MAE, RMSE)


 Générer et interpréter 10 courbes graphiques pour analyser les erreurs, les
résidus, les corrélations, etc.
 Identifier les variables les plus pertinentes dans la prédiction

✅ Objectifs pédagogiques / démonstratifs

 Montrer l’utilité du deep learning dans un cas réel de régression


 Créer une base réutilisable pour d’autres projets similaires
 Favoriser l’analyse visuelle pour une meilleure compréhension des résultats

ANNEE : 2024-2025 3
I. Présentation du Projet

2.1. Description Générale

Le projet modèle neuronal pour l’estimation de grandeurs continues à partir de


données tabulaires consiste à développer un système de prédiction basé sur
l’intelligence artificielle, capable d’estimer une valeur de puissance à partir de
données environnementales mesurées. Le nom du projet reflète l’idée d’un outil
ouvert, accessible, basé sur des prédictions fiables, précises, et compréhensibles.

Le cœur du système repose sur un réseau de neurones artificiels conçu avec PyTorch,
une bibliothèque open-source spécialisée dans le deep learning. Ce réseau apprend
à modéliser la relation entre plusieurs variables explicatives et une variable cible
continue, en l’occurrence la puissance (électrique, thermique ou autre, selon le cas
d’usage).

2.2. Objectifs Fonctionnels

Le projet vise à :

 Prédire avec précision une valeur continue à partir de données tabulaires


 Visualiser et analyser les performances du modèle à travers 10 courbes
spécifiques
 Créer un flux de traitement automatisé, de la lecture du fichier Excel à l’export
des graphiques
 Proposer une solution réutilisable et adaptable à d’autres jeux de données

2.3. Fonctionnalités Principales

 Chargement automatique des données depuis un fichier Excel (ADK7.xlsx)


 Prétraitement : remplacement des valeurs manquantes, normalisation
 Entraînement d’un modèle de régression basé sur un réseau de neurones
 Génération automatique de 10 graphiques :
 Courbe d’apprentissage (MSE, MAE)
 Prédictions vs Réel
 Résidus (erreurs)
 Matrice de corrélation, etc.
 Sauvegarde automatique des graphiques dans un dossier prédéfini

ANNEE : 2024-2025 4
II. Développement & Implémentation

3.1. Étapes de développement

Le développement du projet modèle neuronal pour l’estimation de grandeurs


continues à partir de données tabulaires a suivi une approche progressive en
plusieurs étapes clés :

Chargement et nettoyage des données

 Lecture du fichier Excel contenant les données d’entrée (variables


météorologiques) et la variable cible (puissance).
 Remplacement des valeurs manquantes par la moyenne de chaque colonne.

Prétraitement des données

 Séparation des variables d’entrée (X) et de sortie (y).


 Normalisation via StandardScaler (de Scikit-learn) pour faciliter l’apprentissage
du modèle.
 Conversion des données en tenseurs PyTorch.

Séparation des ensembles

 Répartition des données en ensemble d’entraînement (80%) et de test (20%)


avec train_test_split.
 L'ensemble de test est utilisé uniquement pour l’évaluation finale.

Définition du modèle

 Construction d’un réseau de neurones à 3 couches :


 Entrée → 16 neurones → ReLU
 16 neurones → 8 neurones → ReLU
 8 neurones → sortie (1 valeur continue)

Entraînement du modèle

 Utilisation de l'algorithme Adam pour l’optimisation.


 Fonction de perte : erreur quadratique moyenne (MSE)
 Boucle d’apprentissage sur 100 époques, avec suivi de la perte (loss) et de
l’erreur absolue moyenne (MAE).

ANNEE : 2024-2025 5
Évaluation du modèle

 Calcul des performances sur les données de test :


 R² (coefficient de détermination)
 RMSE (root mean squared error)
 MAE (mean absolute error)
 Inverse transformation des données pour revenir aux unités d’origine avant
l’évaluation.

Visualisation automatique

 Génération de 10 graphiques permettant de visualiser l'apprentissage, les


erreurs, les prédictions, les corrélations, etc.
 Sauvegarde automatique de chaque graphique dans un dossier spécifique
(Downloads/graphs_pytorch/).

3.2. Outils et technologies utilisés

Outils/Bibliothèques Rôle dans le projet

Python3 Langage principal

PyTorch Construction et entraînement du

réseau

Pandas Chargement et traitement des

données Excel

NumPy Opérations numériques

Normalisation, découpage des données,


Scikit-learn métriques

Matplotlib Visualisation graphique

Seaborn Heatmap de corrélation

ANNEE : 2024-2025 6
III. Visualisation & Graphiques
Pour une meilleure compréhension et analyse des performances du modèle, dix
graphiques ont été générés automatiquement à différentes étapes du projet. Ces
visualisations apportent un éclairage complet sur la qualité de la prédiction et le
comportement du modèle.

5.1. Courbe d’apprentissage (Loss et MAE)

La courbe d’apprentissage montre l’évolution de la fonction de perte (MSE) et de


l’erreur absolue moyenne (MAE) pendant les 100 époques d’entraînement. Une
baisse régulière de ces métriques indique un apprentissage efficace du modèle.

5.2. Valeurs Réelles vs Prédictions

ANNEE : 2024-2025 7
Ce graphique en dispersion compare les valeurs réelles aux valeurs prédites par le
modèle sur l’ensemble de test. L’idéal est que les points soient alignés le long de la
diagonale, ce qui confirme la précision des prédictions.

5.3. Courbe des Résidus

La courbe des résidus représente la différence entre les valeurs réelles et prédites.
L’analyse de cette courbe permet de détecter des biais, des erreurs systématiques
ou la présence d’outliers.

ANNEE : 2024-2025 8
5.4. Histogramme des Résidus

L’histogramme des résidus visualise la distribution des erreurs. Une distribution


centrée autour de zéro et symétrique est signe d’un bon ajustement du modèle.

5.5. Histogramme des Erreurs Absolues

Cette représentation met en évidence la fréquence des erreurs en valeur absolue,


utile pour identifier la dispersion et la concentration des erreurs.

5.6. Boxplot Réel vs Prédiction

ANNEE : 2024-2025 9
Le boxplot permet de comparer visuellement la distribution statistique (médiane,
quartiles, valeurs extrêmes) des valeurs réelles et prédites.

5.7. Scatter Prédictions vs Variable A

Ce graphique compare les prédictions et les valeurs réelles en fonction de la variable


explicative ‘A’ (normalisée), afin d’observer la relation entre la variable d’entrée et la
sortie.

ANNEE : 2024-2025 10
5.8. Résidus vs Prédictions

Cette représentation permet d’observer si les erreurs sont distribuées aléatoirement


ou s’il existe un biais en fonction des valeurs prédites.

5.9. Matrice de Corrélation

La heatmap de corrélation des variables originales met en évidence les relations


linéaires entre les différentes variables du dataset avant normalisation.

ANNEE : 2024-2025 11
Code source

import os
import pandas as pd
import numpy as np
import torch
import torch.nn as nn
import torch.optim as optim
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error,
mean_absolute_error, r2_score
import matplotlib.pyplot as plt
import seaborn as sns

# Création du dossier de destination


download_dir = os.path.join(os.path.expanduser("~"),
"Downloads", "graphs_pytorch")
os.makedirs(download_dir, exist_ok=True)

# Chargement des données


file_path = r"ADK7.xlsx"
data = pd.read_excel(file_path)
data.columns = ['A', 'B', 'C', 'D', 'E']

# Remplacement des valeurs manquantes par la moyenne


data = data.apply(lambda col: col.fillna(col.mean()) if
col.isna().sum() > 0 else col)

# Séparation des données


X = data[['A', 'B', 'C', 'D', 'E']].values
y = data['E'].values

# Normalisation
scaler_X = StandardScaler()
scaler_y = StandardScaler()
X = scaler_X.fit_transform(X)
y = scaler_y.fit_transform(y.reshape(-1, 1)).flatten()

# Conversion en tenseurs PyTorch


X = torch.tensor(X, dtype=torch.float32)
y = torch.tensor(y, dtype=torch.float32).view(-1, 1)

ANNEE : 2024-2025 12
# Train/test split
X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size=0.2, random_state=42)

# Modèle PyTorch
class RegressionNet(nn.Module):
def __init__(self):
super(RegressionNet, self).__init__()
self.fc1 = nn.Linear(5, 16)
self.relu = nn.ReLU()
self.fc2 = nn.Linear(16, 8)
self.output = nn.Linear(8, 1)

def forward(self, x):


x = self.relu(self.fc1(x))
x = self.relu(self.fc2(x))
x = self.output(x)
return x

model = RegressionNet()
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.01)

# Entraînement
epochs = 100
losses = []
maes = []

for epoch in range(epochs):


model.train()
optimizer.zero_grad()
outputs = model(X_train)
loss = criterion(outputs, y_train)
loss.backward()
optimizer.step()

# Calcul MAE train


mae_epoch = torch.mean(torch.abs(outputs -
y_train)).item()
maes.append(mae_epoch)

losses.append(loss.item())

ANNEE : 2024-2025 13
if (epoch + 1) % 10 == 0:
print(f" Époque {epoch + 1}/{epochs}, Perte:
{loss.item():.4f}, MAE: {mae_epoch:.4f}")

# Évaluation
model.eval()
with torch.no_grad():
predictions = model(X_test).numpy()
y_test_np = y_test.numpy()
predictions_rescaled =
scaler_y.inverse_transform(predictions)
y_test_rescaled =
scaler_y.inverse_transform(y_test_np.reshape(-1, 1))

mse = mean_squared_error(y_test_rescaled,
predictions_rescaled)
mae = mean_absolute_error(y_test_rescaled,
predictions_rescaled)
r2 = r2_score(y_test_rescaled, predictions_rescaled)

print(f"\n Résultats du modèle PyTorch:")


print(f"R² : {r2:.4f}")
print(f"RMSE : {np.sqrt(mse):.4f}")
print(f"MAE : {mae:.4f}")

# 1. Courbe de la loss
plt.figure(figsize=(10, 4))
plt.plot(range(1, epochs + 1), losses, label='Loss (MSE)')
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.title("Courbe d'apprentissage")
plt.grid(True)
plt.legend()
plt.savefig(os.path.join(download_dir,
"1_loss_curve.png"))
plt.close()

# 2. Courbe d'évolution du MAE


plt.figure(figsize=(10, 4))
plt.plot(range(1, epochs + 1), maes, label='MAE (train)',
color='orange')
plt.xlabel('Epoch')
plt.ylabel('MAE')
plt.title("Évolution du MAE")

ANNEE : 2024-2025 14
plt.grid(True)
plt.legend()
plt.savefig(os.path.join(download_dir, "2_mae_curve.png"))
plt.close()

# 3. Réel vs Prédictions
plt.figure(figsize=(8, 6))
plt.scatter(y_test_rescaled, predictions_rescaled,
color='blue', alpha=0.6)
plt.plot([y_test_rescaled.min(), y_test_rescaled.max()],
[y_test_rescaled.min(), y_test_rescaled.max()],
'r--')
plt.xlabel('Valeurs réelles')
plt.ylabel('Prédictions')
plt.title('Valeurs réelles vs Prédictions')
plt.grid(True)
plt.savefig(os.path.join(download_dir,
"3_reel_vs_prediction.png"))
plt.close()

# 4. Courbe des résidus


residus = y_test_rescaled.flatten() -
predictions_rescaled.flatten()
plt.figure(figsize=(10, 4))
plt.plot(residus, marker='o', linestyle='', alpha=0.6)
plt.axhline(0, color='red', linestyle='--')
plt.title("Courbe des résidus")
plt.xlabel("Index")
plt.ylabel("Erreur")
plt.grid(True)
plt.savefig(os.path.join(download_dir,
"4_residus_curve.png"))
plt.close()

# 5. Histogramme des résidus


plt.figure(figsize=(8, 4))
plt.hist(residus, bins=30, color='purple',
edgecolor='black', alpha=0.7)
plt.title("Histogramme des résidus")
plt.xlabel("Erreur")
plt.ylabel("Fréquence")
plt.grid(True)
plt.savefig(os.path.join(download_dir,
"5_residus_histogram.png"))

ANNEE : 2024-2025 15
plt.close()

# 6. Histogramme des erreurs absolues


erreurs_absolues = np.abs(residus)
plt.figure(figsize=(8, 4))
plt.hist(erreurs_absolues, bins=30, color='green',
edgecolor='black', alpha=0.7)
plt.title("Histogramme des erreurs absolues")
plt.xlabel("Erreur absolue")
plt.ylabel("Fréquence")
plt.grid(True)
plt.savefig(os.path.join(download_dir,
"6_abs_errors_histogram.png"))
plt.close()

# 7. Boxplot Réel vs Prédiction


plt.figure(figsize=(8, 4))
plt.boxplot([y_test_rescaled.flatten(),
predictions_rescaled.flatten()],
labels=['Réel', 'Prédiction'])
plt.title("Boxplot Réel vs Prédiction")
plt.grid(True)
plt.savefig(os.path.join(download_dir,
"7_boxplot_reel_vs_pred.png"))
plt.close()

# 8. Scatter Prédictions vs Variable A


plt.figure(figsize=(8, 6))
plt.scatter(X_test[:, 0].numpy(), predictions_rescaled,
alpha=0.6, label='Prédictions', color='orange')
plt.scatter(X_test[:, 0].numpy(), y_test_rescaled,
alpha=0.6, label='Réel', color='blue')
plt.xlabel('Variable A (normalisée)')
plt.ylabel('Valeurs')
plt.title("Prédictions vs Réel - Variable A")
plt.legend()
plt.grid(True)
plt.savefig(os.path.join(download_dir,
"8_scatter_variable_A.png"))
plt.close()

# 9. Résidus vs Prédictions
plt.figure(figsize=(8, 6))
plt.scatter(predictions_rescaled, residus, alpha=0.6)

ANNEE : 2024-2025 16
plt.axhline(0, color='red', linestyle='--')
plt.xlabel("Valeurs prédites")
plt.ylabel("Résidus")
plt.title("Résidus vs Prédictions")
plt.grid(True)
plt.savefig(os.path.join(download_dir,
"9_residus_vs_prediction.png"))
plt.close()

# 10. Matrice de corrélation


plt.figure(figsize=(8, 6))
sns.heatmap(data.corr(), annot=True, cmap='coolwarm',
fmt=".2f")
plt.title("Matrice de corrélation des variables")
plt.savefig(os.path.join(download_dir,
"10_correlation_heatmap.png"))
plt.close()

print(f"\n Toutes les courbes ont été enregistrées dans :


{download_dir}")

6. Détail du Code
6.1. Chargement et Prétraitement des Données

file_path = r"ADK7.xlsx"
data = pd.read_excel(file_path)
data.columns = ['A', 'B', 'C', 'D', 'E']

# Remplacement des valeurs manquantes par la moyenne


data = data.apply(lambda col: col.fillna(col.mean()) if
col.isna().sum() > 0 else col)

 Le fichier Excel est chargé via pandas.


 Les colonnes sont renommées pour une meilleure lisibilité.
 Les valeurs manquantes sont remplacées par la moyenne de leur colonne
respective afin d’éviter des erreurs pendant l’entraînement.

6.2. Préparation des Variables

ANNEE : 2024-2025 17
X = data[['A', 'B', 'C', 'D', 'E']].values
y = data['E'].values

# Normalisation
scaler_X = StandardScaler()
scaler_y = StandardScaler()
X = scaler_X.fit_transform(X)
y = scaler_y.fit_transform(y.reshape(-1, 1)).flatten()

 Les variables explicatives X et la cible y sont extraites.


 Une normalisation standard (moyenne 0, écart-type 1) est appliquée sur les
deux pour optimiser la convergence du modèle.

6.3. Conversion en Tenseurs PyTorch et Split

X = torch.tensor(X, dtype=torch.float32)
y = torch.tensor(y, dtype=torch.float32).view(-1, 1)

# Train/test split
X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size=0.2, random_state=42)

 Conversion des données normalisées en tenseurs PyTorch pour le traitement par


le réseau.
 Séparation des données en ensembles d’entraînement et de test (80%/20%).

6.4. Définition du Modèle de Réseau de Neurones

class RegressionNet(nn.Module):
def __init__(self):
super(RegressionNet, self).__init__()
self.fc1 = nn.Linear(5, 16)
self.relu = nn.ReLU()
self.fc2 = nn.Linear(16, 8)
self.output = nn.Linear(8, 1)

def forward(self, x):


x = self.relu(self.fc1(x))
x = self.relu(self.fc2(x))
x = self.output(x)
return x

 Le modèle est une régression multi-couches avec deux couches cachées


utilisant la fonction d’activation ReLU.
 La couche de sortie produit une valeur continue unique, adaptée à la prédiction.
ANNEE : 2024-2025 18
6.5. Entraînement du Modèle

criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.01)

# Entraînement
epochs = 100
losses = []
maes = []

for epoch in range(epochs):


model.train()
optimizer.zero_grad()
outputs = model(X_train)
loss = criterion(outputs, y_train)
loss.backward()
optimizer.step()

 Utilisation de la fonction de perte MSE pour mesurer l’erreur quadratique.


 Optimisation via l’algorithme Adam, adapté aux réseaux profonds.
 Pour chaque époque, le modèle fait une passe avant, calcule la perte, puis
ajuste les poids via rétropropagation.

6.6. Évaluation et Visualisation

model.eval()
with torch.no_grad():
predictions = model(X_test).numpy()
y_test_np = y_test.numpy()
predictions_rescaled =
scaler_y.inverse_transform(predictions)

 Le modèle est mis en mode évaluation pour désactiver la mise à jour des poids.
 Les prédictions sont calculées sur l’ensemble test, puis retransformées dans leur
échelle originale pour l’interprétation.

ANNEE : 2024-2025 19
Conclusion
Le projet modèle neuronal pour l’estimation de grandeurs continues à partir de
données tabulaires a permis de démontrer l'efficacité des réseaux de neurones
artificiels pour la prédiction de variables continues à partir de données
environnementales. Grâce à l'utilisation de bibliothèques modernes telles que
PyTorch, Pandas, Scikit-learn et Matplotlib, une solution complète et automatisée a
été mise en place, allant du traitement des données à l’analyse graphique des
résultats.

Le modèle entraîné a atteint des performances satisfaisantes sur les données de test,
comme en témoignent les métriques calculées (R², RMSE, MAE) et les visualisations
associées. Ces éléments confirment que l'approche est non seulement viable, mais
également adaptable à d'autres types de données ou cas d’usage similaires.

En plus de l’aspect technique, le projet a été l’occasion de mettre en œuvre une


démarche rigoureuse de développement : préparation des données, modélisation,
évaluation, et restitution visuelle. Il constitue une base solide pour aller plus loin, en
explorant des modèles plus complexes ou des fonctionnalités avancées comme
l’optimisation hyperparamétrique ou la mise en production.

ANNEE : 2024-2025 20

Vous aimerez peut-être aussi