Apprentissage Automatique et Réseaux Neuronaux - page 72

 

9.5 Rééchantillonnage et retenue répétée (L09 Model Eval 2 : Intervalles de confiance)



9.5 Rééchantillonnage et retenue répétée (L09 Model Eval 2 : Intervalles de confiance)

Dans cette vidéo, nous allons approfondir le sujet du rééchantillonnage et discuter spécifiquement de la méthode d'exclusion répétée. Auparavant, nous avons exploré la méthode d'exclusion régulière, où l'ensemble de données est divisé en ensembles d'apprentissage et de test. Nous avons également exploré comment la méthode d'approximation normale peut être utilisée pour construire des intervalles de confiance basés sur la performance estimée sur l'ensemble de test. Maintenant, nous allons nous concentrer sur les méthodes de rééchantillonnage, en commençant par la méthode d'exclusion répétée.

Pour fournir une illustration visuelle, considérons les courbes d'apprentissage. Les courbes d'apprentissage servent d'indicateurs pour savoir si notre modèle bénéficierait de données de formation supplémentaires. Dans le graphique, l'axe des x représente la taille de l'ensemble d'apprentissage, tandis que l'axe des y représente les performances, mesurées en termes de précision. Cependant, le même graphique pourrait être utilisé pour mesurer l'erreur en l'inversant. Les performances présentées ici sont basées sur l'ensemble de données de chiffres manuscrits d'Amnesty, mais seul un sous-ensemble de 5 000 images a été utilisé pour accélérer le calcul. Sur ces 5000 images, 3000 ont été affectées à la formation et 1500 ont été mises de côté comme ensemble de test. Un autre ensemble de données composé de 3500 images a également été créé, et des ensembles d'apprentissage de différentes tailles ont été construits à partir de celui-ci.

Chaque point de données sur le graphique correspond à une taille d'ensemble d'apprentissage spécifique, tandis que la taille de l'ensemble de test reste constante à 1500. La tendance observée est qu'à mesure que la taille de l'ensemble d'apprentissage diminue, la précision de l'apprentissage augmente. Cependant, à mesure que la taille de l'ensemble d'apprentissage augmente, la précision de l'apprentissage diminue. Une explication possible de cette tendance est qu'avec un ensemble d'apprentissage plus petit, il est plus facile pour le modèle de mémoriser les données, y compris les valeurs aberrantes ou le bruit. À mesure que la taille de l'ensemble d'apprentissage augmente, il devient plus difficile de mémoriser les données en raison de la présence de valeurs aberrantes plus diverses. Cependant, un ensemble d'apprentissage plus grand facilite une meilleure généralisation, ce qui améliore les performances sur l'ensemble de test.

Il convient de noter que le graphique s'arrête à une taille d'ensemble d'apprentissage de 3500, car il n'y avait pas d'ensemble de données plus grand disponible. L'ensemble de test, représenté en rouge, est resté fixé à 1500 échantillons. En réservant ces échantillons pour les tests, un biais pessimiste a été introduit car le modèle n'a peut-être pas atteint sa pleine capacité. La capacité fait référence au potentiel d'amélioration du modèle avec plus de données. Dans ce cas, un classificateur softmax simple, qui est une régression logistique multinomiale, a été utilisé à des fins d'efficacité. Cependant, d'autres classificateurs pourraient être utilisés pour des expériences similaires.

En ce qui concerne les courbes d'apprentissage, il est important de considérer la taille de l'ensemble de données et son impact sur les performances du classifieur. L'augmentation de la taille de l'ensemble de données peut améliorer les performances du classificateur, en particulier lorsque les courbes d'apprentissage indiquent une diminution de l'erreur de test à mesure que la taille de l'ensemble d'apprentissage augmente. Par exemple, lorsque vous travaillez sur un projet impliquant la prédiction de la classification des films, la collecte de plus de critiques de films à partir de sources comme IMDb peut améliorer les performances du classificateur.

Pendant les heures de bureau, les étudiants se renseignent souvent sur l'amélioration des performances du classificateur pour leurs projets. L'amélioration d'un classificateur peut impliquer diverses stratégies, telles que des modifications de paramètres, la sélection de caractéristiques ou l'extraction de caractéristiques. Cependant, l'augmentation de la taille de l'ensemble de données est une méthode simple mais efficace qui peut donner des résultats positifs. L'examen des courbes d'apprentissage permet de déterminer si davantage de données peuvent bénéficier au modèle, au lieu de se concentrer uniquement sur le réglage des hyperparamètres.

Il est important de reconnaître le biais pessimiste résultant de la division de l'ensemble de données en ensembles d'apprentissage et de test. En retenant une partie substantielle des données pour les tests, le modèle peut ne pas avoir atteint son plein potentiel en raison de données de formation limitées. Une solution consiste à réduire la taille de l'ensemble de test pour remédier à ce biais. Cependant, la réduction de la taille de l'ensemble de test introduit un autre défi : une augmentation de la variance. La variance de l'estimation des performances du modèle augmente avec des ensembles de tests plus petits, ce qui peut conduire à des estimations moins fiables.

Pour atténuer ces défis, nous pouvons utiliser une technique appelée validation croisée de Monte Carlo, qui consiste à répéter la méthode d'exclusion plusieurs fois et à faire la moyenne des résultats. Cette technique est connue sous le nom de méthode d'exclusion répétée.

Dans la méthode d'exclusion répétée, nous effectuons plusieurs itérations du processus d'exclusion, où nous divisons au hasard l'ensemble de données en ensembles d'apprentissage et de test. Chaque itération utilise une répartition aléatoire différente, garantissant que différents sous-ensembles de données sont utilisés pour la formation et les tests à chaque itération. En répétant ce processus plusieurs fois, nous pouvons obtenir plusieurs estimations de performances pour notre modèle.

Le principal avantage de la méthode d'exclusion répétée est qu'elle fournit une estimation plus robuste et fiable des performances du modèle par rapport à une seule séparation d'exclusion. Étant donné que chaque itération utilise une répartition aléatoire différente, nous pouvons capturer la variabilité des performances due au caractère aléatoire des données. Cela nous aide à obtenir une estimation plus précise des performances réelles du modèle sur des données invisibles.

Une fois que nous avons les estimations de performances de chaque itération, nous pouvons calculer la performance moyenne et l'utiliser comme estimation finale. De plus, nous pouvons également calculer la variance ou l'écart type des estimations de performance pour avoir une idée de la variabilité des résultats.

Il est important de noter que dans la méthode d'exclusion répétée, les ensembles d'apprentissage et de test doivent être disjoints à chaque itération pour garantir que le modèle est évalué sur des données invisibles. En outre, la taille des ensembles d'apprentissage et de test doit être déterminée en fonction de la taille de l'ensemble de données disponible et du compromis souhaité entre les données d'apprentissage et d'évaluation.

La méthode d'exclusion répétée est particulièrement utile lorsque l'ensemble de données est suffisamment grand pour permettre plusieurs fractionnements aléatoires. Cela aide à fournir une évaluation plus robuste des performances du modèle et peut être particulièrement bénéfique lorsque vous travaillez avec des données limitées.

En résumé, la méthode d'exclusion répétée est une technique de rééchantillonnage qui consiste à répéter le processus d'exclusion plusieurs fois avec différentes divisions aléatoires de l'ensemble de données. Cela permet d'obtenir des estimations de performances plus fiables et de capturer la variabilité des performances du modèle. En faisant la moyenne des résultats des itérations répétées, nous pouvons obtenir une meilleure estimation de la performance réelle du modèle.

9.5 Resampling and Repeated Holdout (L09 Model Eval 2: Confidence Intervals)
9.5 Resampling and Repeated Holdout (L09 Model Eval 2: Confidence Intervals)
  • 2020.11.13
  • www.youtube.com
This video talks about learning curves and how to assess whether a model can benefit from more data. Then it covers the repeated holdout method.-------This v...
 

9.6 Intervalles de confiance bootstrap (L09 Model Eval 2 : Intervalles de confiance)



