0% ont trouvé ce document utile (0 vote)
69 vues7 pages

Machine Learning (ML) : Scikit-Learn

Transféré par

Baha Jbali
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)
69 vues7 pages

Machine Learning (ML) : Scikit-Learn

Transféré par

Baha Jbali
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

Machine Learning (ML)

TP5 : Régression Linéaire sur un cas réel avec Scikit-Learn

Dans le précédent TP, nous avons abordé les bases de la régression linéaire et de la descente
de gradient. Pour mettre en pratique cela, nous allons vous montrer pas à pas une application
concrète d’une régression linéaire sur un cas réel avec Scikit-Learn. Ainsi, on va pouvoir
appliquer les concepts que nous avons appris sur des données réelles.

Objectifs :
 Extraction des données depuis un lien web
 Créer une heatmap de la matrice de corrélation pour analyser les relations
entre les variables de l'ensemble de données
 Vous pouvez utiliser la bibliothèque scikit-learn pour construire et
entraîner un modèle.
 Évaluer la performance d'un modèle de régression linéaire en calculant des
métriques telles que le RMSE et le R² sur les ensembles d'entraînement et
de test.

Notion de base :
L’objectif principal du Machine Learning est de construire un bon modèle. Dans la pratique,
les Data Scientists utilisent le package sklearn, qui permet d’écrire un tel code en 4 lignes. Il
est la librairie qui contient toutes les fonctions de l’état de l’art du Machine Learning. On y
trouve les algorithmes les plus importants ainsi que diverses fonctions de pre-processing.

Dr. Mohamed HAYOUNI et Mlle. Fatma JEMAI


1
Exercice : Prédiction des prix des maisons à Boston
Vous avez à votre disposition un ensemble de données sur les prix des maisons à Boston.
L'objectif de cet exercice est de construire un modèle de régression linéaire pour prédire les
prix des maisons en fonction de certaines caractéristiques.

Etape 1 : Importer les librairies

1. Importez les bibliothèques nécessaires :


 Importez la bibliothèque NumPy pour effectuer des calculs numériques
efficaces
 Importez la bibliothèque [Link] pour créer des graphiques et
des visualisations
 Importez la bibliothèque Pandas pour manipuler et analyser des données
tabulaires (DataFrames)
 Importez la bibliothèque Seaborn pour créer des graphiques statistiques et
des visualisations de données

Code :

 scikit-learn :
 Importez la fonction train_test_split de la bibliothèque scikit-learn
(sklearn) pour diviser les données en ensembles d'entraînement et
de test
 Importez la classe StandardScaler de scikit-learn pour standardiser
