Feature engineering : définition et techniques clés
Le feature engineering ou ingénierie des fonctionnalités est une étape préliminaire du machine learning visant à réaliser un prétraitement des données brutes avant leur utilisation comme données d'apprentissage.
Le feature engineering, c'est quoi ?
Dans le domaine de l’IA (intelligence artificielle), le feature engineering consiste à préprocesser des données brutes en vue de les utiliser comme données d'apprentissage automatique ou machine learning. Elles doivent en effet présenter des caractéristiques et format qui leur sont propres (en termes de numéro de client, d'article, de pièce, de dossier, d'échelle chronologique / et valeurs ou volumes associées....) en vue de l'entrainement à réaliser.
Le procédé les distingue et identifie d’éventuelles anomalies. Cela permet d’obtenir un modèle prédictif plus fiable et performant tout en réduisant le risque de biais et de dérive du modèle.
Qu’est-ce que le feature engineering en data science ?
La data science a pour objectif de générer des connaissances à partir de l'exploration et l'analyse d'ensembles de données. Historiquement utilisée dans l'analyse décisionnelle ou business intelligence, mais aussi dans le big data, elle s'est étendue plus récemment à l'IA et à la création de modèles d'apprentissage. Dans ce cadre, elle recouvre de facto le feature engineering qui a pour but de préprocesser les données et caractéristiques d'apprentissage en amont des phases d'entrainement.
Quelques exemples de feature engineering
Par son importance dans les domaines de l’IA, de la data science et du machine learning, le feature engineering présente différents champs d’application :
- L'identification de caractéristiques,
- La gestion des valeurs associées, notamment manquantes,
- La numérisation de données qui ne disposent pas d’éléments de comparaison,
- L’enrichissement des datasets…
Quelles sont les techniques de feature engineering en machine learning ?
Le feature engineering est la première étape du traitement des données d'apprentissage en amont de la génération d’un modèle de machine learning. Il existe plusieurs techniques de feature engineering :
- La méthode de l’importance : un score est attribué pour estimer l’importance d’une caractéristique.
- L’extraction des caractéristiques : les données brutes servent à générer de nouvelles caractéristiques.
- La sélection de caractéristiques : le système choisit les ensembles et les sous-ensembles les plus pertinents.
Qu’en est-il des techniques de feature engineering pour les time séries ?
Pour des séries chronologiques ou temporelles, le feature engineering use de techniques propres aux particularités de ces systèmes :
- Les fonctions liées à la date, en vue de réaliser une prévision par rapport à une échelle de temps variable.
- L’horodatage : le principe reste le même que la précédente méthode, mais gagne en précision. Il y a notamment une distinction entre les heures ouvrables et non ouvrables.
- Le décalage : il s’appuie sur le choix d’une variable dans un intervalle de temps plus ou moins éloigné, en considérant la valeur et les fluctuations des données passées.
En quoi consiste le feature engineering en NLP ?
Le traitement automatique du langage naturel (ou NLP) se sert du feature engineering pour de nombreux cas d'usage. Les possibilités s’étendent des process de traduction automatique à l’analyse syntaxique, de la reconnaissance optique de caractères à la synthèse vocale. Cela permet de concilier IA et linguistique dans un environnement numérique.
Le NLP doit saisir la manière de formuler un texte, une phrase, un mot et la façon dont ils articulent. Le décryptage de ce contexte est un prérequis pour en comprendre le sens. Le feature engineering est là justement pour saisir ces éléments de contexte. Partant de là, il consiste à extraire des données de contextes des données brutes pour en faire les caractéristiques de base du data set d'apprentissage : nombre de mots dans les textes à traiter, nombre de mots en majuscules, nombre de ponctuations, nombre de mots uniques, longueur moyenne des phrases, etc.