0% ont trouvé ce document utile (0 vote)
21 vues4 pages

TP N°2: Régression Linéaire: Institut Supérieur: ML D'informatique Ines Bousrih de Mahdia 2024/ 2025

Ce document présente un TP sur la régression linéaire dans le cadre du Machine Learning, incluant des notions clés comme le Dataset, le modèle, la fonction coût et l'algorithme d'apprentissage. Il décrit les étapes pour implémenter un modèle de régression linéaire simple et multiple en Python, en utilisant un jeu de données sur l'évaluation immobilière. Enfin, il propose des exercices pratiques pour appliquer les concepts appris sur d'autres ensembles de données.

Transféré par

raissianouer
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)
21 vues4 pages

TP N°2: Régression Linéaire: Institut Supérieur: ML D'informatique Ines Bousrih de Mahdia 2024/ 2025

Ce document présente un TP sur la régression linéaire dans le cadre du Machine Learning, incluant des notions clés comme le Dataset, le modèle, la fonction coût et l'algorithme d'apprentissage. Il décrit les étapes pour implémenter un modèle de régression linéaire simple et multiple en Python, en utilisant un jeu de données sur l'évaluation immobilière. Enfin, il propose des exercices pratiques pour appliquer les concepts appris sur d'autres ensembles de données.

Transféré par

raissianouer
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

Institut Supérieur Matière : ML

d’informatique Responsable : Ines Bousrih


de Mahdia A.U. : 2024/ 2025

TP N°2 : Régression linéaire

Objectifs
• Développer un premier programme de Machine Learning avec la régression linéaire.
I. Les notions clefs du Machine Learning :
1. DataSet
En Machine Learning, tout démarre d’un Dataset qui contient nos données. Le Dataset
contient une variable de sortie et des variables d’entrée au problème que la machine
doit résoudre.
2. Modèle et ses paramètres
A partir de ce Dataset, on crée un modèle, qui n’est autre qu’une fonction
mathématique. Les coefficients de cette fonction sont les paramètres du modèle (Le
modèle de la régression linéaire est ax+b).
3. Fonction Coût
Lorsqu’on teste notre modèle sur le Dataset, celui-ci nous donne des erreurs.
L’ensemble de ces erreurs, c’est ce qu’on appelle la Fonction Coût.
4. Algorithme d’apprentissage
L’idée centrale du Machine Learning, c’est de laisser la machine trouver quels sont les
paramètres de notre modèle qui minimisent la Fonction Coût.

Pour implémenter ces étapes en python, nous devons suivre les étapes suivantes :
1. Charger le jeu de données et diviser en 2
La machine reçoit des données caractérisées par des variables X (appelés features) et
annotées d’une variable y (appelé Label ou target). Diviser le datset en échantillon
d’apprentissage (Utiliser pour la construction du modèle) et échantillon de test (Utilisé
pour l’évaluation du modèle)
Exemple : échantillon d’apprentissage =70% et échantillon de test=30%
2. Sélectionner quel type de modèle
La machine doit apprendre, en précisant les hyperparamètres du modèle
Exemple en python : model = LinearRegression()
model=PolynomialFeatures(…)
model=RandomForestRegressor()
3. Entrainer le modèle
Entrainer le modèle sur les données d’apprentissage ([Link] (Xa, Ya)).
4. Evaluer le modèle
Test de modèle en appliquant le modèle sur l’échantillon de test et vérifier ses
performances ([Link](Xt, Yt)).

1
5. Utilisé le modèle
Utiliser le modèle dans le classement de nouvelles données ([Link](x’)).
II. Régression linéaire simple
On considère l’ensemble des données Real state valuation (
[Link]
uci?resource=download). Ce sont des données pour estimer les prix des maisons (Sindian
Dist., New Taipei City, Taiwan.) en se basant sur 7 caractéristiques :
• Date : la date de transaction (par exemple : 2013.250=2013 March,
2013.500=2013 June, etc.)
• Age : l'âge de la maison en nombre d’années (nombre réel).
• Station : la distance à la station de métro la plus proche (en mètre).
• Stores : nombre des stores près de la maison (nombre entier).
• Latitude : latitude en degré
• Longitude : longitude en degré
• Price : c’est la sortie qui est le prix de la maison par unité (10000 New Taiwan
Dollar/Ping, où Ping est l’unité locale, 1 Ping = 3.3 mètres carrés).
Etape 1 : Importer les librairies
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from [Link] import mean_squared_error , r2_score