les caractéristiques (mise à l'échelle)
 Importez la classe LinearRegression de scikit-learn pour créer un
modèle de régression linéaire
 Importez les fonctions mean_squared_error et r2_score de scikit-
learn pour évaluer la performance du modèle

Code :

Dr. Mohamed HAYOUNI et Mlle. Fatma JEMAI


2
Etape 2 : Extraction des données depuis un lien web
Nous allons prendre le dataset Boston Housing qui contient des informations sur différentes
maisons à Boston. Ce dataset contient 506 échantillons et 13 variables de features
(caractéristiques). L’objectif est de prédire la valeur du prix des maisons en utilisant les
features données.

2. Chargez les données du Boston Housing depuis l'URL :


[Link]

Code :

3. Combinez les données en un seul tableau (data) et les prix médians en un vecteur
(target)

Code :

4. Listez toutes les colonnes de la description

Code :

Etape 3 : Création du DataFrame de données


5. Créez un DataFrame ‘boston’ contenant les données

Code :

6. Affichez les 5 premières lignes du DataFrame

Dr. Mohamed HAYOUNI et Mlle. Fatma JEMAI


3
Résultat :

7. Ajoutez une colonne MEDV (Valeur médiane des maisons occupées par leur
propriétaire en 1 000 $) au DataFrame boston pour stocker les prix médians des
maisons

Code :

8. Affichez les 5 premières lignes du DataFrame

Résultat :

Etape 4 : Pré-traitement des données


Après avoir chargé les données, il est bon de vérifier s’il y a des valeurs manquantes dans les
données.
9. Vérifiez s'il y a des valeurs manquantes dans le DataFrame boston

Code :

10. Quesque vous remarqué ?


Dr. Mohamed HAYOUNI et Mlle. Fatma JEMAI
4
Etape 5 : Analyse exploratoire des Données
Ensuite, nous créons une matrice de corrélation qui mesure les relations linéaires entre les
variables. La matrice de corrélation peut être créée à l’aide de la fonction .corr() sur un
DataFrame depuis la bibliothèque pandas. Nous utiliserons la fonction heatmap() de la
bibliothèque seaborn pour tracer la matrice de corrélation.

11. Calculez la matrice de corrélation entre toutes les caractéristiques du


DataFrame `boston`.
12. Affichez la matrice de corrélation sous forme d'une heatmap.
13. Écrivez un code en utilisant Matplotlib pour créer une figure de 10 par 8 pouces
qui affiche une heatmap de la matrice de corrélation de cet ensemble de données
14. Enregistrez la heatmap que vous avez créée sous le nom de fichier 'Matrice de
Corré[Link]' et affiche la heatmap sur votre écran.

Résultat :

Le coefficient de corrélation varie de -1 à 1. Si la valeur est proche de 1, cela signifie qu’il


existe une forte corrélation positive entre les deux variables. Lorsqu’il est proche de -1, les
variables ont une forte corrélation négative.

Dr. Mohamed HAYOUNI et Mlle. Fatma JEMAI


5
Etape 6 : Préparation des variables pour le modèle
 Pour entraîner un modèle de régression linéaire, nous sélectionnons les features qui ont
une forte corrélation avec notre variable cible MEDV. En regardant la matrice de
corrélation, nous pouvons voir que RM a une forte corrélation positive avec MEDV
(0,7) alors que LSTAT a une forte corrélation négative avec MEDV (-0,74).
 Un point important dans la sélection des features pour un modèle de régression linéaire
est de vérifier la multi-colinéarité. Les featuress RAD, TAX ont une corrélation de 0,91.
Ces paires de features sont fortement corrélées entre elles. Nous ne devrions donc pas
sélectionner ces deux features ensemble pour entraîner le modèle. Il en va de même pour
les features DIS et AGE qui ont une corrélation de -0,75.
Sur la base des observations ci-dessus, nous choisirons RM (nombre moyen de pièces par
logement) et LSTAT (statut inférieur de la population) comme features varient avec
MEDV.

15. Créez un DataFrame `X` contenant ces deux caractéristiques et un vecteur `Y`
contenant les prix médians.
16. Divisez les données en un ensemble d'entraînement (70%) et un ensemble de test
(30%) en utilisant `train_test_split` de scikit-learn.
17. Affichez les dimensions des ensembles d'entraînement et de test.

Code :

Etape 7 : Création et Entraînement du modèle


18. Nous utilisons la fonction LinearRegression de Scikit-learn pour entraîner notre
modèle sur l’ensemble d’entraînement.

Code :

Dr. Mohamed HAYOUNI et Mlle. Fatma JEMAI


6
Etape 8 : Évaluation du modèle
19. Évaluez la performance du modèle sur l'ensemble d'entraînement en calculant la
racine carrée de l'erreur quadratique moyenne (RMSE) et le coefficient de
détermination R².
20. Affichez ces métriques.

Code :

21. Évaluez la performance du modèle sur l'ensemble de test en calculant le RMSE


et le R².
22. Affichez ces métriques.
23. En utilisant la bibliothèque Seaborn, tracez un graphique de dispersion (scatter
plot) qui affiche Y_test sur l'axe des x (valeurs réelles) et y_test_predict sur l'axe
des y (valeurs prédites).

Code :

Dr. Mohamed HAYOUNI et Mlle. Fatma JEMAI


7

Vous aimerez peut-être aussi