L'ingénierie des caractéristiques est une étape de prétraitement dans l'apprentissage automatique supervisé et la modélisation statistique qui transforme les données brutes en un ensemble d'entrées plus efficaces. Chaque entrée comprend plusieurs attributs, appelés caractéristiques. En fournissant aux modèles des informations pertinentes, l'ingénierie des caractéristiques améliore considérablement leur précision prédictive et leur capacité de prise de décision.
Au-delà de l'apprentissage automatique, les principes de l'ingénierie des caractéristiques sont appliqués dans divers domaines scientifiques, notamment la physique. Par exemple, les physiciens construisent des nombres sans dimension tels que le nombre de Reynolds en dynamique des fluides , le nombre de Nusselt en transfert de chaleur et le nombre d'Archimède en sédimentation . Ils développent également des premières approximations de solutions, telles que des solutions analytiques pour la résistance des matériaux en mécanique.
Regroupement
L'une des applications de l'ingénierie des caractéristiques est le regroupement d'objets caractéristiques ou d'objets échantillons dans un ensemble de données. En particulier, l'ingénierie des caractéristiques basée sur la décomposition matricielle a été largement utilisée pour le regroupement de données sous des contraintes de non-négativité sur les coefficients des caractéristiques. Il s'agit notamment de la factorisation de matrice non négative (NMF), de la factorisation de matrice tri-négative non négative (NMTF), de la décomposition/factorisation de tenseur non négative (NTF/NTD), , etc. Les contraintes de non-négativité sur les coefficients des vecteurs de caractéristiques exploités par les algorithmes susmentionnés produisent une représentation basée sur les parties, et différentes matrices de facteurs présentent des propriétés de regroupement naturelles. Plusieurs extensions des méthodes d'ingénierie des caractéristiques susmentionnées ont été rapportées dans la littérature, notamment la factorisation sous contrainte d'orthogonalité pour le regroupement dur et l'apprentissage multiple pour surmonter les problèmes inhérents à ces algorithmes.
D'autres classes d'algorithmes d'ingénierie de caractéristiques incluent l'exploitation d'une structure cachée commune à plusieurs ensembles de données interdépendants pour obtenir un schéma de clustering consensuel (commun). Un exemple est la classification multi-vues basée sur la décomposition de matrice de consensus (MCMD), qui exploite un schéma de clustering commun à plusieurs ensembles de données. MCMD est conçu pour générer deux types d'étiquettes de classe (clustering à variation d'échelle et clustering invariant d'échelle), et :
- est informatiquement robuste aux informations manquantes,
- peut obtenir des valeurs aberrantes basées sur la forme et l'échelle,
- et peut gérer efficacement des données de grande dimension.
Les décompositions couplées de matrices et de tenseurs sont populaires dans l'ingénierie des fonctionnalités multi-vues.
Modélisation prédictive
L'ingénierie des caractéristiques dans l'apprentissage automatique et la modélisation statistique implique la sélection, la création, la transformation et l'extraction de caractéristiques de données. Les composants clés comprennent la création de caractéristiques à partir de données existantes, la transformation et l'imputation de caractéristiques manquantes ou non valides, la réduction de la dimensionnalité des données grâce à des méthodes telles que l'analyse en composantes principales (ACP), l'analyse en composantes indépendantes (ACI) et l'analyse discriminante linéaire (LDA), et la sélection des caractéristiques les plus pertinentes pour l'entraînement du modèle en fonction des scores d'importance et des matrices de corrélation .
Les caractéristiques varient en importance. Même des caractéristiques relativement insignifiantes peuvent contribuer à un modèle. La sélection des caractéristiques peut réduire le nombre de caractéristiques pour éviter qu'un modèle ne devienne trop spécifique à l'ensemble de données d'entraînement (surajustement).
L'explosion des fonctionnalités se produit lorsque le nombre de fonctionnalités identifiées est trop important pour une estimation ou une optimisation efficace du modèle. Les causes courantes sont les suivantes :
- Modèles de fonctionnalités - implémenter des modèles de fonctionnalités au lieu de coder de nouvelles fonctionnalités
- Combinaisons de caractéristiques - combinaisons qui ne peuvent pas être représentées par un système linéaire
L'explosion des fonctionnalités peut être limitée via des techniques telles que : la régularisation , les méthodes du noyau et la sélection des fonctionnalités .
Automation
L'automatisation de l'ingénierie des fonctionnalités est un sujet de recherche qui remonte aux années 1990. Les logiciels d'apprentissage automatique qui intègrent l'ingénierie automatisée des fonctionnalités sont disponibles dans le commerce depuis 2016. La littérature universitaire connexe peut être grossièrement divisée en deux types :
- L'apprentissage par arbre de décision multirelationnel (MRDTL) utilise un algorithme supervisé similaire à un arbre de décision .
- La synthèse de caractéristiques approfondies utilise des méthodes plus simples.
Apprentissage par arbre de décision multi-relationnel (MRDTL)
L'apprentissage multi-relationnel par arbre de décision (MRDTL) étend les méthodes traditionnelles d'arbre de décision aux bases de données relationnelles , en gérant les relations de données complexes entre les tables. Il utilise de manière innovante des graphes de sélection comme nœuds de décision , affinés systématiquement jusqu'à ce qu'un critère de terminaison spécifique soit atteint.
La plupart des études MRDTL basent leurs implémentations sur des bases de données relationnelles, ce qui entraîne de nombreuses opérations redondantes. Ces redondances peuvent être réduites en utilisant des techniques telles que la propagation d'identifiants de tuple.
Implémentations open source
Il existe un certain nombre de bibliothèques et d'outils open source qui automatisent l'ingénierie des fonctionnalités sur les données relationnelles et les séries chronologiques :
- featuretools est une bibliothèque Python permettant de transformer des séries chronologiques et des données relationnelles en matrices de fonctionnalités pour l'apprentissage automatique.
- MCMD : un algorithme d'ingénierie de fonctionnalités open source pour le clustering conjoint de plusieurs ensembles de données.
- OneBM ou One-Button Machine combine les transformations de fonctionnalités et la sélection de fonctionnalités sur des données relationnelles avec des techniques de sélection de fonctionnalités.
[OneBM] aide les data scientists à réduire le temps d'exploration des données, leur permettant d'essayer et d'émettre de nombreuses erreurs en peu de temps. D'autre part, il permet aux non-experts, qui ne sont pas familiers avec la science des données, d'extraire rapidement de la valeur de leurs données avec un peu d'effort, de temps et de coût.
- La communauté getML est un outil open source pour l'ingénierie automatisée des fonctionnalités sur les séries temporelles et les données relationnelles. Il est implémenté en C / C++ avec une interface Python. Il s'est avéré au moins 60 fois plus rapide que tsflex, tsfresh, tsfel, featuretools ou kats.
- tsfresh est une bibliothèque Python pour l'extraction de fonctionnalités sur des données de séries chronologiques. Elle évalue la qualité des fonctionnalités à l'aide de tests d'hypothèses.
- tsflex est une bibliothèque Python open source permettant d'extraire des fonctionnalités à partir de données de séries chronologiques. Bien qu'elle soit entièrement écrite en Python, elle s'est avérée plus rapide et plus efficace en termes de mémoire que tsfresh, seglearn ou tsfel.
- seglearn est une extension pour les données de séries chronologiques séquentielles multivariées de la bibliothèque Python scikit-learn .
- tsfel est un package Python pour l'extraction de fonctionnalités sur des données de séries chronologiques.
- kats est une boîte à outils Python pour l'analyse des données de séries chronologiques.
Synthèse approfondie des fonctionnalités
L'algorithme de synthèse de caractéristiques profondes (DFS) a battu 615 des 906 équipes humaines lors d'une compétition.
Magasins vedettes
Le magasin de fonctionnalités est l'endroit où les fonctionnalités sont stockées et organisées dans le but explicite d'être utilisées pour entraîner des modèles (par des data scientists) ou pour faire des prédictions (par des applications qui ont un modèle entraîné). Il s'agit d'un emplacement central où vous pouvez créer ou mettre à jour des groupes de fonctionnalités créées à partir de plusieurs sources de données différentes, ou créer et mettre à jour de nouveaux ensembles de données à partir de ces groupes de fonctionnalités pour des modèles d'entraînement ou pour une utilisation dans des applications qui ne veulent pas calculer les fonctionnalités mais simplement les récupérer lorsqu'elles en ont besoin pour faire des prédictions.
Un magasin de fonctionnalités permet de stocker le code utilisé pour générer des fonctionnalités, d'appliquer le code aux données brutes et de fournir ces fonctionnalités aux modèles sur demande. Les fonctionnalités utiles comprennent le contrôle de version des fonctionnalités et les politiques régissant les circonstances dans lesquelles les fonctionnalités peuvent être utilisées.
Les magasins de fonctionnalités peuvent être des outils logiciels autonomes ou intégrés à des plateformes d’apprentissage automatique.
Alternatives
L'ingénierie des fonctionnalités peut être un processus long et sujet aux erreurs, car il nécessite une expertise du domaine et implique souvent des essais et des erreurs. Les algorithmes d'apprentissage profond peuvent être utilisés pour traiter un grand ensemble de données brutes sans avoir à recourir à l'ingénierie des fonctionnalités. Cependant, les algorithmes d'apprentissage profond nécessitent toujours un prétraitement et un nettoyage minutieux des données d'entrée. De plus, le choix de l'architecture, des hyperparamètres et de l'algorithme d'optimisation appropriés pour un réseau neuronal profond peut être un processus difficile et itératif.