Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Data Scientist et langage R
  3. Feature Engineering
Extrait - Data Scientist et langage R Autoformation aux bases de l'intelligence artificielle dans l'univers de la data (3e édition)
Extraits du livre
Data Scientist et langage R Autoformation aux bases de l'intelligence artificielle dans l'univers de la data (3e édition)
1 avis
Revenir à la page d'achat du livre

Feature Engineering

Feature Engineering, les bases

Avec moins de 100 000 entrées dans Google, le Feature Engineering, que l’on pourrait traduire avec un peu d’imagination comme étant le Génie des données, pourrait sembler le parent pauvre du machine learning et de ses 20 millions de liens. Pourtant, celui-ci représente souvent plus de la moitié de l’effort à fournir sur un projet de data sciences.

1. Positionnement du problème

Le Feature Engineering, qui concerne les techniques d’ingénierie utilisées pour travailler sur les attributs du problème que l’on étudie, représente un des aspects les plus délicats des data sciences.

En effet, les caractéristiques d’un problème donné ne se dévoilent pas toujours de façon naturelle et évidente.

Il faut souvent beaucoup d’efforts pour imaginer quels pourraient être les bons attributs, les créer, les sélectionner, les tester et les transformer pour les rendre pertinents et assimilables par nos algorithmes. Les bonnes prédictions nécessitent de bons attributs (en anglais predictors ou features).

Le travail sur le choix et le paramétrage des modèles, la mesure des erreurs de prédiction (ou de classification) et l’interprétation attentive des résultats sont trois éléments indissociables de la discipline dénommée Feature Engineering.

L’idée générale est d’affiner et de transformer les données brutes (data) afin que celles-ci nous apportent un gain d’informations. Mathématiquement, ce gain correspond à une diminution d’entropie. En quelque sorte, l’acquisition d’informations significatives et utilisables diminue le désordre ambiant au travers de notre compréhension du phénomène étudié.

Le premier écueil est souvent la détermination de l’objectif même de l’étude ! En effet la question posée n’est pas toujours complètement explicite et on traduira souvent l’objectif de l’étude en termes réducteurs mais assez simples pour faire l’objet d’une prédiction (par exemple, il serait difficile de prétendre prédire la satisfaction...

PCA classique, éléments mathématiques

L’assimilation de cette section n’est pas indispensable à la mise en œuvre opérationnelle des concepts décrits plus haut.

Cette petite section devrait vous permettre de lire et déchiffrer avec profit la littérature sur la PCA et donne un aperçu de quelques techniques matricielles courantes (dont le changement de base).

Avec les conventions suivantes :

  • n : nombre de lignes de données.

  • p : nombre de features (c’est-à-dire de dimensions).

  • q : nombre (réduit) de dimensions, que l’on aimerait inférieur à p !

  • i : indice, de 1 à n.

  • j : indice, de 1 à p.

  • k : indice, de 1 à q.

  • X : matrice (xij) de données centrées, ou centrées et réduites (on a appliqué une transformation préalable, centrée signifiant avoir soustrait à chaque colonne sa moyenne, réduite signifiant que l’on a de plus divisé ce résultat par l’écart-type de la colonne ; dans la littérature anglaise centré et réduit c’est le z-score). Attention deux colonnes ne doivent pas être colinéaires (c’est-à-dire une colonne ne doit pas être complètement proportionnelle à l’autre).

  • X’ : matrice (x’ij) des données...

Réduction des données (data reduction)

Cette petite section ne concerne pas stricto sensu le "Feature Engineering", mais a également trait au nettoyage des données avant l’utilisation d’un algorithme, souvent lié au machine learning. Comme la confusion est courante, jetons un œil sur cette notion. Ici le problème est inverse, la préparation ne porte plus sur les "colonnes" mais sur les "lignes".

Cette opération consiste dans l’extraction puis l’utilisation d’un sous-ensemble cohérent de lignes issues d’un dataset de grand volume. Elle est parfois utile pour économiser des ressources machines, mais aussi pour améliorer l’efficacité de certains algorithmes ou pour en diminuer l’exposition au "bruit".

Cette notion de bruit est tout à fait intuitive dans le cas de l’interprétation d’images ou de sons, où on est habitué à l’idée que les capteurs soient moins efficaces que souhaité et y introduisent du "bruit". Ce problème d’introduction de bruit n’est pas propre aux capteurs "physiques" : du "bruit" peut être introduit accidentellement dans n’importe quel type de données en fonction du processus de captation de l’information.

Une des techniques...

Réduction de la dimensionnalité et entropie

Il peut à juste titre sembler gênant de baser toute sa stratégie de réduction de la dimensionnalité sur l’algèbre linéaire, comme on le fait avec la PCA, car ces techniques pourraient embarquer certaines hypothèses simplificatrices sur la nature des données sur lesquelles le data scientist a peu de prise.

Le concept "d’entropie et d’information partagée" décrit dans l’introduction de cet ouvrage semble plus général et il semble donc légitime de bâtir une part de sa stratégie sur ces concepts.

Dans le chapitre Introduction, nous avons exprimé l’information mutuelle de deux variables comme étant représentable par l’expression suivante (en fonction de l’entropie) : I(X,Y) = H(X) + H(Y) - H(X,Y)

Cette expression s’annulant dans le cas de deux variables dépendantes. Ici la notion de dépendance ne suppose pas une dépendance linéaire ou même une dépendance linéaire après une quelconque transformation.

1. Description théorique du problème

Nous allons appeler S (comme set) l’ensemble de nos variables explicatives xi et y notre variable de réponse.

Notre objectif est de sélectionner un sous-ensemble de S comportant p features, à savoir certaines variables explicatives (features), nous nommerons ce sous-ensemble s et m son nombre de features.

Il nous faut donc un critère de sélection.

En première approximation, on imagine rapidement qu’il faut trouver l’ensemble de features s qui possède la plus grande dépendance avec la cible y. En effet, si un ensemble de features possède plus d’informations mutuelles qu’un autre avec la cible, cet ensemble sera le plus à même de prédire la cible.

Comme nous avons décidé d’utiliser l’information mutuelle, notre mesure de dépendance sera images/eq924.png.

L’idée sera alors d’explorer toutes les possibilités d’ensemble s inclus dans S, de calculer cette dépendance et de retenir la plus élevée.

Ce qui, dès que p est peu grand, induit à calculer un très grand nombre de combinaisons d’informations...