0% ont trouvé ce document utile (0 vote)
26 vues5 pages

TP4 Machine Learning

Le document présente un TP sur la régression linéaire et polynomiale, visant à enseigner l'utilisation de ces techniques pour prédire une variable continue à partir de variables explicatives. Il inclut des instructions en Python pour modéliser des données de productivité en fonction des heures de travail, ainsi que des exercices d'évaluation de la performance du modèle à l'aide de métriques comme le MSE et le R². Les résultats montrent des coefficients de régression, des équations de droite, et des prédictions pour des valeurs spécifiques.

Transféré par

medaziz jellibi
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
26 vues5 pages

TP4 Machine Learning

Le document présente un TP sur la régression linéaire et polynomiale, visant à enseigner l'utilisation de ces techniques pour prédire une variable continue à partir de variables explicatives. Il inclut des instructions en Python pour modéliser des données de productivité en fonction des heures de travail, ainsi que des exercices d'évaluation de la performance du modèle à l'aide de métriques comme le MSE et le R². Les résultats montrent des coefficients de régression, des équations de droite, et des prédictions pour des valeurs spécifiques.

Transféré par

medaziz jellibi
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

Ecole Nationale d’ingénieurs de Université de Monastir

Monastir

TP4 Machine Learning (Régression linéaire)

Matière : Programmation python avancée


Enseignant : Dr. Marwen Amiri
Groupes : Ener1 G3, Ener1 G4, MECA1 G1
Niveau : 1ère année
Objectif pédagogique :

L’objectif du TP de régression linéaire est d'apprendre à utiliser la régression linéaire pour prédire une
variable continue en fonction d'une ou plusieurs variables explicatives.

La régression linéaire est un algorithme d'apprentissage supervisé, ce qui signifie qu'il est entraîné sur un
ensemble de données d'entraînement étiqueté. L'ensemble de données d'entraînement contient des exemples
de paires de valeurs (x, y), où x est un vecteur de variables explicatives et y est la variable cible à prédire.

L'algorithme de régression linéaire apprend un modèle linéaire qui peut être utilisé pour prédire la valeur de
y pour une nouvelle valeur de x. Le modèle linéaire est représenté par une équation de la forme suivante :

y = b0 + b1x1 + b2x2 + ... + bpxp

Où b0, b1, ..., bp sont les coefficients du modèle.

Une fois que le modèle est entraîné, il peut être utilisé pour prédire la valeur de y pour une nouvelle valeur
de x. La prédiction est calculée en substituant la nouvelle valeur de x dans l'équation du modèle.

La régression linéaire est un algorithme d'apprentissage automatique très puissant et polyvalent. Il est utilisé
dans une grande variété de domaines, tels que la finance, la médecine, la science et l'ingénierie.
Exercice1 : Modélisation et Prédictions à travers la Régression Linéaire
Equations Instructions python
Calcul des moyennes : # Calcul des moyennes
Moyenne de X : mean_X = (1/n) * somme(X_i) mean_X = [Link](X)
Moyenne de Y : mean_Y = (1/n) * somme(Y_i) mean_Y = [Link](Y)
Calcul des écarts par rapport à la moyenne : # Calcul des écarts par rapport à la moyenne
Pour chaque observation i : diff_X = X - mean_X
diff_X_i = X_i - mean_X diff_Y = Y - mean_Y
diff_Y_i = Y_i - mean_Y
Calcul du produit des écarts : # Calcul du produit des écarts
Produit des écarts = somme(diff_X_i * diff_Y_i) product_diff = diff_X * diff_Y
Calcul des coefficients de la régression linéaire # Calcul des coefficients de la régression linéaire
Pente (beta1) : beta1 = [Link](product_diff) / [Link](diff_X**2)
beta1 = somme(diff_X_i * diff_Y_i) / beta0 = mean_Y - beta1 * mean_X
somme(diff_X_i^2)
Ordonnée à l'origine (beta0) :
beta0 = mean_Y - beta1 * mean_X
Équation de la droite de régression : # Équation de la droite de régression
L'équation est : Y = beta0 + beta1 * X equation = f"Y = {beta0:.2f} + {beta1:.2f} * X"

Compléter le programme suivant

# Analyse de la Productivité : Modélisation et Prédictions à travers la Régression Linéaire


import numpy as np
import [Link] as plt
from [Link] import mean_squared_error, r2_score

# Données
X = [Link]([35, 40, 45, 50, 55, 60, 65, 70])
Y = [Link]([120, 145, 160, 180, 200, 215, 230, 225])

# Calcul des moyennes


………………………………..
…………………………………

# Calcul des écarts par rapport à la moyenne


…………………………………
…………………………………

# Calcul du produit des écarts


…………………………………

# Calcul des coefficients de la régression linéaire


…………………………………
…………………………………

# Équation de la droite de régression


…………………………………

# Prédiction pour X = 80
X_pred = 80
Y_pred = beta0 + beta1 * X_pred
# Calcul des métriques
Y_pred_all = beta0 + beta1 * X
mse = mean_squared_error(Y, Y_pred_all)
rmse = [Link](mse)
r2 = r2_score(Y, Y_pred_all)

# Tracer la courbe de régression linéaire


[Link](X, Y, color='blue', label='Données')
[Link](X, beta0 + beta1 * X, color='red', label='Régression linéaire')
[Link](X_pred, Y_pred, color='green', label=f'Prédiction pour X={X_pred}', marker='X')

# Ajouter des étiquettes et une légende