9.6 Intervalles de confiance bootstrap (L09 Model Eval 2 : Intervalles de confiance)

Content de te revoir! Nous avons maintenant atteint les parties les plus intéressantes de cette conférence. Dans cette vidéo, nous nous concentrerons sur les intervalles de confiance empiriques en utilisant la méthode bootstrap. Pour récapituler rapidement, nous avons déjà discuté de la méthode bootstrap lorsque nous avons parlé des méthodes de bagging. Dans l'ensachage, nous avons tiré des échantillons bootstrap de l'ensemble d'apprentissage. Mais vous êtes-vous déjà demandé pourquoi on l'appelle la méthode "bootstrap" ?

Eh bien, le terme "bootstrap" provient de l'expression "se tirer par ses bootstraps", qui était utilisée au sens figuré pour décrire une tâche impossible. La méthode du bootstrap est en effet une technique difficile car elle implique l'estimation de la distribution d'échantillonnage à partir d'un seul échantillon. Donc, d'une certaine manière, nous essayons métaphoriquement de nous relever par nos bottes en tentant cette tâche difficile.

Au fil du temps, le sens de «bootstrap» s'est élargi pour inclure le concept de s'améliorer grâce à un effort rigoureux et sans aide. Cependant, dans le contexte de la méthode bootstrap, nous nous concentrons uniquement sur la technique elle-même et non sur les connotations politiques associées au « se relever par ses bootstraps ».

Examinons maintenant la méthode bootstrap et comment elle nous permet d'estimer la distribution d'échantillonnage et l'incertitude de nos estimations de performances. La méthode bootstrap, introduite pour la première fois par Bradley Efron en 1979, est une technique de rééchantillonnage utilisée pour estimer une distribution d'échantillonnage lorsque nous n'avons accès qu'à un seul ensemble de données.

Pour comprendre le concept, imaginez que vous n'avez qu'un seul ensemble de données et que vous souhaitez l'utiliser pour estimer diverses statistiques d'échantillon. Ces statistiques peuvent être intéressantes, telles que la moyenne de l'échantillon, l'écart type, le R au carré ou les corrélations. La méthode bootstrap nous permet de générer de nouveaux ensembles de données en échantillonnant à plusieurs reprises à partir de l'ensemble de données d'origine, simulant le processus de prélèvement d'échantillons dans la population. Il est important de noter que l'échantillonnage se fait avec remise, contrairement à la méthode d'exclusion répétée, qui échantillonne sans remise.

En tirant ces échantillons bootstrap et en calculant la statistique d'échantillon souhaitée, telle que la moyenne de l'échantillon, nous pouvons observer que la distribution des moyennes de l'échantillon suit une distribution normale. L'écart type de cette distribution, appelé erreur type de la moyenne, peut être estimé à partir de l'écart type de l'échantillon divisé par la racine carrée de la taille de l'échantillon.

La méthode du bootstrap nous permet de construire des intervalles de confiance en estimant l'écart-type et en l'utilisant pour déterminer l'incertitude associée à nos estimations de performance. Les intervalles de confiance fournissent une gamme de valeurs plausibles pour le vrai paramètre de population. Dans le cas de la méthode bootstrap, nous calculons empiriquement l'écart type et l'utilisons pour calculer les intervalles de confiance.

Maintenant, comprenons les étapes impliquées dans la procédure d'amorçage. Tout d'abord, nous tirons un échantillon avec remise à partir de l'ensemble de données d'origine. Ensuite, nous calculons la statistique d'échantillon souhaitée à l'aide de cet échantillon bootstrap. Nous répétons ces deux étapes un grand nombre de fois, généralement recommandées autour de 200 ou plus, pour obtenir une distribution de statistiques d'échantillon. L'écart type de cette distribution sert d'estimation de l'erreur type de la statistique d'échantillon. Enfin, nous pouvons utiliser l'erreur standard pour calculer les intervalles de confiance, qui fournissent une mesure de l'incertitude autour de notre estimation de performance.

Lorsqu'il s'agit d'évaluer les performances d'un classificateur à l'aide de la méthode bootstrap, nous pouvons modifier légèrement l'approche. Considérons un jeu de données de taille n. Dans ce cas, nous effectuons p tours de bootstrap, où à chaque tour, nous tirons un échantillon de bootstrap à partir de l'ensemble de données d'origine. Nous ajustons ensuite un modèle à chacun de ces échantillons bootstrap et calculons la précision sur les échantillons hors sac, qui sont les échantillons non inclus dans l'échantillon bootstrap. En faisant la moyenne des précisions sur tous les tours de bootstrap, nous obtenons la précision du bootstrap. Cette approche résout le problème du surajustement en évaluant le modèle sur des données invisibles, plutôt que sur les échantillons utilisés pour la formation. De plus, la précision du bootstrap fournit une mesure de la variabilité des performances du modèle.

