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.