Dans cet article nous verrons ce qu’est le Feature Engineering, l’intérêt d’automatiser cette étape et un comparatif de différentes libraires traitant le sujet.
Dans le domaine des modèles prédictifs, les données brutes doivent être nettoyées et transformées afin de pouvoir être exploitées correctement par un algorithme. C’est là que le Feature Engineering, une étape souvent négligée mais cruciale dans tout projet de Machine Learning, entre en jeu. Le Feature Engineering consiste à créer de nouvelles caractéristiques à partir des données brutes, permettant ainsi d’améliorer la représentation des informations et d’accroître la performance des modèles.
Dans cette démarche, Featuretools est un framework qui permet d’automatiser le Feature Engineering. Il excelle dans la transformation de données temporelles et relationnelles en matrices de features pour le Machine Learning.
Le Feature Engineering est le processus de sélection, manipulation et transformation de données brutes en caractéristiques (features) pouvant être utilisées par un modèle prédictif. Ce travail repose sur l’exploitation des données existantes et l’application de connaissances du domaine pour créer de nouvelles variables pertinentes et qui n’existent pas initialement.
Le Feature Engineering est un sujet assez vaste qui comprend différentes étapes. Parmi elles, on peut notamment citer :
Le Feature Engineering est une étape très importante d’un projet de Machine Learning. En effet, une bonne préparation et une minutieuse sélection des caractéristiques permet d’améliorer les résultats du modèle. Il est également utile d’utiliser des caractéristiques simples et appropriées pour utiliser des modèles moins complexes et plus rapides à exécuter, plus simples à comprendre et à maintenir.
Automatiser le Feature Engineering présente plusieurs avantages. Déjà, cela permet de gagner du temps. En effet, le nettoyage et la préparation des données représentent 60% du travail d’un Data Scientist. En automatisant la création des features, il est possible de réduire le temps accordé à cette tâche. Cela permet aussi d’éviter les erreurs manuelles et de réutiliser le code dans plusieurs problèmes alors qu’une approche manuelle doit être refaite pour chaque jeu de données.
Featuretools est une librairie Python open source dont l’objectif est de réaliser un Feature Engineering automatisé. Elle comprend des fonctions qui peuvent être empilées pour créer des features, en utilisant une méthode qui s’appelle Deep Feature Synthesis. Cette librairie fonctionne très bien avec les autres outils du pipeline, notamment les dataframes pandas et les modèles Scikit-Learn.
Featuretools repose sur quelques concepts clés :
C’est un algorithme qui génère automatiquement des features pour les ensembles de données relationnelles. Essentiellement, l’algorithme suit les relations dans les données jusqu’à la base, puis applique séquentiellement des fonctions mathématiques le long de ce chemin pour créer la feature finale. Ces fonctions mathématiques peuvent être les opérateurs mathématiques standards (Min A, Max B) ou bien des combinaisons de features (A * B).
L’utilisation de Featuretools se fait en 3 grandes étapes :
AutoFeat est une autre librairie open-source de Feature Engineering spécialisée pour les modèles de classification et de régression linéaire. Elle permet d’automatiser la création de nouvelles features, la conversion des variables catégorielles, la sélection des features ainsi que l’entraînement d’un modèle de classification ou de régression linéaire avec les features sectionnées. La création des nouvelles features se fait en plusieurs étapes, d’abord des transformations non linéaires sont appliquées aux variables d’entrée (1/x, log(x)…), puis elles sont combinées avec différents opérateurs (+, -, .).
AutoFeat ne fonctionne pas comme Featuretools, elle n’est pas destinée aux données relationnelles mais a été créée pour des cas d’utilisation scientifique. Les données sont stockées dans une seule table et il est possible de spécifier les unités des variables d’entrée afin d’éviter la création de features physiquement absurdes.
Ses limites sont de ne pas gérer les bases de données relationnelles et de créer des features moins sophistiquées que Featuretools.
TsFresh, qui signifie “Time Series Feature extraction based on scalable hypothesis tests”, est une librairie open-source spécifique aux séries temporelles. Elle permet l’extraction et la sélection automatiques de features. TsFresh permet d’extraire plus de 60 caractéristiques à partir d’une variable de données temporelles, ce qui permet d’en saisir les informations des plus basiques au plus complexes: valeur moyenne, valeur maximale, nombre de pics, transformation de Fourier rapide…
TsFresh est très utile pour les données de séries temporelles et peut être facilement intégrée avec Featuretools, mais ne peut pas être utilisée pour d’autres types de données.
OneBM, ou One Button Machine, permet de créer des features à partir d’une base de données relationnelles. Il joint les tables de manière incrémentale en suivant les relations entre les tables. Ensuite, il identifie automatiquement le type des variables (catégorielles, numériques, séries temporelles…) puis applique un ensemble d’opérations prédéfinies correspondant au type identifié. OneBM permet aussi de faire une Feature Selection pour enlever les features non pertinentes qui ont été construites à l’étape précédentes.
L’inconvénient est qu’il n’existe pas d’implémentation open-source pour OneBM.
Le Feature Engineering est une étape essentielle dans tout projet lié à la Data Science. Même si elle est chronophage et souvent sous-estimée, elle joue un rôle clé dans l’amélioration des performances du modèle.
Bien que la tâche de Feature Engineering puisse être complexe à automatiser en raison de la nécessité de comprendre le contexte spécifique des données de chaque projet, des outils tels que FeatureTools, AutoFeat et TsFresh se sont avérés très utiles pour accélérer ce processus et minimiser le risque d’erreurs humaines.
Un article sortira pour montrer le fonctionnement de ces outils dans un cas concret. Suivez la page LinkedIn d’Aqsone https://www.linkedin.com/company/aqsone/ pour ne pas manquer nos prochains articles !