Pour résumer les étapes impliquées dans l'évaluation des performances d'un classificateur à l'aide de la méthode bootstrap :

  1. Sélectionnez au hasard un échantillon bootstrap de taille n (avec remise) à partir de l'ensemble de données d'origine.
  2. Entraînez un classifieur sur l'échantillon bootstrap.
  3. Évaluez le classificateur formé sur les échantillons hors sac (échantillons non inclus dans l'échantillon bootstrap) et calculez la précision.
  4. Répétez les étapes 1 à 3 pour un grand nombre de tours de bootstrap (p fois).
  5. Calculez la précision moyenne sur tous les tours de bootstrap pour obtenir la précision du bootstrap.

La précision du bootstrap peut servir d'estimation des performances du classificateur sur des données invisibles et fournit une mesure de l'incertitude associée à l'estimation des performances. De plus, cela peut aider à évaluer la stabilité et la robustesse du classifieur.

En utilisant la méthode bootstrap, nous pouvons obtenir des informations précieuses sur les performances de nos modèles et estimer l'incertitude associée à nos estimations de performances. Cette technique est particulièrement utile lorsque nous disposons de données limitées et que nous souhaitons tirer le meilleur parti de l'ensemble de données disponible. La méthode bootstrap nous permet d'approximer la distribution d'échantillonnage, de construire des intervalles de confiance et d'évaluer efficacement les performances des classificateurs.

En conclusion, la méthode bootstrap est une technique de rééchantillonnage puissante qui nous permet d'estimer la distribution d'échantillonnage et d'évaluer l'incertitude des estimations de performance à l'aide d'un seul ensemble de données. Il fournit une approche pratique pour relever divers défis statistiques et a trouvé des applications dans un large éventail de domaines, notamment l'apprentissage automatique, les statistiques et l'analyse de données. En comprenant et en mettant en œuvre la méthode bootstrap, nous pouvons améliorer notre capacité à prendre des décisions éclairées et à tirer des conclusions fiables à partir de données limitées.

9.6 Bootstrap Confidence Intervals (L09 Model Eval 2: Confidence Intervals)
9.6 Bootstrap Confidence Intervals (L09 Model Eval 2: Confidence Intervals)
  • 2020.11.13
  • www.youtube.com
This video talks about the Leave One Out Bootstrap (i.e., computing the model performances on out-of-bag samples) for constructing confidence intervals.-----...
 

9.7 Les méthodes Bootstrap .632 et .632+ (L09 Model Eval 2: Confidence Intervals)



9.7 Les méthodes Bootstrap .632 et .632+ (L09 Model Eval 2: Confidence Intervals)

Dans cette vidéo, nous approfondirons les sujets abordés dans la vidéo précédente. Dans la vidéo précédente, nous avons couvert la méthode du bootstrap, en particulier le bootstrap hors sac, qui est utilisé pour construire des intervalles de confiance empiriques. Dans cette vidéo, nous allons explorer deux techniques de bootstrap avancées : le bootstrap 0.632 et le bootstrap 0.632+. Ces techniques sont liées et leurs origines seront expliquées plus loin dans cette vidéo.

Pour récapituler brièvement la procédure bootstrap, nous commençons avec un ensemble de données et créons des échantillons bootstrap en échantillonnant avec remplacement. Pour chaque échantillon bootstrap, nous ajustons un modèle et évaluons ses performances sur les échantillons hors sac. Dans la vidéo précédente, nous avons également montré comment implémenter cette procédure en Python, en utilisant une approche orientée objet.

Dans la vidéo actuelle, le présentateur présente une implémentation de code qui simplifie le processus. Ils ont créé une classe appelée "BootstrapOutOfBag" qui prend le nombre de tours d'amorçage et une graine aléatoire en entrée. Cette classe fournit une méthode appelée "split" qui divise l'ensemble de données en sous-ensembles d'apprentissage et de test. Les sous-ensembles d'apprentissage correspondent aux échantillons bootstrap, tandis que les sous-ensembles de test représentent les échantillons hors sac. En itérant sur ces fractionnements, le présentateur montre comment effectuer la procédure d'amorçage et évaluer les performances du modèle.

Le présentateur présente ensuite une autre implémentation appelée "bootstrap_0.632_score". Cette implémentation permet aux utilisateurs de calculer facilement les scores out-of-bag ou bootstrap. En fournissant le classificateur, l'ensemble d'apprentissage, le nombre de fractionnements et la valeur de départ aléatoire, les utilisateurs peuvent calculer la précision moyenne et obtenir des intervalles de confiance à l'aide de la méthode du centile.

Ensuite, la vidéo aborde une lacune de la méthode d'amorçage hors sac, connue sous le nom de biais pessimiste. Bradley Efron a proposé l'estimation de 0,632 comme moyen de remédier à ce biais. Le biais pessimiste survient parce que les échantillons bootstrap contiennent moins de points de données uniques par rapport à l'ensemble de données d'origine. En fait, seuls 63,2 % des points de données dans les échantillons bootstrap sont uniques. Le présentateur explique les calculs de probabilité derrière ce chiffre et fournit une visualisation pour illustrer son comportement pour différentes tailles d'échantillon.

Pour surmonter le biais pessimiste, la vidéo présente la méthode bootstrap 0,632. Cette méthode combine la précision des échantillons hors sac et des échantillons bootstrap à chaque tour. La précision à chaque tour est calculée comme la somme de deux termes : la précision hors sac et la précision de resubstitution. La précision hors sac représente la performance sur les échantillons qui n'ont pas été inclus dans l'échantillon bootstrap, tandis que la précision de resubstitution mesure la performance sur les mêmes données utilisées pour ajuster le modèle.

En combinant ces deux termes, la méthode du bootstrap 0,632 vise à fournir une estimation moins biaisée des performances du modèle. Cette méthode résout la nature trop optimiste de la précision de la resubstitution en incorporant la précision hors sac.

En conclusion, cette vidéo s'appuie sur les concepts abordés dans la vidéo précédente en introduisant des techniques de bootstrap avancées : le bootstrap 0.632 et le bootstrap 0.632+. Ces méthodes visent à atténuer le biais pessimiste du bootstrap hors sac en tenant compte à la fois des précisions des échantillons hors sac et bootstrap. La vidéo fournit des implémentations de code et des explications pour faciliter la compréhension et l'application de ces techniques.

9.7 The .632 and .632+ Bootstrap methods (L09 Model Eval 2: Confidence Intervals)
9.7 The .632 and .632+ Bootstrap methods (L09 Model Eval 2: Confidence Intervals)
  • 2020.11.13
  • www.youtube.com
In this video, we discuss the .632 bootstrap, which addresses the pessimistic bias of the OOB bootstrap covered in the previous video. Then, we discuss the ....
 

10.1 Présentation de la conférence sur la validation croisée (L10 : évaluation du modèle 3)


10.1 Présentation de la conférence sur la validation croisée (L10 : évaluation du modèle 3)

Bonjour à tous! La semaine dernière, nous avons approfondi le sujet important de l'évaluation du modèle, où nous avons discuté de divers aspects tels que l'évaluation des performances du modèle et la construction d'intervalles de confiance. Cependant, notre exploration de l'évaluation des modèles n'est pas encore terminée, car il y a d'autres concepts essentiels que nous devons couvrir. En pratique, il ne s'agit pas seulement d'évaluer un modèle spécifique ; nous devons également trouver un bon modèle en premier lieu que nous pouvons évaluer.

Dans cette conférence, nous nous concentrerons sur les techniques de validation croisée, qui incluent des méthodes de réglage des hyperparamètres et de comparaison des modèles résultant de différents paramètres d'hyperparamètres. Ce processus est connu sous le nom de sélection de modèle. Aujourd'hui, nous mettrons l'accent sur la validation croisée.

Nous avons beaucoup de sujets à aborder cette semaine, mais ne vous inquiétez pas, chaque sujet est relativement court. Permettez-moi de donner un aperçu de ce dont nous allons discuter dans cette conférence et la suivante :

  1. Techniques de validation croisée pour l'évaluation du modèle : nous explorerons la validation croisée K-fold et d'autres techniques connexes pour évaluer les performances du modèle. Je vais démontrer des exemples de code en utilisant Python et scikit-learn.

  2. Validation croisée pour la sélection du modèle : nous verrons comment utiliser la validation croisée pour sélectionner le meilleur modèle, y compris le réglage des hyperparamètres. Je vais vous montrer comment effectuer la sélection de modèles à l'aide de la recherche par grille et de la recherche aléatoire dans scikit-learn.

  3. La loi de parcimonie : nous explorerons le concept de la méthode de l'erreur standard unique, qui combine l'idée de la validation croisée K-fold avec le principe de simplicité des modèles. Je fournirai également des exemples de code pour la méthode d'erreur standard unique et la validation croisée répétée K-fold, qui est similaire à la méthode d'exclusion répétée discutée dans les conférences précédentes.

Avant de nous plonger dans la validation croisée, réintroduisons rapidement les hyperparamètres et clarifions leur différence par rapport aux paramètres du modèle. Ensuite, nous discuterons de la validation croisée K-fold pour l'évaluation de modèles et d'autres techniques connexes. Nous examinerons la mise en œuvre pratique de ces techniques en utilisant Python et scikit-learn. Enfin, nous étendrons notre discussion à la validation croisée pour la sélection de modèles, en soulignant la distinction entre l'évaluation de modèles et la sélection de modèles.

J'ai également préparé un aperçu basé sur des recherches et des lectures approfondies, catégorisant différentes techniques en fonction de tâches et de problèmes spécifiques. Cette catégorisation nous aidera à naviguer dans les différentes techniques et à comprendre quand utiliser chacune d'entre elles. Il est important de noter que les recommandations fournies dans l'aperçu font l'objet d'une discussion plus approfondie, que nous aborderons lors des prochaines conférences.

Cela résume l'aperçu de la conférence. Passons maintenant à une réintroduction des hyperparamètres, suivie d'une exploration détaillée de la validation croisée.

10.1 Cross-validation Lecture Overview (L10: Model Evaluation 3)
10.1 Cross-validation Lecture Overview (L10: Model Evaluation 3)
  • 2020.11.18
  • www.youtube.com
This video goes over the topics we are going to cover in this lecture: cross-validation and model selection. Also, it gives a big-picture overview discussing...
 

10.2 Hyperparamètres (L10 : Modèle d'évaluation 3)



10.2 Hyperparamètres (L10 : Modèle d'évaluation 3)

Avant de plonger dans la validation croisée, prenons un moment pour discuter des hyperparamètres. Vous connaissez peut-être déjà le concept, mais si ce n'est pas le cas, cela servira de récapitulatif utile. Les hyperparamètres peuvent être considérés comme les paramètres de réglage ou les paramètres d'un modèle ou d'un algorithme. Ce sont les options que vous ajustez manuellement pour optimiser les performances de votre modèle. Pour illustrer cela, considérons le classificateur K-plus proche voisin, un modèle non paramétrique.

Les modèles non paramétriques, contrairement aux modèles paramétriques, n'ont pas de structure prédéfinie. Au lieu de cela, ils s'appuient sur l'ensemble d'apprentissage pour définir la structure du modèle. Par exemple, dans les K plus proches voisins, les paramètres du modèle sont essentiellement les exemples d'apprentissage eux-mêmes. Ainsi, la modification de l'ensemble d'apprentissage, par exemple en ajoutant ou en supprimant des exemples, peut avoir un impact significatif sur la structure du modèle. Un autre exemple de modèle non paramétrique est l'arbre de décision, où le nombre de divisions dans l'arbre dépend des exemples d'apprentissage, plutôt que d'une structure prédéfinie.

Maintenant, concentrons-nous spécifiquement sur les hyperparamètres de l'algorithme du K-plus proche voisin. Ces hyperparamètres incluent des options telles que le nombre de voisins (K) et la métrique de distance utilisée (par exemple, Manhattan ou distance euclidienne). Ces options doivent être définies avant d'exécuter le modèle et ne sont pas apprises à partir des données. Dans ce cours, nous explorerons des techniques telles que la recherche par grille ou la recherche aléatoire pour faciliter le réglage des hyperparamètres. Cependant, il est important de noter que l'essai de différentes valeurs pour les hyperparamètres n'est pas un processus d'adaptation aux données, mais plutôt une expérimentation itérative pour trouver les meilleurs paramètres.

Pour fournir plus d'exemples, référons-nous aux définitions des hyperparamètres dans scikit-learn. Lors de l'initialisation d'un classificateur d'arbre de décision, les hyperparamètres peuvent inclure la mesure d'impureté (par exemple, Gini ou entropie), la profondeur de l'arbre pour le pré-élagage et le nombre minimum d'échantillons par feuille, entre autres. Ceux-ci sont tous considérés comme des hyperparamètres.

Notamment, toutes les options ne sont pas des hyperparamètres, mais tous les hyperparamètres sont des options. Par exemple, l'état aléatoire ou la graine aléatoire, qui détermine le caractère aléatoire du modèle, n'est pas un hyperparamètre. C'est quelque chose qui ne devrait pas être manipulé pour améliorer le modèle car changer la graine aléatoire pour de meilleures performances serait considéré comme injuste.

Maintenant, comparons les hyperparamètres aux paramètres du modèle. Par exemple, examinons brièvement la régression logistique, qui peut être considérée comme un modèle linéaire et sert d'introduction à la fois à l'apprentissage automatique classique et à l'apprentissage en profondeur. Dans la régression logistique, les entrées sont des caractéristiques, y compris un terme d'interception pour tenir compte du biais. Les poids du modèle, qui sont déterminés en fonction du nombre d'entités, forment la structure du modèle. Initialement, ces pondérations peuvent être fixées à zéro ou à de petites valeurs aléatoires, puis elles sont mises à jour de manière itérative pour minimiser la fonction de perte (par exemple, l'erreur quadratique moyenne dans la régression linéaire).

Dans la régression logistique, une fonction non linéaire, généralement la fonction logistique ou la fonction sigmoïde, est appliquée à l'entrée nette (la somme pondérée des entrées) pour l'écraser dans une plage comprise entre zéro et un. Cette sortie peut être interprétée comme la probabilité d'appartenance à une classe dans la classification binaire. Les pondérations sont ajustées pour minimiser la perte, qui est calculée en comparant la probabilité d'appartenance à la classe prédite avec la véritable étiquette de classe (0 ou 1). La régression logistique utilise également des techniques de régularisation, telles que la régularisation L1 ou L2, qui ajoutent un terme de pénalité basé sur la taille des poids pour éviter le surajustement. La force de régularisation (lambda) est un hyperparamètre qui doit être défini par l'utilisateur.

Pour résumer, les paramètres du modèle tels que les poids (W) dans la régression logistique sont appris à partir des données d'apprentissage, tandis que les hyperparamètres tels que la force de régularisation (lambda) sont déterminés par l'utilisateur et ne sont pas appris à partir des données. Les paramètres de modèle sont les variables internes du modèle qui sont mises à jour pendant le processus de formation pour optimiser les performances, tandis que les hyperparamètres sont des paramètres externes qui contrôlent le comportement du modèle et doivent être définis avant la formation.

Le processus de recherche des valeurs optimales pour les hyperparamètres est connu sous le nom de réglage des hyperparamètres. Il s'agit d'une étape importante dans l'apprentissage automatique car elle peut avoir un impact considérable sur les performances d'un modèle. Cependant, trouver les meilleures valeurs d'hyperparamètres n'est pas une tâche simple et nécessite souvent l'expérimentation et l'évaluation de différentes combinaisons.

Une approche courante du réglage des hyperparamètres est la recherche de grille, où un ensemble prédéfini de valeurs est spécifié pour chaque hyperparamètre, et toutes les combinaisons possibles sont évaluées à l'aide de la validation croisée. La validation croisée est une technique utilisée pour évaluer les performances d'un modèle en divisant les données en plusieurs sous-ensembles (plis), en entraînant le modèle sur certains plis et en l'évaluant sur le pli restant. Cela aide à estimer les performances du modèle sur des données invisibles et réduit le risque de surajustement.

Une autre approche est la recherche aléatoire, où des combinaisons aléatoires de valeurs d'hyperparamètres sont échantillonnées à partir de distributions spécifiées. Cela peut être utile lorsque l'espace de recherche des hyperparamètres est grand, car cela permet d'explorer une plage de valeurs plus large sans évaluer de manière exhaustive toutes les combinaisons possibles.

En plus de la recherche par grille et de la recherche aléatoire, il existe des techniques plus avancées pour le réglage des hyperparamètres, telles que l'optimisation bayésienne, qui utilise des modèles probabilistes pour guider le processus de recherche, et des algorithmes génétiques, qui imitent le processus de sélection naturelle pour faire évoluer le meilleur ensemble de hyperparamètres.

Il convient de noter que le réglage des hyperparamètres peut être coûteux en termes de calcul, en particulier pour les modèles complexes ou les grands ensembles de données. Par conséquent, cela se fait souvent en conjonction avec des techniques telles que la validation croisée pour tirer le meilleur parti des données disponibles.

Les hyperparamètres sont les paramètres ou les options d'un modèle qui doivent être définis avant la formation, tandis que les paramètres du modèle sont les variables internes qui sont apprises à partir des données pendant la formation. Le réglage des hyperparamètres est le processus de recherche des meilleures valeurs pour ces paramètres, et il est crucial pour optimiser les performances du modèle. Des techniques telles que la recherche par grille, la recherche aléatoire, l'optimisation bayésienne et les algorithmes génétiques sont couramment utilisées pour le réglage des hyperparamètres.

10.2 Hyperparameters (L10: Model Evaluation 3)
10.2 Hyperparameters (L10: Model Evaluation 3)
  • 2020.11.18
  • www.youtube.com
This video recaps the concept of hyperparameters using k-nearest neighbors and logistic regression as examples.-------This video is part of my Introduction o...
 

10.3 CV en K pour l'évaluation du modèle (L10 : évaluation du modèle 3)



10.3 CV en K pour l'évaluation du modèle (L10 : évaluation du modèle 3)

Dans cette vidéo, nous approfondirons le sujet de la validation croisée pour l'évaluation de modèles. La validation croisée est couramment utilisée en conjonction avec le réglage des hyperparamètres et la sélection du modèle. Cependant, pour faciliter une meilleure compréhension, explorons d'abord le fonctionnement de la validation croisée k-fold dans le seul contexte de l'évaluation de modèles, avant de discuter de son application dans la sélection de modèles.

Pour commencer, la validation croisée k-fold pour l'évaluation du modèle implique de diviser un ensemble de données en un pli de validation et les segments de données restants pour la formation. Dans un exemple typique, considérons une validation croisée quintuple. L'ensemble de données est divisé en un pli de validation (affiché en bleu) et quatre plis d'apprentissage (affichés en différentes couleurs). Le modèle est entraîné sur les plis d'entraînement et évalué sur le pli de validation, ce qui donne une métrique de performance. Contrairement à la méthode d'exclusion où un seul ensemble de validation est utilisé, dans la validation croisée k-fold, le pli de validation est tourné à travers différents segments des données. Cela garantit que tous les points de données sont utilisés pour l'évaluation. Dans le cas d'une validation croisée quintuple, il y a cinq plis de validation distincts et cinq itérations sont effectuées. Chaque itération produit une mesure de performance. Lors de la création de rapports sur les performances globales, l'approche typique consiste à faire la moyenne des valeurs de performances sur toutes les itérations.

Il est important de noter que dans cette discussion, nous nous concentrons sur la validation croisée k-fold pour l'évaluation du modèle, sans tenir compte du réglage des hyperparamètres. Dans ce scénario, l'estimation des performances obtenue par validation croisée peut être considérée comme une estimation des performances de généralisation du modèle. En formant un nouveau modèle sur l'ensemble de données à l'aide d'hyperparamètres fixes, nous pouvons obtenir un modèle final pour une utilisation pratique. Bien qu'un ensemble de tests indépendant puisse être utilisé pour évaluer davantage les performances du modèle, il est souvent inutile lorsqu'aucun réglage d'hyperparamètre n'est impliqué, car les performances de validation croisée fournissent déjà une estimation fiable des performances de généralisation.

Explorons maintenant certaines propriétés clés de la validation croisée k-fold. Les plis de validation ne se chevauchent pas, ce qui signifie qu'il n'y a pas de chevauchement entre les points de données dans le pli de validation à travers différentes itérations. Tous les points de données sont utilisés pour les tests, garantissant une évaluation complète. Certains chercheurs peuvent qualifier les plis de validation de plis de test, car les termes peuvent être utilisés de manière interchangeable.

D'autre part, les plis d'entraînement se chevauchent, ce qui signifie qu'ils ne sont pas indépendants les uns des autres. Dans une itération donnée, les données d'apprentissage peuvent avoir des échantillons qui se chevauchent avec les données d'apprentissage d'autres itérations. Cette caractéristique rend difficile l'estimation de la variance en fonction de différents ensembles d'apprentissage, ce qui est important pour comprendre la variabilité des performances du modèle.

Un autre aspect remarquable est que la réduction de la valeur de k (le nombre de plis) rend l'estimation des performances plus pessimiste. En effet, avec moins de points de données disponibles pour la formation dans chaque pli, les capacités d'ajustement du modèle sont limitées. L'estimation des performances devient plus pessimiste en raison des données retenues, comme indiqué dans notre explication précédente sur le pessimisme des performances.

Explorons deux cas particuliers de validation croisée k-fold. Lorsque k est égal à 2, nous avons une double validation croisée, qui est distincte de la méthode d'exclusion. Dans la double validation croisée, l'ensemble de données est divisé exactement en deux, et chaque moitié est utilisée pour la formation dans différentes itérations. En revanche, la méthode holdout permet des proportions de fractionnement arbitraires et n'implique pas de rotation entre les itérations. Cependant, chaque cycle de validation croisée k-fold peut être considéré comme un cas particulier de la méthode d'exclusion, où l'ensemble de données est divisé exactement en deux moitiés.

Un autre cas particulier est lorsque k est égal à n, ce qui entraîne une validation croisée avec un seul oubli (LOOCV). Dans LOOCV, chaque itération implique de laisser de côté un point de données comme ensemble de validation, tandis que les n-1 points de données restants sont utilisés pour la formation. Cette approche est également connue sous le nom de LOOCV, où l'ensemble de validation se compose d'un seul point de données.

Une étude menée par Hawkins et al. (2003) ont examiné les performances de différentes méthodes d'évaluation de modèles, y compris la validation croisée sans omission (LOOCV), et ont constaté que la LOOCV a tendance à avoir une variance élevée par rapport aux autres méthodes de validation croisée. Cette variance élevée peut être attribuée au fait que chaque pli de validation dans LOOCV se compose d'un seul point de données, ce qui entraîne une taille d'échantillon limitée pour l'évaluation. Par conséquent, les estimations de performances obtenues à partir de LOOCV peuvent être très sensibles aux points de données spécifiques choisis pour la validation à chaque itération.

Malgré sa forte variance, LOOCV présente certains avantages. Étant donné que chaque itération implique une formation sur n-1 points de données, où n est le nombre total de points de données, LOOCV a tendance à fournir une estimation impartiale des performances du modèle. De plus, LOOCV utilise toutes les données disponibles pour la formation, ce qui peut être bénéfique lorsque l'ensemble de données est petit ou lorsqu'une estimation plus précise des performances est souhaitée.

Cependant, en raison de sa complexité de calcul, LOOCV peut ne pas être réalisable pour de grands ensembles de données. Le processus de formation doit être répété n fois, ce qui entraîne une charge de calcul importante. Dans de tels cas, la validation croisée k-fold avec une valeur modérée de k est souvent préférée.

Maintenant que nous avons exploré la validation croisée k-fold pour l'évaluation de modèles, discutons brièvement de son application dans la sélection de modèles. Dans le contexte de la sélection de modèles, l'objectif est d'identifier le meilleur modèle à partir d'un ensemble de modèles candidats, généralement avec différents paramètres d'hyperparamètres. La validation croisée peut être utilisée pour estimer les performances de chaque modèle et faciliter le processus de sélection.

L'approche typique consiste à effectuer une validation croisée k-fold pour chaque modèle, à calculer la performance moyenne sur toutes les itérations et à comparer les résultats. Le modèle avec les performances moyennes les plus élevées est considéré comme le meilleur choix. Cette approche permet d'atténuer l'impact de la variabilité des données et fournit une évaluation plus robuste des modèles.

Pour résumer, la validation croisée est une technique précieuse pour l'évaluation et la sélection des modèles. En faisant systématiquement tourner le pli de validation à travers différents segments de données, il permet une évaluation complète et fournit des estimations des performances du modèle. Qu'elle soit utilisée uniquement pour l'évaluation de modèles ou en combinaison avec la sélection de modèles, la validation croisée aide les chercheurs et les praticiens à prendre des décisions éclairées sur les capacités de généralisation de leurs modèles.

10.3 K-fold CV for Model Evaluation (L10: Model Evaluation 3)
10.3 K-fold CV for Model Evaluation (L10: Model Evaluation 3)
  • 2020.11.19
  • www.youtube.com
This video introduces the concept of k-fold cross-validation and explains how it can be used for evaluating models. Also, it discusses why 10-fold cross-vali...
 

10.4 CV en K pour l'évaluation du modèle -- Exemples de code (L10 : Évaluation du modèle 3)



10.4 CV en K pour l'évaluation du modèle -- Exemples de code (L10 : Évaluation du modèle 3)

Dans la vidéo précédente, nous avons discuté de la validation croisée k-fold comme méthode d'évaluation des modèles d'apprentissage automatique. Dans cette vidéo, nous allons explorer comment implémenter la validation croisée k-fold en Python à l'aide de la bibliothèque scikit-learn. J'ai téléchargé le bloc-notes de code sur GitHub, et vous pouvez trouver le lien ici.

Commençons par charger les bibliothèques nécessaires et vérifier leurs versions. Nous allons importer NumPy et matplotlib, qui sont des bibliothèques couramment utilisées. Ensuite, nous démontrerons l'utilisation de la validation croisée k-fold en utilisant la classe k-fold du sous-module de sélection de modèle dans scikit-learn.

Pour assurer la reproductibilité, nous définissons une graine aléatoire à l'aide d'un objet générateur de nombres aléatoires. Nous créons ensuite un jeu de données simple avec cinq étiquettes de la classe zéro et cinq étiquettes de la classe un. De plus, nous générons un jeu de données aléatoire avec 10 entrées et quatre caractéristiques. Il convient de noter qu'il ne s'agit que d'un jeu de données aléatoire à des fins d'illustration et que vous pouvez utiliser n'importe quel jeu de données que vous préférez, tel que le jeu de données iris.

Ensuite, nous initialisons un objet k-fold, que nous nommons cv (abréviation de cross-validation). Nous fixons le nombre de fractionnements, n_splits, à cinq, indiquant que nous effectuerons une validation croisée quintuple. Examinons le comportement de cet objet k-fold en utilisant la méthode split. Lorsque nous exécutons cette méthode, nous obtenons cinq résultats, chacun constitué d'un tuple contenant deux tableaux. Le premier tableau représente le pli d'apprentissage et le second tableau représente le pli de validation.

Les nombres dans ces tableaux correspondent aux indices des échantillons dans l'ensemble de données. Par exemple, si nous voulons obtenir les étiquettes réelles correspondant à l'ensemble d'apprentissage du premier pli, nous pouvons utiliser ces indices comme un tableau d'index pour sélectionner les étiquettes. De même, nous pouvons sélectionner les fonctionnalités correspondantes. Il est important de noter que les étiquettes dans les plis de formation et de validation peuvent être déséquilibrées, comme nous l'avons observé dans ce cas.

Pour résoudre ce problème, il est recommandé de mélanger l'ensemble de données avant d'effectuer la validation croisée k-fold. Nous pouvons y parvenir en mélangeant l'ensemble de données directement dans l'objet k-fold lors de l'initialisation. En définissant un état aléatoire et en mélangeant, nous obtenons un meilleur mélange d'étiquettes dans les plis d'apprentissage et de validation.

De plus, il est généralement conseillé de stratifier les divisions, en veillant à ce que la proportion d'étiquettes de classe reste cohérente dans chaque pli. Nous pouvons y parvenir en utilisant la classe k-fold stratifiée au lieu de la classe k-fold régulière. Lorsque nous utilisons un pli k stratifié, la proportion d'étiquettes dans chaque pli correspond à celle de l'ensemble de données d'origine.

Après avoir discuté du comportement général des objets k-fold et stratifiés k-fold, voyons comment les appliquer dans la pratique. Nous utiliserons un classificateur d'arbre de décision et l'ensemble de données d'iris comme exemple. Tout d'abord, nous avons divisé l'ensemble de données de l'iris en 85 % de données d'entraînement et 15 % de données de test à l'aide de la méthode train_test_split, qui garantit un fractionnement stratifié.

Ensuite, nous initialisons un objet stratifié k-fold avec k = 10, comme recommandé par l'article de Ron Kohavi sur le guide pratique de la validation croisée. Nous employons ensuite une approche manuelle pour effectuer une validation croisée k-fold en itérant sur les indices de formation et de validation à l'aide de la méthode de fractionnement. Dans chaque itération, nous adaptons un nouveau classificateur d'arbre de décision en utilisant le pli d'apprentissage et prédisons les étiquettes du pli de validation. Nous calculons la précision pour chaque itération et stockons les résultats dans une variable d'espace réservé.

Après avoir parcouru tous les plis, nous calculons la précision moyenne de la validation croisée k-fold en divisant la somme des précisions par le nombre d'itérations. Enfin, pour évaluer le modèle sur des données invisibles, nous ajustons un nouveau classificateur d'arbre de décision en utilisant toutes les données d'apprentissage et calculons la précision sur l'ensemble de test.

Dans ce cas, nous avons obtenu une précision de validation croisée k-fold de 95,3 % et une précision de l'ensemble de tests de 95 %. Ces résultats suggèrent que notre modèle fonctionne bien à la fois sur les plis de validation croisée et sur les données de test invisibles.

Cependant, l'itération manuelle sur les plis et l'ajustement des modèles peut être un peu fastidieuse. Heureusement, scikit-learn fournit un moyen plus pratique d'effectuer une validation croisée k-fold à l'aide de la fonction cross_val_score. Cette fonction prend le modèle, l'ensemble de données et le nombre de plis comme entrées, et effectue automatiquement une validation croisée k-fold, renvoyant les scores pour chaque pli.

Voyons comment cela se fait en pratique. Nous commençons par importer les bibliothèques nécessaires et charger le jeu de données iris. Ensuite, nous créons une instance du classificateur d'arbre de décision et initialisons un objet stratifié k-fold avec k = 10.

Nous utilisons ensuite la fonction cross_val_score, en transmettant le classificateur, l'ensemble de données et l'objet k-fold. Cette fonction effectue automatiquement la validation croisée k-fold, ajuste le modèle et calcule les scores pour chaque fold. Par défaut, la fonction cross_val_score utilise la métrique de précision, mais vous pouvez spécifier d'autres métriques si vous le souhaitez.

Enfin, nous imprimons les scores de validation croisée pour chaque pli et calculons le score moyen. Dans ce cas, nous avons obtenu une précision moyenne de validation croisée de 95,3 %, ce qui correspond à la précision que nous avons obtenue manuellement.

L'utilisation de cross_val_score est un moyen plus concis et efficace d'effectuer une validation croisée k-fold, car il gère automatiquement l'ensemble du processus. Cela nous permet également de changer facilement le nombre de plis ou de passer à un autre modèle sans modifier le code de manière significative.

10.4 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)
10.4 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)
  • 2020.11.19
  • www.youtube.com
