Vous êtes sur la page 1sur 2

FACULTÉ DES S CIENCES DE T UNIS

A NNÉE U NIVERSITAIRE 2021-2022


F ILIÈRE : LCS3

Machine Learning
TP3 : Régression linéaire avec Sklearn

Exercice 1

Partie 1 Écrire un script python qui permet de :

1. Créer les deux tableaux X et Y suivants :


X 5 15 25 35 45 55
Y 5 20 14 32 22 38
2. Représenter le nuage de points.
3. Calculer et afficher les valeurs a et b en utilisant la méthode des moindres carrés.
4. Calculer et afficher les valeurs prédites (ŷi ) dans un tableau ypredit .
5. Représenter la droite de régression dans le même graphique.
6. Représenter les valeurs prédites sur la droite de régression.
7. Calculer et afficher la prédiction pour x0=10 et x0=50.
8. Ajouter une légende à votre graphique.
9. Calculer et afficher la valeur MSE (Mean Squared Error) ainsi que le coefficient de détermination
R2 .
Rappel : m est le nombre d’observations et où les moyennes considérées sont :

x̄ = m1 m
P
i=1 xi

ȳ = m1 m
P
i=1 yi

Pm
(x − x̄)(yi − ȳ)
Pm i
a = i=1 2
i=1 (xi − x̄)

b = ȳ − ax̄

1
1
Pm 1
Pm
M SE = m i=1 (ŷi − yi )2 = m i=1 ((axi + b) − yi )2

Pm
2 (yi − ŷi )2
R = 1 − Pi=1
m 2
i=1 (yi − ȳ)

Partie 2
Implémenter la Partie 1 en utilisant cette fois les fonctions de la bibliothèque sklearn.

— L’import : from sklearn.linear_model import LinearRegression


— Définition du modèle : model = LinearRegression()
— Entraînement du modèle : model.fit(x,y)
— Attributs du model : model.coef_ (a), model.intercept_(b)
— Prédiction : model.predict(x)
— Évaluation
— Coefficient de détermination (R2 ) : model.score(x, y)
— L’import : from sklearn.metrics mean_squared_error
— MSE : mean_squared_error(y, model.predict(x))

Partie 3 Une solution analytique peut-être donnée directement par l’équation normale :

θ = (X T X)−1 X T Y

Calculer et afficher les valeurs a et b en utilisant l’équation normale sur les tableaux X et Y .

NB : Transformez X en matrice et ajoutez une colonne remplie de 1.