Une introduction douce aux pipelines de modélisation d'apprentissage automatique
L'apprentissage automatique appliqué se concentre généralement sur la recherche d'un modèle unique qui fonctionne bien ou mieux sur un ensemble de données donné.
L'utilisation efficace du modèle nécessitera une préparation appropriée des données d'entrée et un réglage des hyperparamètres du modèle.
Collectivement, la séquence linéaire d'étapes nécessaires pour préparer les données, ajuster le modèle et transformer les prédictions est appelée le pipeline de modélisation. Les bibliothèques modernes d'apprentissage automatique comme la bibliothèque Python scikit-learn permettent de définir et d'utiliser cette séquence d'étapes correctement (sans fuite de données) et de manière cohérente (lors de l'évaluation et de la prédiction).
Néanmoins, travailler avec des pipelines de modélisation peut être déroutant pour les débutants car cela nécessite un changement de perspective du processus d'apprentissage automatique appliqué.
Dans ce didacticiel, vous découvrirez la modélisation de pipelines pour l'apprentissage automatique appliqué.
Après avoir terminé ce tutoriel, vous saurez :
- L’apprentissage automatique appliqué ne se limite pas à trouver un modèle performant ; cela nécessite également de trouver une séquence appropriée d’étapes de préparation des données et d’étapes de post-traitement des prédictions.
- Collectivement, les opérations nécessaires pour résoudre un problème de modélisation prédictive peuvent être considérées comme une unité atomique appelée pipeline de modélisation.
- Aborder l’apprentissage automatique appliqué à travers le prisme des pipelines de modélisation nécessite un changement de mentalité, passant de l’évaluation de configurations de modèles spécifiques à des séquences de transformations et d’algorithmes.
Commençons.
Présentation du didacticiel
Ce didacticiel est divisé en trois parties : ils sont:
- Trouver un modèle compétent ne suffit pas
- Qu'est-ce qu'un pipeline de modélisation ?
- Implications d'un pipeline de modélisation
Trouver un modèle compétent ne suffit pas
L'apprentissage automatique appliqué est le processus de découverte du modèle qui fonctionne le mieux pour un ensemble de données de modélisation prédictive donné.
En fait, c’est plus que cela.
En plus de découvrir quel modèle fonctionne le mieux sur votre ensemble de données, vous devez également découvrir :
- Transformations de données qui exposent au mieux la structure sous-jacente inconnue du problème aux algorithmes d'apprentissage.
- Hyperparamètres de modèle qui aboutissent à une configuration bonne ou optimale d'un modèle choisi.
Il peut également y avoir des considérations supplémentaires telles que des techniques qui transforment les prédictions faites par le modèle, comme le déplacement du seuil ou l'étalonnage du modèle pour les probabilités prédites.
En tant que tel, il est courant de considérer l’apprentissage automatique appliqué comme un vaste problème de recherche combinatoire à travers les transformations de données, les modèles et les configurations de modèles.
Cela peut être assez difficile en pratique car cela nécessite que la séquence d'un ou plusieurs schémas de préparation de données, le modèle, la configuration du modèle et tout schéma de transformation de prédiction soient évalués de manière cohérente et correcte sur un harnais de test donné.
Bien que délicat, cela peut être gérable avec une simple division de test d'entraînement, mais devient tout à fait ingérable lors de l'utilisation d'une validation croisée k fois ou même d'une validation croisée k fois répétée.
La solution consiste à utiliser un pipeline de modélisation pour que tout reste clair.
Qu'est-ce qu'un pipeline de modélisation ?
Un pipeline est une séquence linéaire d'options de préparation de données, d'opérations de modélisation et d'opérations de transformation de prédiction.
Il permet de spécifier, d'évaluer et d'utiliser la séquence d'étapes comme une unité atomique.
- Pipeline : séquence linéaire d'étapes de préparation et de modélisation des données qui peuvent être traitées comme une unité atomique.
Pour clarifier l’idée, regardons deux exemples simples :
Le premier exemple utilise la normalisation des données pour les variables d'entrée et s'adapte à un modèle de régression logistique :
- [Entrée], [Normalisation], [Régression logistique], [Prédictions]
Le deuxième exemple standardise les variables d'entrée, applique la sélection de fonctionnalités RFE et ajuste une machine à vecteurs de support.
- [Entrée], [Standardisation], [RFE], [SVM], [Prédictions]
Vous pouvez imaginer d’autres exemples de modélisation de pipelines.
En tant qu'unité atomique, le pipeline peut être évalué à l'aide d'un schéma de rééchantillonnage préféré tel qu'un fractionnement de test de train ou une validation croisée k fois.
Ceci est important pour deux raisons principales :
- Évitez les fuites de données.
- Cohérence et reproductibilité.
Un pipeline de modélisation évite le type de fuite de données le plus courant, lorsque des techniques de préparation des données, telles que la mise à l'échelle des valeurs d'entrée, sont appliquées à l'ensemble de données. Il s'agit d'une fuite de données, car elle partage la connaissance de l'ensemble de données de test (telles que les observations qui contribuent à une valeur moyenne ou maximale connue) avec l'ensemble de données d'entraînement, ce qui peut entraîner des performances trop optimistes du modèle.
Au lieu de cela, les transformations de données doivent être préparées uniquement sur l'ensemble de données d'entraînement, puis appliquées à l'ensemble de données d'entraînement, à l'ensemble de données de test, à l'ensemble de données de validation et à tout autre ensemble de données nécessitant la transformation avant d'être utilisé avec le modèle.
Un pipeline de modélisation garantit que la séquence des opérations de préparation des données effectuées est reproductible.
Sans pipeline de modélisation, les étapes de préparation des données peuvent être effectuées manuellement deux fois : une fois pour évaluer le modèle et une fois pour faire des prédictions. Toute modification apportée à la séquence doit rester cohérente dans les deux cas, sinon les différences auront un impact sur les capacités et les compétences du modèle.
Un pipeline garantit que la séquence d'opérations est définie une seule fois et est cohérente lorsqu'elle est utilisée pour l'évaluation du modèle ou pour faire des prédictions.
La bibliothèque d'apprentissage automatique Python scikit-learn fournit un pipeline de modélisation d'apprentissage automatique via la classe Pipeline.
Vous pouvez en savoir plus sur l'utilisation de cette API Pipeline dans ce didacticiel :
- Comment éviter les fuites de données lors de la préparation des données
Implications d'un pipeline de modélisation
Le pipeline de modélisation est un outil important pour les praticiens de l'apprentissage automatique.
Néanmoins, certaines implications importantes doivent être prises en compte lors de leur utilisation.
La principale confusion pour les débutants lors de l'utilisation de pipelines réside dans la compréhension de ce que le pipeline a appris ou de la configuration spécifique découverte par le pipeline.
Par exemple, un pipeline peut utiliser une transformation de données qui se configure automatiquement, comme la technique RFECV pour la sélection de fonctionnalités.
- Lors de l'évaluation d'un pipeline qui utilise une transformation de données configurée automatiquement, quelle configuration choisit-il ? ou Lors de l'adaptation de ce pipeline comme modèle final pour faire des prédictions, quelle configuration a-t-il choisie ?
La réponse est que cela n’a pas d’importance.
Un autre exemple est l’utilisation du réglage des hyperparamètres comme étape finale du pipeline.
La recherche de grille sera effectuée sur les données fournies par toutes les étapes de transformation antérieures du pipeline et recherchera ensuite la meilleure combinaison d'hyperparamètres pour le modèle utilisant ces données, puis ajustera un modèle avec ces hyperparamètres sur les données.
- Lors de l'évaluation d'un pipeline dont la grille recherche les hyperparamètres du modèle, quelle configuration choisit-il ? ou Lors de l'adaptation de ce pipeline comme modèle final pour faire des prédictions, quelle configuration a-t-il choisie ?
La réponse est encore une fois : cela n’a pas d’importance.
La réponse s’applique lors de l’utilisation d’une étape de déplacement de seuil ou d’étalonnage de probabilité à la fin du pipeline.
La raison est la même pour laquelle nous ne nous préoccupons pas de la structure interne spécifique ou des coefficients du modèle choisi.
Par exemple, lors de l'évaluation d'un modèle de régression logistique, nous n'avons pas besoin d'inspecter les coefficients choisis lors de chaque cycle de validation croisée k fois afin de choisir le modèle. Au lieu de cela, nous nous concentrons sur sa capacité prédictive hors du commun.
De même, lorsque nous utilisons un modèle de régression logistique comme modèle final pour faire des prédictions sur de nouvelles données, nous n'avons pas besoin d'inspecter les coefficients choisis lors de l'ajustement du modèle sur l'ensemble de données avant de faire des prédictions.
Nous pouvons inspecter et découvrir les coefficients utilisés par le modèle comme exercice d'analyse, mais cela n'a pas d'impact sur la sélection et l'utilisation du modèle.
Cette même réponse se généralise lorsqu’on considère un pipeline de modélisation.
Nous ne nous soucions pas des fonctionnalités qui peuvent avoir été automatiquement sélectionnées par une transformation de données dans le pipeline. Nous ne nous préoccupons pas non plus des hyperparamètres qui ont été choisis pour le modèle lors de l'utilisation d'une recherche de grille comme étape finale du pipeline de modélisation.
Dans les trois cas : le modèle unique, le pipeline avec sélection automatique de fonctionnalités et le pipeline avec recherche par grille, nous évaluons le « modèle » ou le « pipeline de modélisation ». comme unité atomique.
Le pipeline nous permet, en tant que praticiens de l'apprentissage automatique, de progresser d'un niveau d'abstraction et d'être moins préoccupés par les résultats spécifiques des algorithmes et davantage par la capacité d'une séquence de procédures.
En tant que tel, nous pouvons nous concentrer sur l’évaluation de la capacité des algorithmes sur l’ensemble de données, et non sur le produit des algorithmes, c’est-à-dire le modèle. Une fois que nous avons une estimation du pipeline, nous pouvons l’appliquer et être sûrs que nous obtiendrons des performances similaires en moyenne.
Il s’agit d’un changement de mentalité auquel il faudra peut-être un certain temps pour s’y habituer.
C'est également la philosophie qui sous-tend les techniques modernes d'AutoML (apprentissage automatique de la machine) qui traitent l'apprentissage automatique appliqué comme un vaste problème de recherche combinatoire.
Lectures complémentaires
Cette section fournit plus de ressources sur le sujet si vous souhaitez approfondir.
- Comment éviter les fuites de données lors de la préparation des données
Résumé
Dans ce didacticiel, vous avez découvert des pipelines de modélisation pour l'apprentissage automatique appliqué.
Concrètement, vous avez appris :
- L’apprentissage automatique appliqué ne se limite pas à trouver un modèle performant ; cela nécessite également de trouver une séquence appropriée d’étapes de préparation des données et d’étapes de post-traitement des prédictions.
- Collectivement, les opérations nécessaires pour résoudre un problème de modélisation prédictive peuvent être considérées comme une unité atomique appelée pipeline de modélisation.
- Aborder l’apprentissage automatique appliqué à travers le prisme des pipelines de modélisation nécessite un changement de mentalité, passant de l’évaluation de configurations de modèles spécifiques à des séquences de transformations et d’algorithmes.
Avez-vous des questions ?
Posez vos questions dans les commentaires ci-dessous et je ferai de mon mieux pour y répondre.