This video explains how we can evaluate models via k-fold cross-validation in Python using scikit-learn. A later video will show how we can use k-fold cross-...
 

CV de 10,5 K pour la sélection du modèle (L10 : évaluation du modèle 3)


CV de 10,5 K pour la sélection du modèle (L10 : évaluation du modèle 3)

Dans les deux vidéos précédentes, nous avons discuté de la validation croisée k-fold pour l'évaluation du modèle et examiné quelques exemples de code. Maintenant, nous allons nous concentrer sur la validation croisée k-fold pour la sélection du modèle. La sélection de modèles est souvent le cas d'utilisation courant pour la validation croisée k-fold car elle nous permet d'ajuster les hyperparamètres et de sélectionner les paramètres d'hyperparamètres les plus performants.

Le processus global peut être résumé en cinq étapes. Cependant, en raison de l'espace limité sur la diapositive, je vais zoomer sur chaque étape dans les diapositives suivantes pour fournir plus de détails. Les cinq étapes sont similaires à la méthode d'exclusion en trois volets pour la sélection de modèles dont nous avons discuté précédemment.

Étape 1 : Divisez les données en ensembles d'apprentissage et de test. Cette étape est la même que précédemment, où nous divisons l'ensemble de données en deux parties, l'une pour la formation et l'autre pour les tests. Nous allons nous concentrer sur l'ensemble de formation pour l'instant.

