Feature Engineering : définition et importance en Machine Learning

-
7
 m de lecture
-
feature engineering

Le Feature Engineering consiste à extraire des caractéristiques des données brutes afin de résoudre des problèmes spécifiques à un domaine d’activité grâce au Machine Learning. Découvrez tout ce que vous devez savoir : définition, algorithmes, cas d’usage, formations…

L’intelligence artificielle est de plus en plus utilisée dans tous les domaines. Toutefois, pour révéler tout son potentiel, un modèle d’analyse prédictive requiert d’exploiter pleinement les données à sa disposition.

Pour y parvenir, il est important de choisir le bon algorithme et d’entraîner les modèles de Machine Learning. En réalité, le plus important est d’utiliser le « Feature Engineering » ou ingénierie des caractéristiques.

En effet, les caractéristiques des données ont un impact direct sur les modèles prédictifs et leurs résultats. Plus les caractéristiques sont préparées et minutieusement choisies, plus les résultats seront précis. Elles doivent décrire la structure inhérente aux données.

De manière générale, les résultats dépendent du modèle choisi, des données à disposition et des caractéristiques préparées. L’encadrement du problème et les mesures utilisées pour estimer l’exactitude jouent aussi un rôle majeur.

Même si un modèle n’est pas optimal, il permet d’atteindre de bons résultats. L’important est d’utiliser de bonnes caractéristiques afin de pouvoir utiliser des modèles moins complexes et plus rapides à exécuter, plus simples à comprendre et à maintenir.

De la même manière, une bonne ingénierie de caractéristiques permet d’obtenir de bons résultats même si les paramètres choisis ne sont pas optimaux. Il n’est donc pas nécessaire de chercher le meilleur modèle et les paramètres les plus optimisés, à condition d’avoir les bonnes caractéristiques.

Celles-ci permettent de se rapprocher du problème sous-jacent et de représenter les données avec précision. Mais alors, qu’est-ce que le Feature Engineering ?

Qu'est-ce que le Feature Engineering ?

Le Feature Engineering est un processus qui consiste à transformer les données brutes en caractéristiques représentant plus précisément le problème sous-jacent au modèle prédictif. Pour faire simple,il s’agit d’appliquer une connaissance du domaine pour extraire des représentations analytiques à partir des données brutes et de les préparer pour le Machine Learning.

Il s’agit de la première étape dans le développement d’un modèle de Machine Learning prédictif. Ceci permet d’accroître l’exactitude du modèle sur les nouvelles données inconnues.

Rappelons en effet que les algorithmes de Machine Learning apprennent une solution à un problème à partir de données d’échantillons. Ainsi, le Feature Engineering permet de déterminer quelle est la meilleure représentation des données d’échantillon pour apprendre la solution au problème.

C’est très important, car le succès d’un projet d’intelligence artificielle ou de Machine Learning dépend souvent de la représentation des données. Les algorithmes doivent être en mesure de comprendre les  » inputs « .

Le Feature Engineering repose sur un ensemble de procédures et de méthodes bien définies. Les procédures à utiliser varient en fonction des données, et c’est avec l’expérience et la pratique que l’on apprend lesquelles utiliser en fonction du contexte.

Qu'est-ce qu'une " feature " ?

Les données sont présentées en ligne dans des tableaux, tandis que leurs attributs et leurs variables sont présentés en colonnes. Un attribut peut être une caractéristique.

Cependant, dans le contexte d’un problème, une caractéristique est un attribut utile ou pertinent par rapport à ce problème. Il s’agit d’une part importante d’une observation visant à en apprendre davantage sur la structure du problème modélisé.

Si l’on prend l’exemple d’un problème de vision par ordinateur, une image est une observation tandis qu’une caractéristique pourrait être une ligne dans cette image. Dans le traitement naturel du langage, l’observation peut être un document, tandis qu’une caractéristique peut être une phrase ou un mot de ce document. Dans la reconnaissance de discours, une élocution complète peut être une observation tandis qu’un mot seul peut être une caractéristique.

Les différentes approches du Feature Engineering

Le Feature Engineering n’est pas un processus unique. Il existe de multiples approches, et celle à adopter dépend du sous-problème spécifique que l’on cherche à résoudre.

