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

TD Math

Ce document présente les réponses à un atelier sur les fondamentaux de l'intelligence artificielle, en se concentrant sur l'apprentissage automatique et l'application du dataset Iris. Il aborde des concepts clés tels que le rôle de scikit-learn, l'utilisation du RandomForestClassifier, l'analyse des performances et la comparaison avec d'autres algorithmes comme AdaBoost et SVM. L'atelier conclut sur la diversité des approches en machine learning et leurs avantages respectifs.

Transféré par

siiafpk
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)
26 vues5 pages

TD Math

Ce document présente les réponses à un atelier sur les fondamentaux de l'intelligence artificielle, en se concentrant sur l'apprentissage automatique et l'application du dataset Iris. Il aborde des concepts clés tels que le rôle de scikit-learn, l'utilisation du RandomForestClassifier, l'analyse des performances et la comparaison avec d'autres algorithmes comme AdaBoost et SVM. L'atelier conclut sur la diversité des approches en machine learning et leurs avantages respectifs.

Transféré par

siiafpk
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

Atelier - 1

Intelligence Artificielle
Réalisé par Yahya Bouchak
1er avril 2025

1. Introduction
Ce document présente les réponses détaillées à l’atelier 1 sur les fondamentaux de
l’intelligence artificielle, couvrant les concepts d’apprentissage automatique et leur appli-
cation pratique avec le dataset Iris.

2. Réponses aux questions


2.1. Rôle de la bibliothèque scikit-learn
Scikit-learn est une bibliothèque Python open-source dédiée au machine learning. Dans
cet exercice, elle joue plusieurs rôles clés :
— Fournir le dataset Iris via load_iris()
— Offrir des fonctions pour diviser les données (train_test_split)
— Proposer des algorithmes de classification (RandomForestClassifier)
— Fournir des métriques d’évaluation (accuracy_score, classification_report)
— Permettre des visualisations basiques en combinaison avec matplotlib

2.2. Fonction du RandomForestClassifier


Le RandomForestClassifier est un algorithme d’apprentissage ensembliste qui :
— Crée de multiples arbres de décision (d’où le terme "forêt")
— Chaque arbre est entraîné sur un sous-ensemble aléatoire des données
— Pour chaque split dans les arbres, seul un sous-ensemble aléatoire des caractéris-
tiques est considéré
Avantages pour la classification :
— Réduit le sur-apprentissage par rapport à un seul arbre de décision
— Gère bien les données non linéaires
— Peut traiter des caractéristiques catégorielles et numériques sans normalisation préa-
lable

1
2.3. Analyse des performances du modèle
La précision (accuracy) mesure le pourcentage de prédictions correctes. Le rapport de
classification montre pour chaque classe :
— Precision : proportion de vrais positifs parmi les prédictions positives
— Recall : proportion de vrais positifs parmi les cas réels positifs
— F1-score : moyenne harmonique de precision et recall

2.4. Taille des ensembles après division


Le dataset Iris contient 150 échantillons :
— Ensemble d’entraînement : 80% de 150 = 120 échantillons
— Ensemble de test : 20% de 150 = 30 échantillons

2.5. Signification des couleurs dans le scatter plot


Dans le graphique plt.scatter(X[:, 0], X[:, 1], c=y, cmap=’viridis’) :
— X[:, 0] et X[:, 1] représentent respectivement la longueur et largeur des sépales
— c=y colore chaque point selon sa classe réelle (0, 1 ou 2)
— La palette ’viridis’ assigne différentes couleurs aux différentes classes

2.6. Importance de la division train/test


La séparation est cruciale pour :
— Évaluer la capacité de généralisation du modèle
— Détecter le surapprentissage
— Fournir une estimation non biaisée des performances

2.7. Hyperparamètres principaux du RandomForestClassifier


Les principaux hyperparamètres :
— n_estimators : nombre d’arbres (100 ici)
— max_depth : profondeur maximale des arbres
— min_samples_split : échantillons minimum pour diviser un nœud
— min_samples_leaf : échantillons minimum dans une feuille

2.8. Avantages de la forêt aléatoire vs régression logistique


La forêt aléatoire est préférée car :
— Peut modéliser des relations non linéaires
— Gère automatiquement les interactions entre caractéristiques
— Plus robuste aux caractéristiques redondantes

2
2.9. Signification de la précision (accuracy)
Dans ce contexte multiclasse :
— Accuracy = (prédictions correctes) / (total prédictions)
— Métrique globale mais pas toujours suffisante
— Doit être complétée par d’autres métriques

2.10. Termes du rapport de classification


Pour chaque classe :
— Precision : TP / (TP + FP)
— Recall : TP / (TP + FN)
— F1-score : 2*(precision*recall)/(precision+recall)

2.11. Moyens d’améliorer la précision


Approches possibles :
— Ingénierie des caractéristiques
— Réglage des hyperparamètres
— Essayer d’autres algorithmes
— Approfondir l’analyse des erreurs

2.12. Surapprentissage (overfitting)


Faible précision sur test vs haute précision sur train suggère :
— Le modèle a mémorisé les particularités du jeu d’entraînement
— Manque de capacité à généraliser
Solutions possibles :
— Réduire la complexité du modèle
— Augmenter les données d’entraînement
— Appliquer des techniques de régularisation

2.13. Passage à un modèle d’apprentissage profond


Pour utiliser un réseau neuronal :
— Normaliser les données
— Définir l’architecture du modèle
— Choisir la fonction de perte et l’optimiseur
— Monitorer la loss sur train/validation

3
2.14. Application avec AdaBoost, XGBoost et SVM
Implémentation comparative

1 from sklearn . ensemble import Ad aB oos tC la ssi fi er


2 from xgboost import XGBClassifier
3 from sklearn . svm import SVC
4
5 # AdaBoost
6 ada = A daB oo st Cla ss if ie r ( n_estimators =100 , random_state =42)
7 ada . fit ( X_train , y_train )
8 y_pred_ada = ada . predict ( X_test )
9 print ( " AdaBoost Accuracy : " , accuracy_score ( y_test , y_pred_ada ) )
10
11 # XGBoost
12 xgb = XGBClassifier ( n_estimators =100 , random_state =42)
13 xgb . fit ( X_train , y_train )
14 y_pred_xgb = xgb . predict ( X_test )
15 print ( " XGBoost Accuracy : " , accuracy_score ( y_test , y_pred_xgb ) )
16
17 # SVM
18 svm = SVC ( kernel = ’ rbf ’ , C =1.0 , gamma = ’ scale ’ , random_state =42)
19 svm . fit ( X_train , y_train )
20 y_pred_svm = svm . predict ( X_test )
21 print ( " SVM Accuracy : " , accuracy_score ( y_test , y_pred_svm ) )

Figure 1 – Résultats d’exécution du code comparatif

Analyse comparative
— AdaBoost : Algorithme boosting séquentiel, sensible au bruit
— XGBoost : Implémentation optimisée du gradient boosting, souvent plus précise

4
— SVM : Trouve l’hyperplan optimal, performance dépend du noyau

Conclusion
Cet atelier a permis d’explorer les bases du machine learning appliqué à la classification
avec le dataset Iris. Les différentes méthodes comparées montrent qu’il existe plusieurs
approches pour résoudre un même problème, chacune avec ses avantages spécifiques.

Vous aimerez peut-être aussi