Étape 2 : Appliquez l'algorithme d'apprentissage avec différents paramètres d'hyperparamètres à l'aide de la validation croisée k-fold. Chaque paramètre d'hyperparamètre, tel que la profondeur maximale d'un algorithme d'arbre de décision, est évalué à l'aide d'une validation croisée k-fold. Par exemple, nous pouvons utiliser la validation croisée k-fold avec k = 10, comme recommandé par Ron Kohavi. Cette étape nous fournit différentes estimations de performances pour chaque paramètre d'hyperparamètre.

Étape 3 : Sélectionnez le modèle le plus performant. Sur la base des estimations de performances obtenues à partir de la validation croisée k-fold, nous pouvons identifier le paramètre d'hyperparamètre qui fonctionne le mieux. Par exemple, nous pouvons constater qu'une profondeur maximale de cinq donne les meilleurs résultats parmi les valeurs testées. Nous sélectionnons ce paramètre d'hyperparamètre comme le meilleur.

Étape 4 : Ajustez le modèle avec les meilleures valeurs d'hyperparamètres aux données d'apprentissage. Après avoir identifié le meilleur paramètre d'hyperparamètre, nous réentraînons le modèle en utilisant l'ensemble de données d'entraînement et les hyperparamètres sélectionnés. Cela garantit que nous avons un modèle unique avec les meilleures valeurs d'hyperparamètres.

