Vous êtes sur la page 1sur 6

F DUT : Intelligence Artificielle et Technologies Émergentes

Module : Introduction aux sciences des données

TP5 : L’algorithme de la forêt aléatoire

Exercice 1:
On souhaite créer une forêt aléatoire pour classifier les fleurs de type Iris en « Iris-setosa », « Iris-
versicolor » ou « Iris-virginica ».
Nous allons utiliser le dataset « iris.data » qui contient 150 enregistrements avec les attributs 'sepal-
length', 'sepal-width', 'petal-length', 'petal-width', et 'Class''.
1. Importer les bibliothèques nécessaires : pandas, numpy, matplotlib, et sklearn.
La bibliothèque sklearn comprend plusieurs fonctions :
- from sklearn.model_selection import train_test_split
- from sklearn.ensemble import RandomForestClassifier
- from sklearn.metrics import classification_report, confusion_matrix,
accuracy_score
2. Créer une variable « path » qui contient le chemin complet vers le dataset « iris.data » sur
Internet : "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
3. Le dataset ne contient pas les noms des colonnes. Créer une variable « colonnes »
contenant les noms des colonnes du dataset, càd : 'sepal-length', 'sepal-width', 'petal-
length', 'petal-width', et 'Class''
4. Importer le dataset « iris.data » avec la fonction read_csv() et les paramètres « path » et
« colonnes ». Utiliser l’hyperparamètre names pour ajouter les colonnes.
5. Visualiser les 5 premières lignes du dataset.
6. Préciser la sortie y du modèle de la forêt aléatoire, correspondant à la colonne ‘Class’ et
les entrées X, correspondant à toutes les colonnes du dataset sauf la colonne ‘Class’.
7. Diviser le dataset en 2 parties : apprentissage (70% du nombre total des enregistrements)
et test (30%). Utiliser la fonction train_test_split().
8. Afficher les longueurs des données de la base d’apprentissage et celles de test.
Partie 1 : Simple forêt aléatoire
9. Définir le modèle de forêt aléatoire. Utiliser la fonction ‘RandomForestClassifier()’.
Préciser le ‘n_estimators’ à 50.

1
F DUT : Intelligence Artificielle et Technologies Émergentes
Module : Introduction aux sciences des données

10. Faire l’entrainement de la forêt sur les données de la base d’apprentissage en utilisant la
fonction ‘fit()’.
11. Calculer les prédictions sur les données d’entrées de la base de test en utilisant la fonction
‘predict()’.
12. Faire l’évaluation du modèle avec la matrice de confusion, et la précision (accuracy).
13. Afficher la matrice de confusion et la précision.
14. Afficher le rapport de classification.
Partie 2 : Forêt aléatoire rapide
15. Définir un deuxième modèle de forêt aléatoire. Utiliser la fonction
‘RandomForestClassifier()’. Préciser les valeurs des paramètres de la fonction comme
suit :
random_state=42, n_jobs=-1, max_depth=5, n_estimators=50, oob_score=True
16. Faire l’entrainement de la forêt sur les données de la base d’apprentissage en utilisant la
fonction ‘fit()’.
17. Calculer le score de classification hors du sac : oob_score_
Partie 3 : Forêt aléatoire rapide avec GridSearchCV
18. Définir un troisième modèle de forêt aléatoire. Utiliser la fonction
‘RandomForestClassifier()’. Préciser les valeurs des paramètres de la fonction comme
suit : random_state=42, n_jobs=-1
19. Créer une variable « parametres » avec les valeurs suivantes :
parametres = {
'max_depth': [2,3,5,10,20],
'min_samples_leaf': [5,10,20,50,100,200],
'n_estimators': [10,25,30,50,100,200]
}
20. Importer la bibliothèque GridSearchCV avec la commande suivante :
from sklearn.model_selection import GridSearchCV
21. Initialiser le modèle de recherche de grille avec la fonction GridSearchCV(). Utiliser les
paramètres suivants :
estimator=Classifier, param_grid=parametres, cv = 4, n_jobs=-1, verbose=1,
scoring="accuracy"

2
F DUT : Intelligence Artificielle et Technologies Émergentes
Module : Introduction aux sciences des données

22. Faire l’apprentissage du modèle de recherche de grille sur les données de la base
d’apprentissage en utilisant la fonction ‘fit()’.
23. Calculer le meilleur score avec la variable best_score_.
24. Afficher les valeurs du meilleur estimateur avec la variable best_estimator_.
25. Visualiser l’arbre de décision qui ont les numéros 5 et 7, càd estimators_[5] et
estimators_[7]. Utiliser la fonction plot_tree() avec les paramètres suivants :
feature_names = colonnes, class_names=['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'],
filled=True
26. Comment vous trouvez les 2 arbres ?
27. Trier les descripteurs en fonction de leurs importances dans la classification. Utiliser la
fonction feature_importances_.
28. Créer un dataframe avec les 2 colonnes suivantes : « Descripteur » et « Importance ».
Afficher les descripteurs avec leurs degrés d’importance respectifs dans un ordre
décroissant.
Exercice 2:
On souhaite créer une forêt aléatoire pour vérifier la sécurité des voitures. Dans une première
partie, nous allons utiliser 10 arbres de décision et 100 arbres dans la deuxième.
1. Importer les bibliothèques nécessaires : pandas, numpy, matplotlib, et sklearn.
La bibliothèque sklearn comprend plusieurs fonctions :
- from sklearn.model_selection import train_test_split
- import category_encoders as ce
- from sklearn.ensemble import RandomForestClassifier
- from sklearn.metrics import confusion_matrix, accuracy_score
- from sklearn.metrics import classification_report
2. Importer le dataset « car.data » qui comprend 1728 enregistrements. Le paramètre
« header=None »
3. Visualiser les 5 premières et 5 dernières lignes du dataset.
4. Afficher la forme du dataset avec la variable shape.
5. Créer une variable colonnes qui comprend les noms des colonnes suivantes : 'buying',
'maint', 'doors', 'persons', 'lug_boot', 'safety', 'class'. Ajouter la au dataset.
6. Visualiser les 5 premières lignes du dataset. Vérifier si les noms des colonnes sont ajoutés.

