PROJET TP
INF242 : OPTIMISATION NUMéRIQUE
Superviseur: Pr. Melatagia Paulin
Encadreur: Dr. Maxwell Ndognkon Manga
Ce projet consistera à construire et optimiser un modèle de régression linéaire multiple pour prédire
les prix de biens immobiliers en se basant sur plusieurs caractéristiques et en utilisant un algorithme
d'optimisation de type descente de gradient.
L'implémentation de la descente de gradient sera réalisée de zéro pour minimiser la fonction de
coût. Aucune librairie d'apprentissage automatique ne doit être utilisée ici à cet effet. Exceptée
pour la phase de traitement des données.
Seules les librairies python : Numpy et Pandas, sont utilisées.
1. Contexte et Objectifs du Projet
Le marché immobilier est influencé par de nombreux facteurs. Prédire le prix d'une propriété n'est
pas une tâche simple et nécessite de considérer plusieurs variables simultanément. La régression
linéaire multiple est un outil puissant pour modéliser cette relation.
Objectifs :
• Modéliser une relation complexe : Comprendre comment plusieurs variables
indépendantes influencent une variable dépendante (le prix d'une propriété).
• Implémenter la Régression Linéaire Multiple from “scratch”: c'est-à-dire il s'agit de
coder les équations mathématiques de la régression linéaire multiple sans utiliser de
bibliothèques de machine learning toutes faites (comme scikit-learn, Tensorflow, Theano, ..
pour le modèle lui-même).
• Maîtriser la Descente de Gradient : Appliquer et optimiser l'algorithme de descente de
gradient pour entraîner le modèle.
• Gérer des Données Multidimensionnelles : Travailler avec des jeux de données
comportant de nombreuses caractéristiques,
• Évaluer la Performance du Modèle : Quantifier l'efficacité du modèle et comprendre ses
limites.
2. Étapes Détaillées du Projet
2.1. Choix et Préparation du Jeu de Données Multidimensionnel
• Jeu de Données : Ce projet utilise le jeu de données de prix immobiliers "Boston Housing
Dataset" qui contient 506 habitats, chaque habitat étant décrit par un ensemble de 14
variables, attention, certaines sont complexes avec des variables catégorielles et
manquantes : i.e il faudrait choisir une version simplifiée ou un sous-ensemble de variables
qui caractérisent au mieux le modèle.
Le dataset est accessible sur ce lien http://lib.stat.cmu.edu/datasets/boston
La description complète du jeu de données ici
https://www.cs.toronto.edu/~delve/data/boston/bostonDetail.html
INF242 TP PROJET Page. 1/4
• Variables :
• Variable Cible (Y) : Le prix de la propriété.
• Variables Explicatives (X) : Plusieurs caractéristiques telles que :
• Surface habitable (en m²)
• Nombre de chambres
• Nombre de salles de bain
• Âge de la propriété
• ….
• Préparation des Données :
• Chargement des données
• Nettoyage : Gestion des valeurs manquantes : supprimer des lignes ou colonnes
ayant des cellules manquantes.
• Format des variables : Si des variables catégorielles sont présentes (ex: type de
propriété "maison", "appartement"), les supprimer. Utiliser uniquement des variables
au format numérique
• Normalisation / Standardisation des Caractéristiques : Crucial pour la descente
de gradient. Appliquer une technique comme la standardisation à toutes les
variables explicatives pour assurer que l'algorithme converge plus rapidement et plus
stablement. Ne pas normaliser la variable cible.
• Ajout du Biais (Terme d'Interception) : Ajouter une colonne de 1 à la matrice des
caractéristiques X pour représenter le terme de biais θ 0 dans le modèle de
régression.
• Division Train/Test : Séparer le jeu de données en deux ensembles : 80% de
données pour l'entraînement et 20% pour les données de test, qui permettent
d'évaluer la généralisation du modèle.
2.2. Modèle Mathématique de la Régression Linéaire Multiple
• Équation du modèle : La prédiction y(i) pour une observation i avec n caractéristiques
sera :
y(i)=θ 0+θ 1 x(i) (i) (i)
1 +θ 2 x 2 +...+θ n x n
• Sous forme vectorielle, avec x(i) étant le vecteur des caractéristiques et θ le vecteur des
paramètres (poids et biais) :
y(i)=θ T x (i)
• Fonction de Coût (Erreur Quadratique Moyenne - MSE) : L'objectif est de minimiser
l'erreur entre les prédictions et les vraies valeurs. La MSE est définie comme :
m m
1 1
J (θ )= ∑
2m i=1
( ̃y (i)− y( i))2 = ∑
2m i=1
(θ T x(i )− y (i))2
(où m est le nombre d'exemples d'entraînement).
INF242 TP PROJET Page. 2/4
2.3. Implémentation de la Descente de Gradient
• Dérivation du Gradient : Calculer la dérivée partielle de la fonction de coût J(θ) par
rapport à chaque paramètre θ j :
m
∂ J (θ ) 1
= ∑ ( ̃y (i)− y(i ))
∂θj m i=1
• En notation vectorielle le gradient du coût J(θ) s'écrit :
1 T
∇ J (θ )= X ( Xθ − y)
m
• (où X est la matrice de toutes les caractéristiques, y le vecteur des vraies cibles).
• Algorithme de Mise à Jour des Paramètres : Itérer pour mettre à jour les paramètres θ :
θ (i+1) =θ (i) − α ∇ J (θ (i) )
Où α (alpha) est le taux d'apprentissage.
• Signature de la fonction de descente du gradient
train_gradient_descent: X, y, learning_rate, n_iterations → θ*
2.4. Optimisation des Hyperparamètres
• Taux d'Apprentissage (α) : Expérimenter avec différentes valeurs (ex: 0.1, 0.01, 0.001,
0.0001).
• Analyse de la Convergence : Utiliser les valeurs de coût enregistrées pour tracer des
courbes de convergence. Idéalement, la courbe du coût devrait diminuer régulièrement et se
stabiliser.
2.5. Évaluation et Visualisation des Résultats
• Prédictions : Utiliser le modèle entraîné avec les poids θ* obtenus à l'issue de l'algorithme
du gradient, pour faire des prédictions sur l'ensemble de test.
• Métriques de Performance :
• Erreur Quadratique Moyenne (MSE) : Calculer la MSE sur l'ensemble de test
pour quantifier l'erreur moyenne des prédictions.
• Coefficient de Détermination (R2) : Calculer le R2 pour évaluer la proportion de la
variance de la variable dépendante qui est expliquée par le modèle. Un R2 proche de
1 indique un bon ajustement.
m
∑ ( y i− ŷ i )2
R2=1− i=1
m
∑ ( y i − ̄y)2
i=1
• est la moyenne des vraies valeurs).
• Visualisation :
• Courbe de Convergence : Tracer le coût en fonction des itérations pour montrer la
convergence.
INF242 TP PROJET Page. 3/4
• Graphique de Prédictions vs. Réalité : Représenter les vrais prix en fonction des
prix prédits sur l'ensemble de test. Idéalement, les points devraient s'aligner le long
de la droite y=x.
• (Optionnel et plus complexe pour le multidimensionnel) : Si possible, faire des
coupes 2D (ex: prix en fonction de la surface, en fixant les autres variables à leur
moyenne) pour visualiser l'impact de certaines caractéristiques.
3. Outils Recommandés
• Langage : Python
• Bibliothèques :
• numpy pour les opérations numériques et matricielles.
• pandas pour la manipulation des données.
• matplotlib.pyplot et/ou seaborn pour les visualisations.
INF242 TP PROJET Page. 4/4