Étape 5 : Évaluer le modèle sur un ensemble de test indépendant. Pour estimer les performances de généralisation du modèle, nous l'évaluons sur un ensemble de tests distinct qui n'a pas été utilisé pendant le processus de formation ou de sélection des hyperparamètres. Cela fournit une évaluation impartiale des performances du modèle.

En option, nous pouvons effectuer une étape supplémentaire où nous ajustons le modèle avec les meilleures valeurs d'hyperparamètres sur l'ensemble de données. Cette étape est basée sur l'hypothèse que le modèle pourrait être encore plus performant lorsqu'il est formé sur plus de données.

Avoir un ensemble de test indépendant est important pour éviter les biais de sélection. Parfois, un paramètre d'hyperparamètre peut bien fonctionner sur la validation croisée k-fold par hasard, conduisant à une estimation trop optimiste. En utilisant un jeu de test indépendant, nous pouvons obtenir une évaluation plus fiable des performances du modèle.

Cette procédure résume la validation croisée k-fold pour la sélection du modèle. Explorons maintenant quelques techniques de sélection des hyperparamètres lors de la sélection du modèle ou de l'étape de réglage des hyperparamètres.

Une méthode courante est la recherche par grille, qui reste largement utilisée. La recherche par grille est une méthode de recherche exhaustive dans laquelle vous définissez une liste de valeurs d'hyperparamètres à prendre en compte. Par exemple, dans le cas des k plus proches voisins, vous pouvez régler la valeur de k en spécifiant une liste de valeurs telles que 3, 5, 6, 7, 8 et 9. La recherche de grille évalue les performances du modèle pour chaque combinaison d'hyperparamètres utilisant la validation croisée k-fold.