3
F DUT : Intelligence Artificielle et Technologies Émergentes
Module : Introduction aux sciences des données

7. Calculer le nombre d’occurrence de chaque valeur dans chacune des colonnes du dataset.
Utiliser la fonction value_counts().
Exemple : la première colonne 'buying' contient les valeurs suivantes :
vhigh 432
high 432
med 432
low 432
8. Vérifier s’il y’a des valeurs manquantes dans le dataset. Calculer leurs sommes par
colonne. Utiliser la fonction isnull().
9. Préciser la sortie y du modèle de la forêt aléatoire correspondant à la colonne ‘class’ et les
entrées X, correspondant à toutes les colonnes du dataset sauf la colonne ‘class’.
10. Diviser le dataset en 2 parties : apprentissage et test (33%). Utiliser la fonction
train_test_split.
11. Afficher les longueurs des données de la base d’apprentissage et celles de test.
12. Créer un encodeur des variables catégoriques du dataset ['buying', 'maint', 'doors', 'persons',
'lug_boot', 'safety']. Utiliser la fonction OrdinalEncoder() de la bibliothèque ce. Utiliser
les fonctions fit_transform() et transform() pour appliquer l’encodage sur les données
d’entrée d’apprentissage et de test respectivement.
13. Visualiser les 5 premières lignes du dataset d’entrée d’apprentissage et de test.
14. Définir le modèle de forêt aléatoire. Utiliser la fonction ‘RandomForestClassifier()’.
15. Faire l’apprentissage de la forêt sur les données de la base d’apprentissage en utilisant la
fonction ‘fit()’.
16. Calculer les prédictions sur les données d’entrées de la base de test en utilisant la fonction
‘predict()’.
17. Faire l’évaluation du modèle avec la précision (accuracy). Afficher sa valeur.
18. Créer cette fois ci une autre forêt aléatoire avec 100 arbres. Refaire les tâches 14, 15, 16 et
17 sur la nouvelle forêt.
19. Qu’est ce que vous remarquez.
20. Nous allons maintenant rechercher l’importance des descripteurs. Utiliser la fonction
Series() de pandas avec les paramètres feature_importances_ du classifieur et index.

4
F DUT : Intelligence Artificielle et Technologies Émergentes
Module : Introduction aux sciences des données

21. Trier les descipteurs et leurs importances par ordre décroissant de l’importance.
22. Créer un histogramme avec Seaborn pour visualiser les descripteurs et leurs importances.
Utiliser la fonction barplot(). Ajouter des légendes horizontale et verticale et un titre.
23. Nous allons maintenant créer une forêt aléatoire avec les 5 descripteurs les plus importants,
càd : 'buying', 'maint', 'persons', 'lug_boot', et 'safety'.
24. Préciser la sortie y du modèle de la forêt aléatoire correspondant à la colonne ‘class’ et les
entrées X, correspondant à toutes les colonnes du dataset sauf les colonnes ‘class’ et
‘doors’.
25. Diviser le dataset en 2 parties : apprentissage et test (33%). Utiliser la fonction
train_test_split.
26. Créer un encodeur des variables catégoriques du dataset ['buying', 'maint', 'persons',
'lug_boot', 'safety']. Utiliser la fonction OrdinalEncoder() de la bibliothèque ce. Utiliser
les fonctions fit_transform() et transform() pour appliquer l’encodage sur les données
d’entrée d’apprentissage et de test respectivement.
27. Visualiser les 5 premières lignes du dataset d’entrée d’apprentissage et de test.
28. Définir le modèle de forêt aléatoire. Utiliser la fonction ‘RandomForestClassifier()’.
29. Faire l’apprentissage de la forêt sur les données de la base d’apprentissage en utilisant la
fonction ‘fit()’.
30. Calculer les prédictions sur les données d’entrées de la base de test en utilisant la fonction
‘predict()’.
31. Faire l’évaluation du modèle avec la précision (accuracy). Afficher sa valeur.
32. Faire l’évaluation du modèle avec la matrice de confusion. Afficher la.
33. Afficher le rapport de classification.

Exercice 3 :
On souhaite créer une forêt aléatoire pour prédire les salaires des employés en fonction de leurs
niveaux.
1. Importer les bibliothèques nécessaires : pandas, numpy, matplotlib, et sklearn.
- from sklearn.ensemble import RandomForestRegressor

5
F DUT : Intelligence Artificielle et Technologies Émergentes
Module : Introduction aux sciences des données

2. Importer le dataset « Position_Salaries.csv » qui comprend 10 enregistrements.


3. Visualiser les enregistrements du dataset.
4. Préciser la sortie y du modèle de la forêt aléatoire correspondant à la colonne ‘Salary et
les entrées X, correspondant à la colonne ‘Level.
5. Définir le modèle de forêt aléatoire avec 300 arbres. Utiliser la fonction
‘RandomForestRegressor()’.
6. Faire l’apprentissage de la forêt sur les données du dataset en utilisant la fonction ‘fit()’.
7. Calculer les prédictions des salaires des employés qui ont les niveaux suivants : 6.5, 4.6 et
8.2. Utiliser la fonction ‘predict()’. Afficher les salaires prédits correspondants.

Vous aimerez peut-être aussi