La « Feature Importance » consiste à estimer de manière objective l’utilité d’une caractéristique. Cette démarche peut s’avérer utile pour sélectionner les caractéristiques. Chacune d’entre elles reçoit un score, et elles peuvent ainsi être classées en fonction de leurs scores. Celles avec le plus haut score peuvent être choisies pour être incluses dans l’ensemble de données.

Ce score d’importance peut aussi être utilisé pour extraire ou construire de nouvelles caractéristiques similaires, mais différentes de celles déjà considérées comme utiles. De manière générale, une caractéristique peut être considérée importante si elle est hautement corrélée avec la variable dépendante, à savoir l’élément à prédire.

On utilise généralement les coefficients de corrélation pour mesurer l’importance d’une caractéristique. Certains algorithmes de modélisation prédictive plus complexes effectuent cette sélection de manière interne parallèlement à la construction du modèle. C’est le cas des algorithmes MARS ou des forêts aléatoires.

L’extraction de caractéristiques ou Feature Extraction permet de construire automatiquement de nouvelles caractéristiques à partir de données brutes. C’est très utile lorsque les observations sont trop volumineuses dans leur forme brute pour être modélisées directement par des algorithmes prédictifs.

En guise d’exemples, on peut citer les données textuelles, audio, et les images. Ceci concerne aussi les données tabulaires dotées de millions d’attributs.

Le but de la Feature Extraction est de réduire automatiquement la dimensionnalité de ces types d’observations en un ensemble plus petit afin de pouvoir le modéliser. On peut utiliser des méthodes comme l’analyse de composant principal ou le clustering non supervisé pour les données tabulaires, ou la détection de bordures pour les images.

La Feature Selection ou sélection de caractéristiques est une autre méthode, permettant de supprimer les attributs des données inutiles ou redondantes dans le contexte du problème à résoudre. Cette approche consiste à sélectionner automatiquement le sous-ensemble le plus utile pour la résolution du dit problème.

Les algorithmes peuvent utiliser une méthode comme la corrélation ou d’autres méthodes de Feature Importance pour classer les caractéristiques et les sélectionner. Une autre technique plus avancée consiste à créer et à évaluer des modèles automatiquement jusqu’à trouver le plus approprié pour la prédiction.

La construction de caractéristique ou Feature Construction consiste à construire manuellement de nouvelles caractéristiques à partir de données brutes. Pour ce faire, il est nécessaire de structurer les données d’échantillon et à les exposer aux algorithmes de modélisation prédictive en fonction du problème à résoudre.

Dans le cas des données tabulaires, il s’agira par exemple d’agréger et de combiner des caractéristiques pour en créer de nouvelles ou à l’inverse de les décomposer. Cette tâche requiert beaucoup de temps et de réflexion, mais fait toute la différence en termes de performances d’un modèle de Machine Learning.

Le Feature Learning ou apprentissage de caractéristiques consiste à identifier et à utiliser automatiquement les caractéristiques des données brutes.Le but est d’éviter d’avoir à construire ou extraire des caractéristiques manuellement.

Les méthodes de Deep Learning les plus modernes permettent d’y parvenir. On peut citer les auto-encodeurs ou les machines Boltzmann restreintes. Ces techniques parviennent à apprendre automatiquement des représentations abstraites de caractéristiques de façon non supervisée ou semi-supervisée.

Ces représentations de caractéristiques compressées peuvent ensuite être utilisées pour la reconnaissance de discours, la classification d’images, ou encore la reconnaissance d’objets. Malheureusement, cette approche fonctionne en « boîte noire » et ne permet pas de comprendre comment les représentations ont été apprises. Le Feature Engineering ne peut donc pas être entièrement automatisé.

Le processus de Feature Engineering

Le Feature Engineering s’inscrit dans le processus de Machine Learning. Après avoir défini un problème, il s’agit de sélectionner et de préparer les données. Les données sont collectées, agrégées, nettoyées et formatées pour pouvoir être utilisées.

Le Feature Engineering survient durant l’étape de transformation des données de leur état brut à un état adapté à la modélisation. Avant cette étape, les données sont dans un format ne permettant pas leur manipulation.

La suite du processus de Machine Learning consiste à modéliser les données en créant des modèles, en les évaluant et en les configurant. Dernière étape : la présentation des résultats. Chaque fois que nouvelles perspectives sont identifiées dans les données, ce processus doit être répété dans le même ordre.