La recherche de grille peut être effectuée en parallèle, ce qui permet d'évaluer simultanément plusieurs combinaisons d'hyperparamètres. Cependant, il peut souffrir d'une mauvaise couverture si toutes les valeurs d'hyperparamètres pertinentes ne sont pas incluses dans la grille prédéfinie. Ceci est particulièrement problématique pour les hyperparamètres continus ou lorsque certaines valeurs sont ignorées.

Pour résoudre le problème de couverture, la recherche aléatoire est une approche alternative qui échantillonne les valeurs d'hyperparamètres à partir des distributions. Au lieu de spécifier une grille fixe, vous pouvez définir des distributions, telles que uniforme, normale, exponentielle, bêta ou binomiale, pour échantillonner des valeurs d'hyperparamètres. La recherche aléatoire offre plus de flexibilité dans l'exploration de l'espace des hyperparamètres et peut potentiellement couvrir une plus large gamme de valeurs. En échantillonnant à partir de distributions, la recherche aléatoire permet une exploration plus efficace de l'espace des hyperparamètres.

Par rapport à la recherche par grille, la recherche aléatoire est souvent plus efficace en termes de calcul car elle n'évalue pas toutes les combinaisons possibles. Au lieu de cela, il échantillonne de manière aléatoire un sous-ensemble de valeurs d'hyperparamètres et les évalue à l'aide d'une validation croisée k-fold. Le nombre d'itérations ou d'échantillons peut être spécifié à l'avance.

L'avantage de la recherche aléatoire est qu'elle peut rechercher efficacement un grand espace d'hyperparamètres, en particulier lorsque certains hyperparamètres sont moins importants que d'autres. Il peut également gérer des hyperparamètres continus et discrets sans avoir besoin de définir une grille spécifique.

La recherche par grille et la recherche aléatoire ont leurs avantages et leurs inconvénients. La recherche de grille garantit de couvrir toutes les combinaisons dans la grille définie, mais elle peut être coûteuse en calcul et peut ne pas convenir aux grands espaces d'hyperparamètres. La recherche aléatoire, en revanche, est plus efficace mais ne garantit pas une couverture exhaustive.

En pratique, le choix entre la recherche par grille et la recherche aléatoire dépend de la taille de l'espace des hyperparamètres, des ressources de calcul disponibles et du problème spécifique à résoudre.

Une autre technique de réglage des hyperparamètres est l'optimisation bayésienne. L'optimisation bayésienne utilise un modèle probabiliste pour modéliser la relation entre les hyperparamètres et la fonction objectif (par exemple, les performances du modèle). Il utilise un modèle de substitution, tel que les processus gaussiens, pour approximer la fonction objectif et utilise une fonction d'acquisition pour déterminer les prochaines valeurs d'hyperparamètres à évaluer.

L'optimisation bayésienne échantillonne de manière itérative les valeurs d'hyperparamètres en fonction du modèle de substitution et met à jour le modèle en fonction des performances évaluées. Il concentre la recherche sur les régions prometteuses de l'espace des hyperparamètres, conduisant à une exploration plus efficace.

L'avantage de l'optimisation bayésienne est sa capacité à gérer à la fois des hyperparamètres continus et discrets, ainsi que des fonctions objectives non convexes et non linéaires. Il s'adapte aux performances observées et sélectionne intelligemment les prochaines valeurs d'hyperparamètres à évaluer, convergeant potentiellement vers la solution optimale avec moins d'évaluations par rapport à la recherche par grille ou la recherche aléatoire.

Cependant, l'optimisation bayésienne peut être plus coûteuse en calcul, en particulier pour les grands ensembles de données ou les modèles complexes. Cela nécessite d'évaluer la fonction objectif plusieurs fois pour mettre à jour le modèle de substitution et déterminer les prochaines valeurs d'hyperparamètres à évaluer.

Dans l'ensemble, l'optimisation bayésienne est une technique puissante pour le réglage des hyperparamètres, en particulier lorsque l'espace des hyperparamètres est complexe et que la fonction objective est coûteuse à évaluer.

En résumé, la validation croisée k-fold est un outil précieux à la fois pour l'évaluation du modèle et la sélection du modèle. Il nous permet d'estimer les performances de différents modèles et de sélectionner les meilleurs paramètres d'hyperparamètres. Des techniques telles que la recherche de grille, la recherche aléatoire et l'optimisation bayésienne peuvent être utilisées pour régler les hyperparamètres et améliorer les performances du modèle. Le choix de la méthode dépend de facteurs tels que la taille de l'espace des hyperparamètres, les ressources de calcul et le problème spécifique à résoudre.

10.5 K-fold CV for Model Selection (L10: Model Evaluation 3)
10.5 K-fold CV for Model Selection (L10: Model Evaluation 3)
  • 2020.11.20
  • www.youtube.com
After talking about k-fold cross-validation for model *evaluation* in the last two videos, we are now going to talk about k-fold cross-validation for model *...
 

10.6 CV en K pour l'évaluation du modèle -- Exemples de code (L10 : Évaluation du modèle 3)



10.6 CV en K pour l'évaluation du modèle -- Exemples de code (L10 : Évaluation du modèle 3)

Ouais, comme la dernière fois quand nous avons parlé de la validation croisée k-fold pour l'évaluation du modèle. Examinons maintenant de plus près quelques exemples de code pour la validation croisée k-fold, mais cette fois pour la sélection de modèle. Je vais vous fournir quelques exemples de code que vous pouvez trouver sur GitHub. J'inclurai également le lien sur Piazza et Canvas afin que vous puissiez télécharger le bloc-notes de code et l'expérimenter plus tard.

Très bien, plongeons dans le bloc-notes de code. Comme d'habitude, nous commençons par le filigrane pour vérifier les numéros de version des packages que nous utilisons. Dans ce cahier, nous nous concentrerons sur la recherche de grille, qui est vraiment utile pour le réglage des hyperparamètres et la sélection de modèles. Pour cette démonstration, nous utiliserons le classificateur d'arbre de décision sur l'ensemble de données iris. Bien que l'ensemble de données sur l'iris ne soit peut-être pas le plus excitant, il nous permet de garder les choses simples. De plus, cela servira de bonne pratique avant de commencer vos projets de classe, où vous travaillerez avec des jeux de données plus complexes.

Nous commençons par diviser notre ensemble de données en ensembles d'entraînement et de test. Nous utilisons 85 % des données pour la formation et 15 % pour les tests, conformément à la pratique habituelle. Passant à la recherche de grille, nous définissons deux options d'hyperparamètres : profondeur maximale et critère. La profondeur maximale représente la profondeur maximale de l'arbre de décision et nous la définissons sur 1, 2, 3, 4, 5 ou Aucun (aucune restriction sur la profondeur maximale). Le critère représente la fonction pour mesurer la qualité d'une scission, et nous évaluons à la fois "gini" et "entropie". En pratique, le choix entre le gini et l'entropie fait peu de différence, mais nous l'incluons à des fins de démonstration.

