[Tribune] Le Feature Engineering, cœur de métier du Data Scientist -Tome 2: Une infinité de possibles

Episode II : une infinité de possibles

Cette tribune est en 3 volets, en voici le 2ème extrait, également disponible sur le JDN: Feature engineering.

Nous sommes au cœur d’un processus prévisionnel. Dans l’épisode I : Mise en place du décor, nous avons rappelé l’importance des données brutes et des informations qui s’y cachent, sans lesquelles les meilleurs algorithmes de Machine Learning ne peuvent rien. Entre elles et ces algorithmes toujours plus perfectionnés, un travail de Feature Engineering doit être fait.

Dans cet épisode, nous allons évoquer quelques exemples de Feature Engineering et constater à quel point le domaine d'intervention est vaste et varié.

Granularité des faits

Le premier exemple que nous allons donner peut surprendre du fait qu’il relève davantage de la modélisation même du problème à traiter plutôt que des features en tant que telles. Il s'agit du choix de la granularité des faits d'apprentissage.

Vous avez à prévoir une série temporelle, disons les ventes dans un magasin, avec un pas de temps d'une semaine. Deux stratégies s'affrontent : agréger les données de ventes journalières à la semaine et apprendre directement de ces faits agrégés, ou bien apprendre et prévoir sur une base journalière, avant d'agréger à la semaine.