Le processus de Feature Engineering n’est donc pas indépendant. Il s’agit d’un procédé itératif étroitement lié à la sélection de données et l’évaluation de modèle.

En fonction du problème à résoudre, on utilise les différentes méthodes de Feature Engineering. Après avoir sélectionné les caractéristiques appropriées, on évalue l’exactitude du modèle en le testant sur de nouvelles données à l’aide des caractéristiques choisies.

Il est très important de bien définir le problème afin de pouvoir essayer différents modèles, différentes configurations et ensembles de modèles. La méthode de test doit quant à elle permettre de mesurer les performances avec précision.

À quoi sert le Feature Engineering ?

Le Feature Engineering peut être utilisé à de nombreux effets. Il sert par exemple à décomposer les attributs de catégories, à décomposer un date-time, ou encore à recadrer des quantités numériques.

Voici quelques exemples de cas d’usage concrets pour mieux comprendre. Lors de la compétition de Machine Learning KDD Cup 2010, les participants devaient modéliser la façon dont les étudiants apprennent.

Un corpus de résultats d’étudiants sur des problèmes d’algèbre était fourni et devait être utilisé pour prédire les futures performances de ces étudiants. Les gagnants du concours sont un groupe d’étudiants de la National Taiwan University, qui ont réussi à simplifier la structure du problème grâce au Feature Engineering en créant des millions de caractéristiques binaires.

Cette structure a permis à l’équipe d’utiliser des méthodes linéaires très simples, mais hautement performantes pour créer le meilleur modèle prédictif. Des éléments non linéaires comme la temporalité ont été réduits à l’état d’indicateurs binaires. Une démonstration des possibilités offertes par les indicateurs binaires.

Un autre exemple est celui de l’heritage health prize : un prix de trois millions de dollars, décerné à l’équipe capable de prédire quels patients seraient admis à l’hôpital au cours de l’année suivante. Beaucoup de participants ont utilisé le Feature Engineering.

Pourquoi automatiser le Feature Engineering ?

Le Feature Engineering est un processus itératif, qui requiert beaucoup de temps, de ressources et d’expertise technique. Une équipe de Data Science doit aussi travailler avec des experts du domaine d’activité pour leur fournir des modèles ML adaptés à leurs besoins.

L’automatisation de ce processus a le potentiel de bouleverser la Data Science. Elle permet de simplifier l’accès au Machine Learning, d’éliminer les besoins en création manuelle de requêtes SQL, et d’accélérer les projets de Data Science même sans connaissances du domaine d’activité. Grâce à l’automatisation, des millions d’hypothèses peuvent être explorées en quelques heures.

Grâce aux produits AutoML, l’automatisation du Feature Engineering est désormais possible. Avec AutoML 2.0, la durée du cycle complet des données brutes jusqu’au développement du modèle de Machine Learning peut être réduite à quelques jours au lieu de plusieurs mois. Ainsi, les équipes de Data Science peuvent délivrer de nombreux modèles ML.

Comment apprendre le Feature Engineering ?

Le Feature Engineering est au coeur de la Data Science et du Machine Learning. En choisissant les formations DataScientest, vous pouvez apprendre à maîtriser cette discipline au même titre que toutes les techniques et outils de science des données.

En effet, le Machine Learning occupe une place essentielle de nos programmes Data Scientist, Data Analyst ou ML Engineer. Vous apprendrez aussi la programmation en Python, les techniques de manipulation de bases de données, le Deep Learning ou encore la Data Visualization.

Nos formations sont conçues par des professionnels et répondent directement aux besoins des entreprises. Les apprenants reçoivent un diplôme certifié par l’Université de la Sorbonne, et 93% d’entre eux trouvent un emploi immédiatement.

Chacun de nos parcours adopte une approche innovante de Blended Learning, alliant l’apprentissage à distance et le présentiel. Ces formations peuvent être effectuées en Formation Continue ou en mode BootCamp intensif.

Nos cursus peuvent être financés par le Compte Personnel de Formation, ou par Pôle Emploi via l’AIF. N’attendez plus et découvrez dès à présent nos formations Data Science !

Vous savez tout sur le Feature Engineering. Découvrez notre introduction au langage de programmation Python et notre guide sur le Machine Learning.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?