[Link]('Heures de Travail')
[Link]('Productivité')
[Link]('Régression Linéaire : Prédiction de Productivité en Fonction des Heures de Travail')
[Link]()

# Afficher le graphique
[Link]()
# Affichage des résultats
print("Coefficients de la régression linéaire:")
print(f"Beta0 (ordonnée à l'origine): {beta0:.2f}")
print(f"Beta1 (pente): {beta1:.2f}")
print("\nÉquation de la droite de régression:")
print(equation)
print("\nPrédiction pour X = 80:")
print(f"Y_pred = {Y_pred:.2f}")

# Affichage des métriques


print("\nMétriques de régression linéaire:")
print(f"MSE (Mean Squared Error): {mse:.2f}")
print(f"RMSE (Root Mean Squared Error): {rmse:.2f}")
print(f"R² (Coefficient de détermination): {r2:.2f}")

Questions

1. Interprétation des Coefficients :

a. Quel est le rôle de l'ordonnée à l'origine (β0) dans l'équation de la droite de régression ?

b. Comment interprétez-vous la pente (β1) dans le contexte de cette régression linéaire ?

2. Évaluation de la Performance du Modèle :

a. Expliquez ce que représente le Mean Squared Error (MSE) dans le contexte de cette modélisation.

b. Pourquoi le coefficient de détermination (R2) est-il important pour évaluer la qualité de l'ajustement du
modèle aux données ?
Coefficients de la régression linéaire:
Beta0 (ordonnée à l'origine): -2.50
Beta1 (pente): 3.62

Équation de la droite de régression:


Y = -2.50 + 3.62 * X

Prédiction pour X = 67:


Y_pred = 239.98

Métriques de régression linéaire:


MSE (Mean Squared Error): 5.95
RMSE (Root Mean Squared Error): 2.44
R²(Coefficient de détermination):1.00

Exercice2 : Modélisation de la Productivité : Régression Polynomiale de Degré 3

La deuxième partie du TP sur la régression explore l'application d'une régression polynomiale de degré 3 à
un ensemble de données représentant le nombre d'heures de travail d'employés et leur productivité.
L'exercice implique le calcul des coefficients du polynôme à l'aide de la fonction `polyfit` de NumPy, la
prédiction de la productivité pour un nombre d'heures de travail spécifié, et l'évaluation de la performance du
modèle à l'aide de métriques telles que le Mean Squared Error (MSE), le Root Mean Squared Error (RMSE),
et le coefficient de détermination (R²). L’exercice comprend également la visualisation graphique de la
régression polynomiale par rapport aux données d'origine.

Questions :

1. Choix du Degré du Polynôme :

a. Pourquoi a-t-on choisi un polynôme de degré 3 pour modéliser la relation entre les heures de travail et la
productivité ?

b. Quels pourraient être les avantages et les inconvénients de choisir un degré de polynôme plus élevé ou
plus faible dans ce contexte ?

2. Interprétation des Coefficients :

a. Que représentent les coefficients obtenus pour le polynôme de degré 3 dans le contexte de cette régression
polynomiale ?

b. Comment ces coefficients influent-ils sur la forme de la courbe de régression polynomiale

import numpy as np
import [Link] as plt
from [Link] import mean_squared_error, r2_score

# Données
X = [Link]([35, 40, 45, 50, 55, 60, 65, 70])
Y = [Link]([120, 125, 140, 150, 190, 195, 210, 208])

# Régression polynomiale de degré 3


coefficients = [Link](X, Y, 3)
p3 = np.poly1d(coefficients)
# Prédiction pour X = 80
X_pred = 80
Y_pred = p3(X_pred)

# Calcul des métriques


Y_pred_all = p3(X)
mse = mean_squared_error(Y, Y_pred_all)
rmse = [Link](mse)
r2 = r2_score(Y, Y_pred_all)

# Tracer la courbe de régression polynomiale


X_range = np. linspace(min(X), max(X), 100)
Y_range = p3(X_range)

[Link](X, Y, color='blue', label='Données')


[Link](X_range, Y_range, color='red', label='Régression polynomiale (degré 3)')
[Link](X_pred, Y_pred, color='green', label=f'Prédiction pour X={X_pred}', marker='X')

# Ajouter des étiquettes et une légende


[Link]('Heures de Travail')
[Link]('Productivité')
[Link]('Régression Polynomiale (Degré 3) : Prédiction de Productivité en Fonction des Heures de
Travail')
[Link]()

# Afficher le graphique
[Link]()

# Affichage des résultats


print("Coefficients de la régression polynomiale (degré 3):")
print(coefficients)
print("\nPrédiction pour X = 63:")
print(f"Y_pred = {Y_pred:.2f}")

# Affichage des métriques


print("\nMétriques de régression polynomiale (degré 3):")
print(f"MSE (Mean Squared Error): {mse:.2f}")
print(f"RMSE (Root Mean Squared Error): {rmse:.2f}")
print(f"R² (Coefficient de détermination): {r2:.2f}")

Coefficients de la régression
polynomiale (degré 3):
[-4.64646465e-03 , 7.34199134e-01 ,-
3.44292929e+01 , 6.24696970e+02]

Prédiction pour X = 63:


Y_pred = 212.14

Métriques de régression polynomiale


(degré 3):
MSE (Mean Squared Error): 25.92
RMSE (Root Mean Squared Error): 5.09
R² (Coefficient de détermination):
0.98

Vous aimerez peut-être aussi