Transformer des données brutes en caractéristiques informatives pour les modèles d'apprentissage automatique grâce à des techniques de sélection, d'extraction, de construction et de transformation
Archived. This article has not been updated since the publish date above. The dynamic nature of information means that previously accurate content can become outdated or even obsolete over time. Readers are advised to exercise due diligence and cross-check any information found in this blog post before making decisions or adopting any practices based on said information.
L'ingénierie de fonctionnalité, également appelée prétraitement des données, consiste à convertir les données brutes en fonctionnalités utilisables pour développer des modèles de machine learning. Cette rubrique décrit les principaux concepts de l'ingénierie de fonctionnalité et le rôle qu'elle joue dans la gestion du cycle de vie du ML.
Dans le contexte du machine learning, les fonctionnalités sont les données d'entrées utilisées pour entraîner un modèle. Elles représentent les attributs d'une entité qui fait l'objet de l'apprentissage du modèle. Les données brutes doivent généralement être prétraitées avant d'être utilisées dans un modèle de ML. Bien réalisée, l'ingénierie de fonctionnalité accroît l'efficacité du développement du modèle et produit des modèles plus simples, plus flexibles et plus précis.
L'ingénierie de fonctionnalité consiste à transformer et enrichir les données pour améliorer les performances des algorithmes de machine learning employés pour entraîner les modèles sur ces données.
L'ingénierie de fonctionnalité comprend plusieurs étapes : mise à l'échelle ou normalisation des données, encodage des données non numériques (texte, images, etc.), agrégation des données en fonction du temps et de l'entité, regroupement des données de différentes sources, et même transfert des connaissances acquises par d'autres modèles. Ces transformations ont un objectif : accroître la capacité des algorithmes de machine learning à apprendre du dataset, et donc à faire des prédictions plus précises.

L'ingénierie de fonctionnalité joue un rôle décisif à plusieurs titres. Tout d'abord, comme cela a été mentionné plus tôt, les modèles de machine learning ne peuvent pas toujours exploiter des données brutes. Les données doivent donc être converties dans une forme numérique compréhensible par le modèle. Il peut s'agir de convertir du texte ou des images sous forme numérique, ou bien de créer des fonctionnalités agrégées, comme la valeur moyenne des transactions d'un client.
Il peut arriver que les fonctionnalités d'un problème de machine learning soient présentes sur plusieurs sources de données. Dans ce cas, une ingénierie de fonctionnalité efficace va joindre ces sources pour créer un dataset unique. Cette opération vous permet d'utiliser toutes les données disponibles pour entraîner votre modèle, ce qui peut accroître sa précision et sa performance.
Autre scénario courant : les résultats et l'apprentissage d'autres modèles peuvent parfois être réutilisés sous la forme de fonctionnalités et mis au service d'un nouveau problème – c'est ce qu'on appelle l'apprentissage par transfert. Cette opération permet d'exploiter les connaissances acquises par les modèles précédents pour améliorer les performances d'un nouveau modèle. L'apprentissage par transfert s'avère particulièrement utile lorsqu'il s'agit de traiter des datasets à la fois vastes et complexes pour lesquels il n'est pas pratique d'entraîner un modèle à partir de zéro.
Une ingénierie de fonctionnalité efficace est également un gage de fiabilité des fonctionnalités au moment de l'inférence, quand le modèle est utilisé pour émettre des prédictions sur de nouvelles données. Cet aspect n'est pas à négliger, car les fonctionnalités employées au moment de l'inférence doivent être identiques à celles qui ont servi au moment de l'entraînement, afin d'éviter toute déformation « en ligne/hors ligne ». Ce type de déformation survient quand les fonctionnalités utilisées au moment de la prédiction ne sont pas celles ayant servi lors de l'entraînement.
L'objectif de l'ingénierie de fonctionnalité est de créer un dataset pouvant servir à la création d'un modèle de machine learning. Nombre d'outils et de techniques employés pour transformer les données servent également en ingénierie de fonctionnalité.
Comme l'ingénierie de fonctionnalité est avant tout axée sur le développement d'un modèle, elle a certaines exigences qui ne sont pas présentes dans toutes les transformations. Par exemple, vous souhaiterez peut-être réutiliser les fonctionnalités dans différents modèles ou les partager avec d'autres équipes de votre organisation. Il vous faudra donc une méthode robuste pour découvrir les fonctionnalités.
De plus, en cas de réutilisation des fonctionnalités, vous aurez besoin d'un moyen de suivre la façon dont elles sont calculées, et à quels endroits. C'est ce qu'on appelle la généalogie, ou lineage, des fonctionnalités. Le machine learning a besoin de calculs de fonctionnalité reproductibles. En effet, la fonctionnalité ne doit pas seulement être calculée pour entraîner le modèle : elle doit aussi être recalculée de façon parfaitement identique au moment où le modèle est utilisé à des fins d'inférence.