adimas - Fotolia
Feature engineering : cinq conseils essentiels pour améliorer vos modèles IA
De la compréhension de l'objectif escompté d'un modèle algorithmique à la prise en compte des spécificités du domaine d'application, des experts partagent les méthodes pour faciliter la phase de feature engineering.
Lors de l'entraînement d'un modèle algorithmique, le feature engineering est une étape complexe. Elle joue un rôle important dans l'organisation des jeux de données brutes pour les différentes techniques de deep learning et de machine learning. Il s'agit d'un processus itératif qui évolue au fur et à mesure que les data scientists explorent différentes hypothèses sur ce que les données représentent et les types d'algorithmes qu'ils choisissent pour atteindre un résultat spécifique.
Dans cet article, nous partageons cinq conseils essentiels proposés par des spécialistes en data science pour accomplir au mieux cette étape.
Qu’est-ce que le feature engineering ?
À un haut niveau, le feature engineering est la pratique qui consiste à transformer des données brutes en la forme la plus appropriée pour un algorithme de machine learning spécifique. Piyanka Jain, présidente et directrice générale d'Aryng, une société de conseil en data science, explique que cette technique se décompose en deux parties distinctes.
La première partie consiste à préparer les données en vue de l'élaboration d'un modèle. Cela comprend des processus tels que la détection, puis la suppression des valeurs aberrantes et manquantes. La deuxième partie implique la création et la transformation des attributs (features) communs aux données dans le jeu pour rendre le modèle le plus efficace possible, y compris une combinaison de métriques telles que la précision, le rappel ou la levée.
Prenons un exemple évocateur. Nous souhaitons connaître l’âge des clients en seconde et en première classe d’une compagnie ferroviaire. Une première analyse peut permettre d’obtenir une moyenne d’âge, mais il sera plus intéressant de créer des catégories socio-professionnelles à partir des données clients disponibles. La création de ces nouveaux attributs correspond à une forme simple de feature engineering.
Le feature engineering fait également partie de ce que Piyanka Jain appelle l'étape de compréhension du projet complet de data science. Auparavant, il faut formuler une problématique commerciale, planifier l’analyse et la collecte de données.
« Avant d'en arriver au feature engineering, nous avons déjà fait une bonne partie de l'encadrement commercial autour de ce que le modèle devrait fournir, comment il va être utilisé et quelles sont les meilleures hypothèses autour du problème que le modèle est en train de résoudre", liste Piyanka Jain.
L’importance du feature engineering
« Le feature engineering est un processus qui consiste à rendre les données exploitables pour le modèle. Il est essentiel pour garantir que vos modèles d’intelligence artificielle fonctionnent correctement », assure Ivan Yamshchikov, évangéliste IA chez ABBYY, un éditeur d'outils de traitement de documents.
Un bon feature engineering nécessite de faire appel à des experts du domaine d’application, des sources de données et la manière dont les données ont été traitées et gérées. Divers outils apparaissent pour automatiser certains aspects de cette pratique, mais de nombreux experts considèrent qu'ils augmentent plutôt qu'ils ne remplacent les compétences humaines.
« Alors que les éditeurs proposent de plus en plus de fonctionnalités automatisées de feature engineering, en particulier avec la reconnaissance d'images, cette automatisation n'est toujours pas possible pour la majorité des cas d’usage », indique Tom Dyar, spécialiste produit chez InterSystems, un éditeur d'outils pour bases de données.
1. Une expertise nécessaire dans le domaine ciblé
L’un des principaux conseils à retenir en ce qui concerne le feature engineering, c’est de faire appel à des experts du sujet que l’on souhaite traiter. Ce spécialiste peut accompagner les data engineers et les data scientists sur la manière de structurer les données.
SoftSmile, qui utilise l'IA pour créer des prothèses orthodontiques, a constaté d'énormes progrès dans le traitement des données en appliquant la connaissance du domaine de ses données cliniques au processus de feature engineering. Khamzat Asabaev, co-fondateur et PDG de SoftSmile, témoigne. Son équipe a constaté que les techniques de prétraitement standard telles que l'élimination du bruit et le filtrage basé sur la corrélation étaient efficaces sur le plan informatique, mais ne pouvaient résoudre qu'une partie du problème. Les experts du domaine d’application, ici des orthodontistes, peuvent aider à accélérer la phase de préparation de données.
En pratique, cela implique une coopération étroite avec des cliniciens experts pour construire un cadre pour le feature engineering qui est ensuite améliorée par l'application de techniques de filtrage.
2. Entraîner les modèles en continu
« Une autre astuce consiste à entrainer les modèles d'IA en continu, c'est ce que l'on appelle communément l'analyse exploratoire des données », ajoute Ivan Yamshchikov. Cela s’avère particulièrement important si les modèles sont utilisés pour prédire des résultats susceptibles de sauver des vies, comme dans un environnement hospitalier.
Cette pratique consiste à trouver la combinaison optimale de sources de données pour former plusieurs modèles. Ensuite, il faut trouver le modèle qui offre la meilleure performance globale, une score qui peut changer avec l'introduction de nouvelles données. Imaginons un Hôpital qui utilise une IA pour prédire quand un patient aura besoin d'un lit en se basant sur les résultats de certains tests médicaux. Les modèles devraient demander quels tests effectuer tout en tenant compte de la précision des tests, du temps nécessaire et des coûts. Il faut répondre à ces questions avant d’entraîner un réseau de neurones pour prédire quand ou si un patient devra être hospitalisé.
Bien que l'exécution d'un plus grand nombre de tests puisse améliorer la précision finale des recommandations obtenues avec l'algorithme, cela pourrait également ralentir le processus et entraîner, finalement, un effet pervers. L'un des moyens de trouver la combinaison optimale de sources de données est donc de former plusieurs modèles et de trouver celui qui donne les meilleurs résultats. Toutefois ce processus peut être long et difficile.
3. Commencer par les techniques standards
Les data scientists peuvent être tentés d'expérimenter des techniques de pointe, mais cela peut ajouter une complexité inutile.
« Le risque d'une expérimentation trop poussée est de surcharger le modèle avec des données supplémentaires inutiles », estime Rosaria Silipo, responsable des données chez KNIME, un éditeur d'une solution d'analytique open source. Elle recommande de commencer avec des techniques standards et d'expérimenter plus tard si nécessaire.
Par exemple, avec l'analyse des séries chronologiques (time series en VO), les data scientists devraient commencer par des techniques communess telles que les différences de premier ordre ou des conversions logarithmiques pour transformer les données en une série chronologique stationnaire. Si ces techniques ne fonctionnent pas, vous pouvez alors envisager les expérimentations.
4. Calculer la corrélation entre les valeurs des features
Un autre conseil essentiel et facile à mettre en œuvre est de calculer la corrélation entre les valeurs des attributs. « Cela permet de ne sélectionner que les features appropriées en supprimant doublons », assure Alex Ough, architecte CTO senior chez Sungard Availability Services, un fournisseur de services de production et de récupération informatique.
Il existe un certain nombre d'outils populaires, en plus du support natif de langages de programmation comme R et Python, qui aident à accomplir cette tâche. L'un de ces outils : la librairie Pandas-profiling, écrite en Python, qui fournit différents types de matrices de corrélation ainsi que d'autres fonctionnalités utiles, comme l'analyse des données d’attributs, les valeurs manquantes, les statistiques, etc.
« La méthode de calcul de la corrélation consiste à comparer les patterns de variation de deux valeurs de features », précise Alex Ough. Par exemple, une valeur augmente-t-elle ou diminue-t-elle également lorsque l'une des valeurs augmente ? Le calcul de la corrélation sera plus précis si les valeurs de features sont uniques et comportent moins de données incomplètes.
5. Ne pas s'éloigner de l'objectif final
Michael Yurushkin, directeur technique et fondateur de Broutonlab, un cabinet de conseil en data science basé en Russie, recommande de commencer un projet en travaillant avec l'entreprise pour déterminer ce qui est prédictible et le traduire en features.
« En principe, bous pouvez décider quel modèle serait le plus performant avant même de commencer la modélisation si vous connaissez l'objectif final", insiste Michael Yurushkin.
Par exemple, Broutonlab avait un client qui voulait créer une application pour reconnaître des objets et des personnes spécifiques dans une vidéo, puis extraire des images automatiquement et les envoyer à l'utilisateur. Les modèles utilisés par le client ne faisaient pas l'affaire. Broutonlab a commencé par examiner les flux vidéo pour comprendre comment l'objectif pouvait être atteint et a construit plusieurs modèles de tests pour valider différentes approches. Ils ont ainsi trouvé la combinaison optimale de modèles et de features, réduit le temps de traitement vidéo de trois heures à 30 minutes et rationalisé le travail manuel requis dans le processus.