Chaque stratégie possède ses avantages propres. Dans le premier cas, les données de ventes sont « consolidées », donc plus régulières et donc plus faciles à apprendre. La volumétrie est également moindre (d'un facteur 7), d'où des temps et des moyens de calcul plus raisonnables.

Se pose en revanche le problème du choix des features. En effet, la réalité physique du phénomène à l'étude (les ventes) est naturellement au jour, voire à l’heure, et ainsi les features seront automatiquement liées à cette maille. Le magasin a peut-être été exceptionnellement fermé ou ouvert un certain jour, un produit a été en promotion le lundi et mardi, etc. Comment traduire ces informations dans une granularité semaine ? Est-ce que disposer de 7 fois plus de faits d'apprentissage ne permet-il pas de mieux entraîner les modèles ? Mais peut-être que les données jours sont si irrégulières qu'elles sont difficiles à prévoir avec précision, et l'agrégat final accumulera encore les erreurs ?

Ce genre de problématiques est classique dans la prévision de séries hiérarchiques et nous n'allons pas ici débattre des multiples solutions et approches possibles. Nous voyons cependant que dès le début du problème, le feature engineer est confronté à des choix stratégiques déterminants pour le reste du projet.

Inventivité et expressivité...

La création de features originales est un exemple important et plus « pur » de Feature Engineering. Il s'agit ici de créer de nouvelles features à partir de données brutes ou de features déjà existantes. Cette démarche est motivée par plusieurs objectifs.

Si l'on sait que l'algorithme qui va être utilisé est incapable de synthétiser un certain type de features (par exemple, une régression linéaire ne peut synthétiser d'elle-même le produit de deux features), l'introduction manuelle de cette feature va étendre l'expressivité du modèle.

Le « kernel trick » utilisé dans les Support Vector Machines est une variante sophistiquée de ce type de démarche : un noyau gaussien revient ainsi à plonger le problème dans l'espace des polynômes, équivalent de la création de l'infinité des monômes de tous degrés.

La création de features peut également être un moyen pour exprimer des connaissances a priori sur le problème à traiter : est-ce que moi, humain, entrevoit au moins une façon que pourrait avoir l'algorithme pour expliquer les ventes ? Un exemple typique ici sont les features tournant autour des prix de vente. Le prix de vente absolu est souvent bien moins déterminant que le fait qu'il constitue « une bonne affaire.

Ainsi, il sera intéressant, au-delà du prix de vente absolu, d'introduire le quotient du prix par rapport au prix moyen de cet article, ou encore par rapport au prix des produits concurrents, etc.

L'utilisation de la météo est un autre exemple où l’utilisation du Feature Engineering est presque indispensable. A partir d'un historique de météo, il sera ainsi intéressant d'introduire, pour chaque jour du passé, des features représentant des caractéristiques météo significatives pour les humains : pleut-il ou pas ? Fait-il très froid pour la saison ? Est-ce la première belle journée du printemps ? Les possibilités sont nombreuses. Il faudra également faire attention à ce que les prévisions météo, comme toutes les prévisions, souffrent d'une incertitude (assez forte au demeurant) et que les gens prennent leurs décisions en fonction du temps qu'il a fait dans les jours précédents mais également du temps prévu.

Ainsi dans le passé, il faudra veiller à utiliser des features concernant non pas le temps qu'il a fait mais le temps qui était prévu à ce moment-là. Si l'on ne dispose pas de l'historique des prévisions, une des solutions est de bruiter la météo réelle afin de simuler l'incertitude des prévisions.

De nos jours, avec la puissance de calcul accrue qui devient presque la norme, une philosophie différente gagne du terrain concernant cet aspect du Feature Engineering : laissons la machine trouver d'elle-même à partir des données brutes. Dans certaines applications liées à l'analyse d'image, cette approche donne de bons résultats. Il faut dire que dans ce domaine, nous humains, sommes relativement démunis: nous sommes bien incapables de donner un début sérieux de piste pour apprendre à reconnaître une forme à partir de pixels.
Néanmoins, il ne faut pas perdre de vue que cela vient au prix d'algorithmes plus complexes et plus longs à entrainer, et nombreux restent les cas où la création manuelle de features permet d'améliorer significativement la forecast accuracy.

… juste ce qu'il faut

Le problème de la sélection de features est également emblématique du Feature Engineering. Plutôt que de créer des features pour enrichir l'expressivité d'un modèle, ou lui proposer des leviers explicatifs, il s'agit ici au contraire d'en réduire le nombre. A quoi cela peut-il servir ?

Premièrement, à gagner en (futur) temps de traitement : un modèle construit avec moins de features est d'autant plus économique en temps d’apprentissage ou d’exploitation.

Ensuite, à gagner en Forecast Accuracy. En évitant de demander à l'algorithme de machine learning de rechercher une aiguille dans une botte de foin, c'est-à-dire quelques features utiles parmi une multitude d'inutiles, on obtient un modèle plus simple et souvent plus robuste : on accepte un peu de biais supplémentaires contre un gain en variance. Philosophiquement il s'agit du principe du rasoir d'Ockham, selon lequel l'explication la plus simple devrait être privilégiée.

A titre d'exemple nous avons étudié le comportement de trois algorithmes classiques : le Random Forest (RF), réputé robuste aux features parasites, la régression linéaire ordinaire (LR) et la régression linéaire avec pénalisation L_1 (LASSO), qui est elle-même parfois utilisée pour sélectionner les features.

Partant d'un problème possédant 3 variables explicatives réelles, nous avons mesuré l’erreur de prévision (RMSE) sur l'ensemble de test après qu'un certain nombre de features artificielles, sous forme de bruit aléatoire, ait été ajouté.

Etant donné le côté aléatoire de l'expérience, nous pouvons obtenir différents résultats mais une des situations les plus fréquentes est illustrée sur la figure ci-dessus. On y voit les trois algorithmes de plus en plus perturbés par les features parasites. Le Lasso se comporte toujours mieux que la régression linéaire du fait de sa capacité à rechercher des modèles sobres. Dans certains cas rares, nous avons observé qu'il pouvait même rester insensible aux features parasites. Dans tous les cas, cela illustre un des intérêts d'une sélection de features bien faite : de meilleurs modèles, plus simples et plus robustes. Cerise sur le gâteau, il est toujours intéressant pour une entreprise de connaître les features qui influencent le plus les ventes de ses produits.

Les techniques de sélection de features sont nombreuses : à côté de celles basées sur certains critères choisis, comme le maximum de variance, la recherche de colinéarité ou des formes de pénalisation. A priori, on trouve aussi des approches plus systématiques explorant les différentes combinaisons possibles de manière plus efficace qu'une recherche exhaustive : algorithmes génétiques et autres méthodes d'optimisation combinatoire.

Mettre en place une procédure de sélection de features efficace permet également de décomplexer la création de features farfelues, ce qui limite le risque de passer à côté des bonnes.

Il existe encore bien d'autres formes de "gestes métiers" faisant partie intégrante du Feature Engineering, et il faudrait bien plus que quelques pages pour les couvrir tous. Citons pêlemêle :

  • le traitement des features catégorielles : ces features non ordonnées et non comparables doivent être numérisées d'une façon ou d'une autre afin d'être acceptées par les algorithmes d'apprentissage. De nombreuses stratégies sont possibles pour cela : le one-hot encoding ou d'autres formes de plongements dans R^n (embeddings), ou encore le ranking, c'est-à-dire le remplacement des modalités de la variable catégorielle par des 'potentiels' numériques directement liés à la force du lien entre la variable et la variable cible.
  • Le traitement des valeurs manquantes, par exemple par l'introduction d'un « code » spécial signifiant « valeur inconnue », accompagné ou non d'une variable binaire indiquant si la feature est inconnue ou pas. Les valeurs manquantes peuvent également être imputées à partir des features connues. Dans ce cas, le data scientist aura à mettre en place un apprentissage dédié préalable permettant d'entraîner le modèle d'imputation.
  • Le traitement des features de type « texte libre » : l'absence de format clair dans ce genre de features textuelles (par exemple la description d'un article : « JEANS ROUGE T42 LEVI-STR ») requiert de s'inspirer de techniques de vectorisation telles que la transformation TF-IDF.
  • L'enrichissement du jeu de données par des faits additionnels permettant de faciliter l'apprentissage. Dans un problème récemment traité, l'objectif était de prévoir les ventes globales correspondant à des périodes promotionnelles. L'introduction de périodes promotionnelles « virtuelles » correspondant en réalité à des périodes où les articles n'étaient pas en promotion a permis de multiplier par 10 les faits d'apprentissage et de mieux paver l'axe temporel : l'influence de la saisonnalité sur les ventes a ainsi été mieux modélisée ;
  • La détection d'une colinéarité entre features, qu'il est nécessaire d'éliminer pour certains algorithmes sensibles à ce phénomène (les régressions linéaires en général) ; ceci peut être classé dans la problématique de sélection des features ;
  • etc.

Les possibilités sont nombreuses et chaque data scientist doit apprendre à se constituer petit à petit ses propres outils, avec une spécialisation métier plus ou moins forte.  Pourtant, bien que le champ d'action du Feature Engineering soit très riche, l'existence de quelques grands principes utilisés de manière routinière et quasi systématique nourrit l'ambition d'un processus de Feature Engineering automatisé.

Nous évoquerons cela, ainsi que d’autres perspectives futures, dans le troisième et dernier épisode de cette tribune: « visions d’avenir ».

Pourquoi et comment fiabiliser ses stocks à l'ère digitale ?

Livre Blanc Vekia

L’objectif principal d’une Supply Chain est de mettre à disposition du client final le bon produit, dans la bonne quantité de stock, au bon moment et au bon endroit. Mais cela ne suffit pas...

Récemment, une nouvelle génération d’outils d’approvisionnement est apparue sur le marché. Leur déploiement est permis par l’utilisation du Big Data et l’utilisation du Machine Learning.

Quelques infos clés du livre blanc :

  • Garantir une disponibilité maximale des produits ;
  • Maximiser le taux de disponibilité linéaire ;
  • Découvrez les nouvelles générations d’outils d’approvisionnement.
livre blanc IA et gestion des stocks
Téléchargez notre livre blanc