Etape 2 : Chargement du Dataset

#lire le fichier excel


data=pd.read_excel("[Link]")
data

Etape 3 : Préparation des données


a. Supprimer les caractéristiques “date” et “no”
#Supprimer la colonne date
[Link](columns=["Date", "No"],inplace=True)

2
b. Transforme la latitude et la longitude en deux valeurs (0 ou 1) en utilisant
la moyenne.

# une fonction pour binariser une colonne


# donnee:le dataframe
# cl: le nom de la colonne
def binariser(donnee,cl):
#Sélectionner la colonne et calculer la moyenne
moy= donnee[cl].mean()
print(moy)
# Remplacer les valeurs supérieures à la moyenne par 1 et le reste par 0
donnee[cl] =(donnee[cl] >moy).astype(float)
# binariser latitude
binariser(data,"Latitude")
# binariser longitude
binariser(data,"Longitude")

c. Séparation des données en entrées et sorties.


Dans ce fichier, les classes (qui sont le résultat attendu) sont dans la dernière
colonne (Price), et les autres caractéristiques (les entrées) sont dans les colonnes
restantes.

# Séparer les données en entrées et sorties


X =[Link][:,:-1] #les caractéristiques (Features)
y =[Link][:,-1] #les résultats (classes, Target)

Etape 4 : Diviser le dataset en 2 échantillons


Séparer les données en deux parties : une pour l’entrainement (on prend 80%) et une pour
le test (on prend 20%)

X_train, X_test, y_train,y_test=train_test_split(X,y,test_size=0.2)

Etape 5 : Entrainer le modèle


Etudier la relation entre le prix et l'âge des maisons. Ainsi, on définit un modèle linéaire
simple en se basant sur la colonne “Age” avec un nouveau régresseur (Linear Regression)
qu’on entraîne en utilisant la méthode fit. Après l’entrainement, on peut récupérer les
poids (coefficients) des caractéristiques. Ainsi, on peut prédire les classes des données de
test avec la méthode predict.
model= LinearRegression()
# Entrainer un modèle de régression linéaire simple(age)
[Link](X_train[["Age"]],y_train)
# Afficher les coefficients
print("Coefficients regression simple: ", model.coef_, " w0= ", model.intercept_)
# Prédire les résultats des échantillons de test
y_pred=[Link](X_test[["Age"]])

3
Etape 6 : Evaluer le modèle
Évaluer le modèle, en calculant :
• L’erreur quadratique moyenne entre les valeurs prédites et les valeurs réelles.
• Le coefficient de détermination (r2_score) dont le meilleur score est 1.

# Evaluation du modèle
print("Régression simple: MSE = ", mean_squared_error(y_test, y_pred))
print("Score R2=",r2_score(y_test,y_pred))

Etape 7 : Affichage du nuage des points

import [Link] as plt


[Link](X_test["Age"],y_test, color="black")
[Link](X_test["Age"],y_pred, color='r')
[Link](["linéaire"])
[Link]("Age")
[Link]("prix")
[Link]()
[Link]()

III. Régression linéaire multiple

# Regression linéaire multiple


modelRegMulti=LinearRegression()
[Link](X_train, y_train)
print("Coefficients régression multiple: ",modelRegMulti.coef_," w0= ",
modelRegMulti.intercept_)
yl_predm =[Link](X_test)
print("Régression multiple:MSE= ",mean_squared_error(y_test,yl_predm))
print("Score R2m:",r2_score(y_test, yl_predm))

Matrice de corrélation
Une matrice de corrélation est simplement un tableau contenant les coefficients de
corrélation pour différentes variables. La matrice montre comment toutes les paires de
valeurs possibles dans un tableau sont liées les unes aux autres.

import seaborn as sns


df_corr = [Link]()
ax = [Link](df_corr,cmap = 'coolwarm')

IV. Exercice :
1. Appliquer le modèle de régression linéaire simple sur l’ensemble de données Titanic, en
utilisant la colonne "Survived" comme la variable à prédire (Target) et la colonne "Fare"
comme la variable utilisée pour prédire (Feature). Puis évaluer le modèle.
2. Enlever la colonne Name, puis appliquer la régression linéaire multiple et évaluer les
performances du modèle.
4

Vous aimerez peut-être aussi