Self-assessment quiz
Présentation & objectifs
Les quiz suivants sont là pour vous aider à vérifier que vous avez bien compris les articles que vous deviez étudier.
À la fin d’un quiz, des explications vous seront données sur vos réponses.
Si certaines sont fausses, vous aurez la possibilité de cliquer sur la question que vous avez ratée pour réessayer.
Ces quiz sont fournis pour l’auto-évaluation et ne seront ni notés ni stockés.
N’hésitez pas à poser vos questions sur le serveur Discord pour toute précision ou explication !
Quiz
POO et ML avec sklearn
# Que fait la méthode `.fit()` dans scikit-learn ?
- [x] Entraîne le modèle sur les données d’entrée
> ✅ La méthode `.fit()` entraîne le modèle en apprenant les motifs à partir des données fournies.
- [ ] Prédit les étiquettes pour les données d’entrée
> ❌ La prédiction est gérée par la méthode `.predict()`, pas par `.fit()`.
- [ ] Assigne des clusters aux points de données
> ❌ Bien que les modèles de clustering utilisent `.fit()`, l’assignation des clusters fait partie de `.predict()` ou `.transform()`.
- [x] Initialise les paramètres du modèle
> ✅ La méthode `.fit()` ajuste les paramètres du modèle en fonction des données d’entraînement.
- [ ] Visualise les points de données en 2D
> ❌ La visualisation n’est pas une fonction de la méthode `.fit()`.
# Qu’est-ce qui distingue une classe prédictrice d’une classe transformeur dans scikit-learn ?
- [x] Les classes prédictrices sont utilisées pour l’apprentissage supervisé, tandis que les classes transformeurs sont utilisées pour l’apprentissage non supervisé
> ✅ Les classes prédictrices gèrent des tâches supervisées, tandis que les transformeurs gèrent des tâches comme le clustering et la réduction de dimension.
- [ ] Les classes prédictrices nécessitent des données étiquetées pour l’entraînement, tandis que les transformeurs n’en ont pas besoin
> ✅ Les classes prédictrices s’appuient sur des données étiquetées (`X, y`), tandis que les transformeurs utilisent uniquement les données d’entrée (`X`).
- [ ] Les classes transformeurs ne peuvent pas effectuer de prédictions
> ❌ Les classes transformeurs peuvent effectuer des prédictions, comme l’assignation d’étiquettes de clusters, dans certains cas.
- [x] Les classes prédictrices implémentent `.predict()`, tandis que les transformeurs implémentent `.transform()`
> ✅ Les classes prédictrices génèrent des prédictions, et les transformeurs transforment les données dans un nouvel espace.
- [ ] Les classes transformeurs sont uniquement utilisées pour la visualisation
> ❌ Les classes transformeurs sont utilisées pour une gamme de tâches, pas seulement la visualisation.
# Pourquoi la programmation orientée objet (POO) est-elle bénéfique dans scikit-learn ?
- [x] Elle permet des composants modulaires et réutilisables
> ✅ La POO permet d’encapsuler les modèles sous forme de classes, les rendant modulaires et réutilisables dans différents contextes.
- [ ] Elle élimine le besoin de données d’entraînement
> ❌ Les données d’entraînement sont toujours nécessaires pour entraîner un modèle, indépendamment de la POO.
- [x] Elle standardise les interfaces des modèles
> ✅ Grâce à la POO, scikit-learn garantit que tous les modèles partagent des méthodes communes comme `.fit()`, `.predict()`, et `.transform()`.
- [ ] Elle simplifie le prétraitement des données
> ❌ Bien que la POO organise les fonctionnalités, le prétraitement est géré par des classes spécifiques comme `StandardScaler`.
- [ ] Elle nécessite moins de mémoire pendant l’entraînement
> ❌ L’utilisation mémoire dépend du modèle et des données, pas de la POO elle-même.
Assemblage de modèles
# Quel est le principal avantage de l’assemblage de modèles ?
- [x] Améliore la précision prédictive
> ✅ L’assemblage combine les prédictions de plusieurs modèles pour améliorer la précision globale.
- [ ] Réduit la complexité computationnelle
> ❌ L’assemblage augmente souvent les besoins computationnels car il implique plusieurs modèles.
- [x] Améliore la généralisation aux données non vues
> ✅ En agrégeant les prédictions, les ensembles généralisent mieux aux données non vues comparé aux modèles individuels.
- [ ] Garantit toujours une meilleure performance sur les données d’entraînement
> ❌ Les améliorations de performance sont plus évidentes sur les données de test que sur les données d’entraînement.
- [x] Réduit l’impact du surapprentissage pour les modèles à haute variance
> ✅ Des techniques comme le bagging aident à réduire le surapprentissage en moyennant les prédictions de modèles divers.
# Quelle est l’idée principale derrière le bagging ?
- [x] Entraîner plusieurs modèles sur différents sous-ensembles des données
> ✅ Le bagging utilise le bootstrap pour créer des sous-ensembles d’entraînement variés, réduisant la variance.
- [ ] Corriger les erreurs faites par les modèles précédents
> ❌ Cela décrit le boosting, pas le bagging.
- [x] Agréger les prédictions pour réduire la variance
> ✅ Le bagging réduit la variance en moyennant ou votant les prédictions des modèles individuels.
- [ ] Utiliser un méta-modèle pour combiner les modèles de base
> ❌ Les méta-modèles sont utilisés dans le stacking, pas dans le bagging.
- [ ] Assigner des poids aux modèles individuels selon leur précision
> ❌ La pondération des modèles est caractéristique de l’assemblage pondéré, pas du bagging.
# Qu’est-ce qui distingue le boosting du bagging ?
- [x] Le boosting se concentre sur la réduction du biais en entraînant les modèles séquentiellement
> ✅ Le boosting réduit le biais en entraînant les modèles de manière itérative, chaque modèle corrigeant les erreurs du précédent.
- [ ] Le boosting entraîne les modèles sur les mêmes sous-ensembles de données
> ❌ Le boosting attribue plus de poids aux instances difficiles plutôt que d’utiliser des sous-ensembles identiques.
- [x] Le boosting donne plus de poids aux points de données mal classés
> ✅ Le boosting met l’accent sur les instances plus difficiles à prédire pendant l’entraînement.
- [ ] Le bagging utilise des moyennes pondérées pour les prédictions
> ❌ Le bagging utilise généralement une moyenne simple ou un vote, pas des combinaisons pondérées.
- [x] Le boosting nécessite un entraînement séquentiel, tandis que le bagging entraîne les modèles indépendamment
> ✅ Le boosting entraîne les modèles de façon itérative, tandis que le bagging les entraîne en parallèle.
# Comment fonctionne le vote dans l’assemblage de modèles ?
- [x] Combine les prédictions de plusieurs modèles pour prendre une décision
> ✅ Le vote agrège les prédictions de tous les modèles de base pour arriver à une décision finale.
- [ ] Utilise un méta-modèle pour intégrer les prédictions
> ❌ L’intégration par méta-modèle est une caractéristique du stacking, pas du vote.
- [x] Peut utiliser le vote dur ou le vote doux selon la tâche
> ✅ Le vote dur sélectionne la classe majoritaire, tandis que le vote doux moyenne les probabilités.
- [ ] Nécessite de réentraîner les modèles après l’agrégation
> ❌ Le vote ne nécessite pas de réentraînement ; il combine simplement les prédictions des modèles pré-entraînés.
- [ ] Assigne des poids aux modèles selon leur performance
> ❌ La pondération est un aspect de l’assemblage pondéré, pas du vote simple.
# Pourquoi la diversité entre les modèles est-elle importante dans l’assemblage ?
- [x] Les modèles divers sont moins susceptibles de faire les mêmes erreurs
> ✅ La diversité garantit que les erreurs des différents modèles s’annulent, améliorant la performance globale.
- [ ] Les modèles divers nécessitent toujours des combinaisons pondérées
> ❌ Bien que la diversité soit bénéfique, elle ne nécessite pas forcément des combinaisons pondérées.
- [x] Combiner des modèles divers améliore la généralisation
> ✅ Les modèles divers capturent différents motifs dans les données, améliorant la généralisation aux entrées non vues.
- [ ] La diversité garantit une meilleure performance à l’entraînement
> ❌ La diversité améliore la généralisation mais ne garantit pas toujours une meilleure performance à l’entraînement.
- [ ] Nécessite des hyperparamètres identiques pour tous les modèles
> ❌ Les modèles divers ont souvent des architectures, hyperparamètres ou sous-ensembles de données différents.
Optimisation des hyperparamètres
# Que sont les hyperparamètres en apprentissage automatique ?
- [x] Paramètres fixés avant l’entraînement et contrôlant le comportement du modèle
> ✅ Les hyperparamètres sont des valeurs prédéfinies, comme le taux d’apprentissage ou la profondeur d’un arbre, qui gouvernent le processus d’entraînement et la structure du modèle.
- [ ] Paramètres appris durant le processus d’entraînement
> ❌ Les paramètres appris pendant l’entraînement sont appelés paramètres du modèle, pas hyperparamètres.
- [x] Exemples incluent le taux d’apprentissage, le nombre de couches et la force de régularisation
> ✅ Ce sont des exemples courants d’hyperparamètres à optimiser pour la performance du modèle.
- [ ] Valeurs qui changent automatiquement pendant l’entraînement
> ❌ Les hyperparamètres restent fixes pendant l’entraînement sauf ajustement manuel lors d’expériences itératives.
- [ ] Métriques utilisées pour évaluer la performance d’un modèle
> ❌ Les métriques évaluent les modèles, tandis que les hyperparamètres contrôlent le processus d’entraînement.
# Pourquoi l’optimisation des hyperparamètres est-elle importante ?
- [x] Pour améliorer la capacité du modèle à généraliser aux données non vues
> ✅ Un bon réglage des hyperparamètres améliore la performance du modèle sur les données de test, évitant surapprentissage ou sous-apprentissage.
- [ ] Pour rendre l’entraînement du modèle plus rapide
> ❌ Bien que le réglage puisse influencer l’efficacité de l’entraînement, son but principal est d’optimiser la performance du modèle.
- [x] Pour minimiser la métrique d’erreur sur le jeu de validation
> ✅ Le processus d’optimisation vise à trouver les hyperparamètres qui atteignent la plus faible erreur de validation.
- [ ] Pour garantir que le modèle atteigne toujours 100 % de précision
> ❌ Atteindre une précision parfaite est irréaliste et indique souvent un surapprentissage.
- [ ] Pour réduire le nombre de caractéristiques dans le jeu de données
> ❌ La réduction de caractéristiques est une tâche de prétraitement, non liée à l’optimisation des hyperparamètres.
# Qu’est-ce que la recherche en grille (grid search) ?
- [x] Une méthode systématique qui évalue toutes les combinaisons possibles d’hyperparamètres
> ✅ La recherche en grille explore exhaustivement l’espace de recherche prédéfini des hyperparamètres.
- [ ] Une méthode qui sélectionne des combinaisons aléatoires d’hyperparamètres
> ❌ Cela décrit la recherche aléatoire, pas la recherche en grille.
- [ ] Une approche probabiliste pour trouver les hyperparamètres optimaux
> ❌ La recherche en grille est déterministe, pas probabiliste.
- [x] Adaptée aux espaces d’hyperparamètres petits et bien définis
> ✅ La recherche en grille fonctionne mieux lorsque le nombre de combinaisons est gérable.
- [ ] Garantie de trouver l’optimum global pour n’importe quel jeu de données
> ❌ La recherche en grille ne trouve que les meilleurs paramètres dans l’espace spécifié, qui peut ne pas inclure l’optimum global.
# En quoi la recherche aléatoire diffère-t-elle de la recherche en grille ?
- [x] La recherche aléatoire échantillonne les valeurs d’hyperparamètres à partir de distributions
> ✅ La recherche aléatoire explore l’espace des hyperparamètres en échantillonnant des valeurs aléatoires, ce qui peut être plus efficace pour les grands espaces.
- [ ] La recherche aléatoire évalue toutes les combinaisons systématiquement
> ❌ C’est une caractéristique de la recherche en grille, pas de la recherche aléatoire.
- [x] Elle peut couvrir une plus large gamme de valeurs avec moins d’évaluations
> ✅ La recherche aléatoire identifie souvent plus rapidement de bonnes configurations en explorant un ensemble diversifié de valeurs.
- [ ] La recherche aléatoire garantit de trouver la meilleure configuration
> ❌ La recherche aléatoire ne garantit pas de trouver la meilleure combinaison mais est efficace en termes de calcul.
- [x] Elle est bien adaptée aux espaces d’hyperparamètres de haute dimension
> ✅ La recherche aléatoire s’adapte mieux aux espaces de haute dimension que la recherche en grille.
# Quel est un conseil pratique pour l’optimisation des hyperparamètres ?
- [x] Commencer avec les valeurs d’hyperparamètres par défaut
> ✅ Les valeurs par défaut sont bien testées pour de nombreux algorithmes et constituent un bon point de départ pour le réglage.
- [ ] Toujours utiliser la recherche en grille pour les grands espaces d’hyperparamètres
> ❌ La recherche en grille devient coûteuse pour les grands espaces ; la recherche aléatoire ou l’optimisation bayésienne peuvent être préférables.
- [x] Utiliser la validation croisée pour éviter le surapprentissage
> ✅ La validation croisée garantit que les hyperparamètres réglés généralisent bien aux données non vues.
- [ ] Se concentrer également sur tous les hyperparamètres pendant le réglage
> ❌ Il est plus efficace de prioriser les hyperparamètres influents.
- [x] Paralléliser les évaluations des hyperparamètres lorsque c’est possible
> ✅ Le traitement parallèle accélère la recherche des configurations optimales d’hyperparamètres.