Ensuite, nous créons une grille de paramètres, en spécifiant les hyperparamètres et leurs valeurs respectives. Au lieu d'utiliser une liste, nous pouvons également utiliser des dictionnaires pour spécifier différents scénarios. Par exemple, nous pouvons coder en dur une valeur spécifique pour un hyperparamètre tout en explorant toutes les valeurs d'un autre hyperparamètre. Cette approche peut être utile lorsqu'il s'agit de choix de paramètres conflictuels. Cependant, dans ce cas, il n'y a pas de conflit, donc une liste suffirait.

Nous avons défini le nombre de plis de validation croisée (CV) sur 10, ce qui indique que nous voulons effectuer une validation croisée de 10 fois. La validation croisée stratifiée k-fold est utilisée pour les classificateurs, garantissant que les proportions d'étiquettes sont maintenues constantes dans chaque pli. La métrique de notation utilisée pour sélectionner les meilleurs paramètres d'hyperparamètres est la précision pour les classificateurs et le score R au carré pour les régresseurs. Nous avons également défini le nombre de tâches parallèles à exécuter sur -1, ce qui permet d'effectuer plusieurs opérations en parallèle.

Après avoir spécifié tous les détails nécessaires, nous adaptons l'objet de recherche de grille à nos données. Il effectue une recherche exhaustive sur la grille de paramètres, évaluant les performances de chaque combinaison d'hyperparamètres à l'aide de la validation croisée. Une fois la recherche de la grille terminée, nous pouvons accéder au meilleur score et aux paramètres correspondants en utilisant respectivement les attributs best_score_ et best_params_. Dans ce cas, le meilleur modèle a une profondeur maximale de 3 et un critère "gini", atteignant une précision de 96 % en moyenne sur les plis de validation.

Si nous sommes intéressés, nous pouvons inspecter manuellement les résultats stockés dans un dictionnaire, qui contient toutes les informations. Ici, nous nous concentrons sur le score moyen du test, qui représente la performance moyenne sur les plis de validation pour chaque paramètre d'hyperparamètre. Nous imprimons les partitions avec les réglages des paramètres pour une meilleure lisibilité.

En option, nous pouvons résumer les résultats dans une carte thermique à l'aide d'une fonction de la bibliothèque d'étendue ML. La carte thermique fournit une représentation visuelle des performances pour différents paramètres d'hyperparamètres. Dans ce cas, le choix entre « gini » et « entropie » n'a presque aucun effet sur les performances, comme l'indiquent les scores similaires. Les meilleures performances sont obtenues avec une profondeur max de 3 et le critère "gini".

Après avoir obtenu les meilleurs paramètres d'hyperparamètres, nous pouvons les utiliser pour former le modèle final sur l'ensemble de données de formation. Cela garantit que nous utilisons toutes les données disponibles pour la formation du modèle. Nous créons un nouvel objet classificateur d'arbre de décision, définissons les hyperparamètres sur les meilleures valeurs trouvées lors de la recherche dans la grille et adaptons le modèle aux données d'apprentissage.

Une fois le modèle formé, nous pouvons faire des prédictions sur l'ensemble de données de test et évaluer ses performances. Dans cet exemple, nous calculons le score de précision, qui mesure la proportion d'instances correctement classées. Nous imprimons le score de précision, et dans ce cas, nous obtenons une précision de 93% sur l'ensemble de test.

Dans l'ensemble, la recherche de grille nous permet d'explorer systématiquement différentes combinaisons d'hyperparamètres et de sélectionner la meilleure configuration pour notre modèle. Il automatise le processus de réglage des hyperparamètres et aide à trouver les paramètres optimaux pour améliorer les performances.

C'est l'idée de base de l'utilisation de la recherche de grille pour la sélection de modèles et le réglage des hyperparamètres. Bien sûr, ce n'est qu'une approche, et il existe d'autres techniques disponibles, telles que la recherche aléatoire, l'optimisation bayésienne, etc. Le choix de la méthode dépend du problème spécifique et des ressources disponibles.

10.6 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)
10.6 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)
  • 2020.11.20
  • www.youtube.com
In this video, we look at code examples for using k-fold cross-validation for model selection. In particular, we are looking at GridSearchCV and RandomizedSe...
 

10.7 Méthode d'erreur standard CV 1 fois K (L10 : évaluation du modèle 3)


10.7 Méthode d'erreur standard CV 1 fois K (L10 : évaluation du modèle 3)

Dans la discussion précédente, nous avons couvert les concepts de validation croisée k-fold et de sélection de modèle à l'aide de la recherche par grille. Cependant, il y a un autre sujet important à considérer : la méthode de l'erreur standard unique. Cette méthode est pertinente lorsque nous rencontrons des situations où plusieurs paramètres d'hyperparamètres fonctionnent aussi bien, et nous devons choisir le plus approprié.

Lorsque nous avons plusieurs paramètres d'hyperparamètres avec des performances similaires ou identiques, il devient crucial de décider lequel sélectionner. Par défaut, scikit-learn choisit le premier paramètre de la liste en cas d'égalité. Cependant, la méthode à erreur standard unique offre une approche alternative basée sur le principe de parcimonie ou le rasoir d'Occam. Selon le rasoir d'Occam, lorsque des hypothèses concurrentes fonctionnent aussi bien, celle avec le moins d'hypothèses devrait être préférée.

Pour appliquer la méthode de l'erreur standard unique, nous considérons l'estimation numériquement optimale et son erreur standard. Après avoir effectué la sélection du modèle via une validation croisée k-fold, nous obtenons des estimations de performances pour différents paramètres d'hyperparamètres. Parmi ces paramètres, nous sélectionnons le modèle dont la performance est à moins d'un écart type du modèle le plus performant obtenu à l'étape précédente.

Pour illustrer cette méthode, considérons un ensemble de données de classification binaire généré avec scikit-learn, composé de carrés et de triangles. Nous nous concentrerons sur une machine à vecteurs de support (SVM) du noyau RBF pour plus de simplicité. Le SVM a un hyperparamètre appelé gamma, qui contrôle l'influence de chaque exemple de formation. Nous constatons que diverses valeurs gamma se traduisent par des précisions allant de 60 % à 90 %, certains paramètres présentant des performances similaires.

Dans le cas de SVM, la complexité de la frontière de décision dépend de la valeur gamma. Un gamma plus élevé conduit à une frontière de décision plus complexe, tandis qu'un gamma inférieur entraîne une frontière de décision plus simple. Nous pouvons observer cela en traçant les limites de décision pour différentes valeurs gamma. Les modèles les plus simples ont des limites de décision plus proches du linéaire, tandis que les plus complexes présentent des formes plus complexes.

Cependant, lorsque plusieurs paramètres d'hyperparamètres donnent des précisions similaires, nous voulons sélectionner le modèle le plus simple dans une erreur standard du modèle le plus performant. Par exemple, si le modèle le plus performant a une valeur gamma de 0,1, nous considérerons les modèles avec des valeurs gamma dans une erreur standard de 0,1 et choisirons celui avec la complexité la plus faible.

Il convient de noter que la méthode d'erreur standard unique peut ne pas toujours avoir un article ou une publication correspondant. C'est une approche pratique basée sur le principe de simplicité et largement adoptée par les praticiens. S'il existe des études ou des articles publiés sur cette méthode, ils constitueraient des ajouts précieux pour explorer davantage son efficacité et ses implications.

Dans la vidéo suivante, nous allons nous plonger dans un exemple de code qui montre comment implémenter la méthode d'erreur standard unique dans la pratique.

10.7 K-fold CV 1-Standard Error Method (L10: Model Evaluation 3)
10.7 K-fold CV 1-Standard Error Method (L10: Model Evaluation 3)
  • 2020.11.20
  • www.youtube.com
This video suggests the 1-standard error method as a tie breaker for selecting one model from a set of similarly well performing models.-------This video is ...