L’ingénierie des caractéristiques (en anglais feature engineering) a un rôle important, notamment dans l’analyse des données. Sans données, les algorithmes d’exploitation et d’apprentissage automatique de données ne seront pas en mesure de fonctionner. En effet, il s’avère qu’en réalité, on ne pourrait réaliser que peu de choses si nous ne disposions que de très peu de caractéristiques afin de pouvoir représenter les données, ou les banques de données, sous-jacentes. De surcroît, la qualité des résultats de tous ces algorithmes est dépendante et est directement liée à la qualité des caractéristiques dont on peut disposer. Ainsi, il existe différentes formes de données comme la séquence, la série chronologique, le graphique, le texte ou encore l’image.
Processus d’ingénierie des caractéristiques L’ingénierie des caractéristiques permet de répondre aux différents besoins de génération ainsi que de sélection de caractéristiques indispensables, mais aussi à de nombreuses questions. Elle est spécifique au type de données et fait partie de l’application. Elle est incluse dans le processus de Machine Learning. Ainsi, l’ingénierie des caractéristiques comprend plusieurs processus :
La création de caractéristiques Elle permet de créer de nouvelles variables utiles dans un modèle. Cette création consiste à ajouter ou à supprimer quelques caractéristiques.
La transformation de caractéristiques Elle correspond à une fonction transformant les caractéristiques d’une représentation spécifique à un autre. Elle repose donc sur la construction de nouvelles caractéristiques via des caractéristiques qui existent déjà, et est réalisé via le recours aux applications mathématiques. L’objectif réside dans la traçabilité et la visualisation de données.
La génération de caractéristiques Elle permet la création de nouvelles caractéristiques qui ne sont pas le résultat de transformation de caractéristiques. De surcroît, les caractéristiques, qui ont été définies via des caractéristiques particulières, correspondent à des caractéristiques dites générées. Beaucoup de méthodes, qui permettent de définir les caractéristiques adaptées à un domaine, font partie de la catégorie de l’extraction de caractéristiques. Ainsi, nous pouvons utiliser à la fois le terme de génération de caractéristiques mais aussi celui de l’extraction de caractéristiques.
La sélection de caractéristiques Elle induit à faire le choix d’un petit ensemble de caractéristiques dans un grand nombre de caractéristiques. Ainsi, en réduisant au mieux la taille de l’ensemble des caractéristiques, il est possible d’utiliser la plupart des algorithmes dans le milieu informatique. Sélectionner des caractéristiques peut ainsi permettre l’amélioration des résultats, en termes de qualité, de ces mêmes algorithmes.
L’analyse et l’évaluation des caractéristiques Elles se rapportent à des méthodes, des concepts et des mesures qui peuvent permettre l’évaluation de l’utilité des caractéristiques mais aussi des ensembles de caractéristiques, et souvent, qui font partie de la sélection des caractéristiques.
La méthodologie générale d’ingénierie automatique des caractéristiques Cette méthodologie se réfère à des approches dites génériques. Ces dernières peuvent permettre la génération de façon automatique d’un nombre important de caractéristiques, ainsi que la sélection d’un sous-ensemble efficient de caractéristiques qui ont été générées.
Les applications d’ingénierie des caractéristiques Ces dernières impliquent directement l’ingénierie des caractéristiques. L’objectif de ces applications est de pouvoir réaliser la résolution de diverses tâches d’analyse de données au sein de contextes spécifiques.
Les types d'ingénierie des fonctionnalités Ingénierie des caractéristiques univariées et multivariées L'ingénierie des caractéristiques univariées pour les variables continues peut être pratique pour améliorer la symétrie, la normalité ou l'ajustement du modèle. Dans la modélisation du risque de crédit, par exemple, une transformation logarithmique est souvent appliquée à des variables de taille telles que les montants des prêts, la taille des actifs et le produit intérieur brut (PIB), car ces variables sont généralement non négatives et asymétriques à droite.
Ingénierie des fonctionnalités spécifiques au domaine Il s'agit de la connaissance du domaine précis du problème identifié. Cela permet de créer des fonctionnalités intelligentes qui améliorent les performances de l'algorithme d'apprentissage automatique. Sur la base de connaissances d'experts, on peut par exemple ajouter des caractéristiques indicatrices pour une certaine condition ou construire une nouvelle caractéristique d'interaction en prenant des combinaisons de deux ou plusieurs caractéristiques existantes (par exemple, pour la création d'un modèle d'apprentissage automatique d'un problème de physique, ajouter des nombres adimensionnels pertinents, comme le nombre d'Archimède pour la sédimentation).
Ingénierie des fonctionnalités pour les données de séries temporelles La plupart des algorithmes d'apprentissage automatique ne peuvent pas être directement appliqués aux données de séries chronologiques. Une façon courante de résoudre ce problème consiste à transformer la série chronologique en une représentation vectorielle de caractéristiques, puis à appliquer un modèle prédictif traditionnel sur cette nouvelle représentation. La définition de cette représentation vectorielle de caractéristiques est une étape cruciale pour apprendre des données de séries chronologiques et a un impact majeur sur les performances du modèle. La construction manuelle de ces caractéristiques est une tâche très difficile et chronophage.
Ingénierie des fonctionnalités pour les données réseau Une caractéristique importante des réseaux est que les nœuds ayant des propriétés similaires sont souvent liés les uns aux autres, ce qui signifie que la structure du réseau peut être utilisée pour faire des inférences sur les nœuds. La structure du réseau, la position des nœuds en son sein et les interdépendances entre eux peuvent en dire long sur leurs propriétés. Cependant, l'ingénierie des fonctionnalités doit être appliquée pour extraire ces informations afin qu'elles puissent être utilisées dans des modèles d'apprentissage automatique.
Ingénierie des fonctionnalités pour les données multimédias Les données multimédias sont en fait définies comme des données représentant plusieurs types de supports pour capter des informations. Des exemples populaires de données multimédias sont les données audio, vidéo et image. L'idée de l'ingénierie des caractéristiques pour les données non structurées est d'extraire des caractéristiques telles qu'elles puissent être introduites dans une technique d'apprentissage automatique classique pour la reconnaissance de formes.
Ingénierie des fonctionnalités pour les données textuelles Le texte est une autre forme de données non structurées où la compréhension du contexte, c'est-à-dire des phrases et des documents, est nécessaire pour interpréter leur sens. Les données textuelles contiennent généralement des dimensions beaucoup plus élevées que les données traditionnelles et sont utilisées dans de nombreuses applications telles que le filtrage du spam, le marketing, l'analyse des sentiments et la détection des fraudes. L'ingénierie est une étape clé dans l'exploration de texte, où les caractéristiques numériques sont créées à partir des données textuelles brutes.
Ingénierie des fonctionnalités pour les données géospatiales Enfin, les données géospatiales contiennent des informations sur l'emplacement d'objets ou d'événements. Les informations de localisation sont souvent également combinées avec des informations temporelles et météorologiques. L'emplacement peut être statique ou dynamique et peut être obtenu à partir de diverses sources. De grandes quantités de données géospatiales sont accessibles au public et ces informations présentent un intérêt dans de nombreuses applications, en particulier lorsqu'elles peuvent être ajoutées aux données d'entreprise traditionnelles.
Techniques d’ingénierie des caractéristiques Nous pouvons comprendre l’ingénierie des caractéristiques seulement dans le processus de l’apprentissage automatique appliqué. Même si comprendre les données et le problème visé constitue une partie importante de l’ingénierie des caractéristiques au sein de l’apprentissage automatique, et qu’aucune règle n’existe pour pouvoir y parvenir, les techniques d’ingénierie des caractéristiques suivantes s’avèrent indispensables :
Imputation Lorsqu’il faut réaliser la préparation des données pour l’apprentissage automatique, les valeurs manquantes dans les données constituent l’un des problèmes majeurs. Ces dernières peuvent apparaître à la suite d'erreurs humaines, de problèmes de confidentialité ou encore d'interruptions de flux de données. De surcroît, elles affectent directement les performances de l’ensemble des modèles d’apprentissage automatique. C’est pour cette raison que l’imputation peut s’avérer utile car elle consiste à traiter les valeurs manquantes. De plus, il existe deux grandes catégories d’imputation :
Imputation catégorielle : les valeurs catégorielles, qui manquent, sont alors remplacées par la valeur la plus courante au sein des autres enregistrements.
Imputation numérique : les valeurs numériques, qui manquent, sont ici remplacées par la moyenne de la valeur qui correspond au sein d’autres enregistrements.
Discrétisation Il s’agit de prendre un ensemble de valeurs de données puis de les regrouper logiquement dans des bacs ou des seaux. Nous pouvons appliquer un regroupement à des valeurs catégorielles et à des valeurs numériques. On peut effectuer plusieurs sortes regroupement de données, comme un regroupement d’intervalles égaux, un regroupement se basant sur des fréquences égales ou un regroupement qui se base sur un tri par arbre de décision.
Encodage catégoriel La technique de l’encodage catégoriel est utilisée afin de pouvoir encoder des caractéristiques en valeurs numériques car il est plus simple de comprendre des valeurs numériques pour un algorithme. Parmi les techniques d’encage catégoriel, il y a l’encodage à chaud, ou OHE, qui est souvent utilisé. Cette technique consiste à convertir les valeurs catégorielles en 1 et 0, et elle permet de ne pas perdre d’information.
Fractionnement des caractéristiques En fractionnant, ou en divisant, des caractéristiques en plusieurs parties, nous pouvons alors accroître la valeur de l’ensemble des caractéristiques en fonction de la cible à apprendre.
Traitement des valeurs aberrantes Cette technique consiste à traiter les valeurs aberrantes dans un ensemble de données. Ces valeurs aberrantes correspondent à des valeurs élevées ou faibles au sein d’un ensemble de données, qui sont à la fois inhabituelles et qui peuvent se produire dans des scénarios normaux. Plusieurs méthodes de traitement des valeurs aberrantes existent :
Suppression : les valeurs aberrantes sont supprimées de la distribution dans les enregistrements. Cependant, dans le cas où nous avons des valeurs aberrantes dans plusieurs variables, cette méthode peut conduire à la perte d’une partie de la feuille de données.
Remplacement des valeurs : il est possible de traiter les valeurs aberrantes comme des valeurs manquantes, et de les remplacer en ayant recours à une imputation adaptée.
Plafonnement : Les valeurs maximales et minimales plafonnées peuvent être remplacées en utilisant une valeur arbitraire ou une valeur provenant d’une distribution variable.
Discrétisation : c’est un processus qui a pour objectif de réaliser la conversion des modèles, des variables, mais aussi des fonctions continues, en variables discrètes. Afin d’y parvenir, il faut au préalable construire une série d’intervalles continues permettant de couvrir la plage du modèle, de la variable, ou de la fonction visée