Table of Contents

L'ingénierie des fonctionnalités est l'une des étapes les plus critiques et les plus importantes dans la construction de modèles d'apprentissage machine efficaces. Elle implique l'art et la science de transformer des données brutes en fonctionnalités significatives qui améliorent significativement la performance, la précision et les capacités de généralisation des modèles. C'est le processus d'extraction d'informations significatives des données brutes et de transformation en fonctionnalités qui maximisent la puissance prédictive de votre modèle.

Ce guide complet explore les concepts fondamentaux, les techniques pratiques et les meilleures pratiques pour l'ingénierie des fonctionnalités. Nous examinerons la théorie sous-jacente, fournirons des exemples concrets et discuterons de la façon d'appliquer ces méthodes efficacement à différents scénarios d'apprentissage automatique. À la fin de cet article, vous aurez une compréhension approfondie de la façon de transformer vos données brutes en fonctionnalités puissantes qui permettent à vos modèles d'apprendre plus efficacement et de faire de meilleures prédictions.

Comprendre l'ingénierie des fonctions : la fondation du succès de l'apprentissage automatique

L'ingénierie des fonctions est le processus de sélection, de manipulation et de transformation des données brutes en fonctionnalités qui peuvent être utilisées dans l'apprentissage supervisé. Ce processus sert de pont entre les données brutes non structurées et les entrées prêtes à être utilisées par les modèles que les algorithmes d'apprentissage automatique peuvent traiter efficacement.

Pourquoi l'ingénierie des caractéristiques compte

L'ingénierie et la sélection des caractéristiques ont pour but d'améliorer les performances des algorithmes d'apprentissage automatique. En conséquence, la précision des modèles sur les données invisibles est améliorée. La qualité et la pertinence des fonctionnalités déterminent directement la manière dont un modèle d'apprentissage automatique peut apprendre les modèles et faire des prédictions précises.

L'ingénierie des fonctionnalités vous force à approfondir vos données, à découvrir les tendances et les modèles que vous avez peut-être négligés. Cette compréhension plus approfondie de vos données améliore non seulement la performance du modèle, mais fournit également des informations précieuses sur le problème sous-jacent que vous essayez de résoudre.

De façon générale, nous pouvons diviser l'ingénierie des fonctionnalités en deux composantes : 1) créer de nouvelles fonctionnalités et 2) les traiter de façon à ce qu'elles fonctionnent de façon optimale avec l'algorithme d'apprentissage automatique à l'étude.

Les composantes de base de l'ingénierie des caractéristiques

Il se compose de cinq processus : création de fonctionnalités, transformations, extraction de fonctionnalités, analyse exploratoire des données et benchmarking. Chacun de ces processus joue un rôle essentiel dans la préparation de vos données pour l'apprentissage automatique :

  • Création de caractéristiques:[ Développer de nouvelles fonctionnalités à partir de données existantes utilisant la connaissance et la créativité du domaine
  • Transformation des caractéristiques :[ Modifier les caractéristiques existantes pour mieux représenter les modèles sous-jacents
  • Extraction de caractéristiques:[ Réduire la dimensionnalité tout en préservant les informations importantes
  • Analyse des données exploratoires :[ Comprendre la distribution des données, les relations et les problèmes potentiels
  • Marquage de bord:[ Évaluation de l'efficacité des caractéristiques au moyen de mesures du rendement du modèle

Techniques essentielles d'ingénierie des caractéristiques

Comprendre et appliquer les bonnes techniques d'ingénierie est crucial pour construire des modèles d'apprentissage machine robustes. Examinons les méthodes les plus importantes en détail, en examinant quand et comment utiliser chaque technique efficacement.

Élargissement des fonctions : Normalisation et normalisation

L'échelle des fonctions est une étape critique du prétraitement de l'apprentissage automatique qui normalise l'éventail des fonctions, en veillant à ce qu'elles contribuent également au processus d'apprentissage du modèle.

Comme la gamme de valeurs des données brutes varie considérablement, dans certains algorithmes d'apprentissage automatique, les fonctions objectives ne fonctionneront pas correctement sans normalisation. Considérez un ensemble de données contenant à la fois l'âge (allant de 0 à 100) et le revenu (allant de 0 à 1 000 000). Sans échelle, la fonction de revenu dominerait les calculs de distance et l'optimisation de descente de gradient simplement en raison de sa plus grande ampleur, non parce qu'elle est plus importante pour les prédictions.

Normalisation (normalisation Z-Score)

Les échelles de normalisation se caractérisent par la soustraction de la moyenne et la division par l'écart-type, ce qui transforme les données de sorte que les caractéristiques n'ont aucune variance moyenne et unitaire, ce qui aide beaucoup de modèles d'apprentissage automatique à mieux fonctionner.

Cette méthode est largement utilisée pour la normalisation dans de nombreux algorithmes d'apprentissage automatique (par exemple, les machines vectorielles de soutien, la régression logistique et les réseaux neuronaux artificiels). La normalisation est particulièrement efficace lorsque vos données sont distribuées approximativement normalement et lorsque vous utilisez des algorithmes qui supposent que les fonctionnalités sont centrées autour de zéro.

Quand utiliser la normalisation:[

  • Les algorithmes utilisent des métriques de distance — KNN, K-Means et SVM calculent les distances, de sorte que les caractéristiques ont besoin d'échelles similaires pour éviter la domination par des caractéristiques à grande échelle.
  • Optimisation de la descente progressive — Les réseaux neuraux et la régression linéaire/logistique convergent plus rapidement lorsque les caractéristiques sont normalisées.
  • régression régularisée : La régression LASSO et Ridge supposent que les caractéristiques sont sur la même échelle que la moyenne 0.
  • Analyse des composantes principales : L'APC est basée sur la variance, de sorte que la normalisation assure une contribution égale de toutes les caractéristiques.

Normalisation de la taille minimale

Aussi connu sous le nom de min-max scalling ou min-max normalization, le rescalinage est la méthode la plus simple et consiste à rescaligner la gamme de caractéristiques pour étaler la gamme en [0, 1] ou [−1, 1]. Cette technique préserve la forme de distribution originale de vos données tout en assurant que toutes les valeurs entrent dans une gamme délimitée spécifique.

La normalisation est très sensible aux valeurs aberrantes. Si vous avez une valeur unique très élevée ou très faible, elle peut écraser la plupart des autres points de données dans une très petite partie de la plage [0, 1], potentiellement perdre quelques informations sur leurs différences relatives.

Quand utiliser la normalisation:

  • Réseaux neuronaux avec des fonctions d'activation spécifiques — Les activations sigmoïdes et tanh fonctionnent mieux avec des entrées dans une gamme délimitée comme [0, 1].
  • Traitement d'images — Les valeurs de pixels sont naturellement limitées (0–255) et la normalisation à [0, 1] est une pratique courante.
  • Lorsque vous connaissez les limites min/max — Si vos données ont des limites naturelles (comme des pourcentages, des cotes ou des scores), la normalisation préserve ces limites.

Écaillage robuste pour les données plus importantes

Une échelle robuste, aussi connue sous le nom de standardisation avec la gamme médiane et interquartile (IQR), est conçue pour être robuste aux valeurs aberrantes. Lorsque votre ensemble de données contient des valeurs aberrantes importantes que vous ne voulez pas supprimer, une échelle robuste offre une alternative plus stable aux techniques de normalisation standard.

Pour les ensembles de données avec valeurs aberrantes, RobustScaler est une meilleure option. Il utilise la plage médiane et interquartile (IQR) au lieu de l'écart moyen et standard, ce qui le rend moins sensible aux valeurs extrêmes. Cette approche garantit que les valeurs aberrantes n'influencent pas de façon disproportionnée les paramètres de calibration, ce qui permet une distribution plus équilibrée des caractéristiques.

Encodage des variables catégoriques

Les modèles d'apprentissage automatique sont souvent confrontés à des variables catégoriques parce qu'ils dépendent d'entrées numériques. La conversion de données catégoriques en représentations numériques est essentielle pour la plupart des algorithmes d'apprentissage automatique.

Encodage à une seule hotte

Encodage à simple hot : Crée une colonne binaire pour chaque catégorie. La meilleure pour les données non ordinaires (p. ex., "Rouge", "Blue", "Green"). Cette technique transforme une seule caractéristique catégorisée avec n catégories en n caractéristiques binaires, où chaque nouvelle fonctionnalité représente la présence ou l'absence d'une catégorie spécifique.

L'application d'un codage à chaud sur une fonctionnalité catégorisée créera une nouvelle fonctionnalité binaire pour chaque catégorie dans cette variable catégorisée. Par exemple, une fonctionnalité "Couleur" avec des valeurs [Rouge, Bleu, Vert] serait transformée en trois fonctionnalités binaires : Color Red, Color Blue et Color Green, où chaque ligne a une valeur de 1 dans exactement une de ces colonnes.

Comme le nombre de nouvelles caractéristiques augmente à mesure que le nombre de catégories augmente, cette technique convient aux caractéristiques avec un nombre faible de catégories, surtout si nous avons un ensemble de données plus petit. L'une des règles standard suggère d'appliquer cette technique si nous avons au moins dix enregistrements par catégorie.

Encodage de l'étiquette

Encodage de l'étiquette : Assigne un entier à chaque catégorie. Idéal pour les données ordinales (p. ex., « Faible », « Moyenne », « Haute »), car il y a un classement ou un ordre des valeurs qu'il est important pour le modèle d'avoir accès à. Cette méthode est particulièrement utile lorsque votre variable catégorisée a un ordre naturel ou une hiérarchie qui devrait être conservé dans la représentation numérique.

Cependant, soyez prudent lors de l'application de l'encodage d'étiquettes à des données non ordinaires. Les chiffres peuvent conduire le modèle à conclure un classement où aucun n'est présent, donc des indicateurs binaires évitent cela. Par exemple, en codant des villes comme [1, 2, 3] pourrait suggérer à tort que la ville 3 est « plus grande que » ville 1, alors qu'en réalité il n'y a pas de relation de ce genre.

Traitement des données manquantes

Il est essentiel de s'attaquer correctement aux valeurs manquantes pour construire des modèles robustes. La stratégie que vous choisissez devrait dépendre de la nature de vos données, de la quantité d'informations manquantes et des modèles manquants.

En utilisant des techniques d'imputation, comme l'estimation des valeurs manquantes en fonction des données disponibles, comme la superficie de la propriété, le modèle ML peut faire des prévisions plus éclairées, assurant ainsi un résultat plus robuste et plus fiable.

  • Imputation moyenne/médiane: Remplacer les valeurs manquantes par la moyenne ou la médiane de la fonction
  • Mode Imputation:[ Utilisation de la valeur la plus fréquente pour les caractéristiques catégorisées
  • Fill avant/arrière :[ Utilisation des valeurs antérieures ou suivantes dans les données de séries chronologiques
  • Impression par modèle:[ Utilisation d'algorithmes d'apprentissage automatique pour prédire les valeurs manquantes
  • Indicateur Variables: Création de fonctionnalités binaires pour le drapeau qui manquaient de valeurs

Création de fonctionnalités d'interaction

La création de fonctions d'interaction implique l'identification des relations entre les fonctions existantes et l'élaboration de nouvelles fonctions, qui peuvent saisir des modèles complexes que les caractéristiques individuelles pourraient manquer, ce qui entraîne souvent des améliorations importantes dans la performance du modèle.

Par exemple, dans la prévision des prix des maisons, le calcul de l'âge d'une maison en soustrayant l'année de construction de l'année en cours met en évidence les tendances, comme la baisse des prix des maisons au fil du temps.

  • Caractéristiques connexes à la multiplication (p. ex. longueur × largeur = surface)
  • Création de ratios (p. ex. ratio dette/revenu)
  • Caractéristiques polynômes (par exemple, x2, x3)
  • Combinaisons par domaine fondées sur des connaissances spécialisées

Extraction de caractéristiques et réduction de dimensionnalité

Il traite des approches pour la manipulation des valeurs manquantes et se transforme en techniques d'extraction de fonctionnalités telles que PCA, ICA, LDA, LLE et t-SNE. Ces techniques aident à réduire le nombre de fonctionnalités tout en préservant l'information la plus importante, qui peut améliorer la performance du modèle, réduire le temps d'entraînement et aider à prévenir les suradaptations.

L'analyse des composants principaux (PCA) est l'une des techniques de réduction de dimensionnalité les plus utilisées. Elle transforme vos caractéristiques originales en un nouvel ensemble de caractéristiques non-correspondantes appelées composantes principales, ordonnées par la quantité de variance qu'elles expliquent dans les données. Cela vous permet de conserver les aspects les plus informatifs de vos données tout en réduisant la dimensionnalité.

Les autres méthodes d'extraction [ comprennent l'analyse indépendante des composants (ICA) pour la séparation des signaux mixtes, l'analyse linéaire discriminante (LDA) pour la réduction supervisée de dimensionnalité et le T-SNE pour la visualisation des données à haute dimension.

Méthodes de sélection des caractéristiques : Choisir les bonnes caractéristiques

En identifiant les variables essentielles et en supprimant les variables redondantes et non pertinentes, la sélection des fonctions améliore le processus d'apprentissage automatique et augmente la puissance prédictive des algorithmes d'apprentissage automatique. La sélection des fonctionnalités est distincte de l'extraction des fonctionnalités.

Méthodes de filtrage

Les méthodes de filtrage évaluent les caractéristiques indépendamment de tout algorithme d'apprentissage automatique, en utilisant des mesures statistiques pour marquer et classer les caractéristiques. Ces méthodes sont efficaces sur le plan informatique et peuvent être appliquées comme une étape de prétraitement avant la formation du modèle.

  • Coefficients de correction: Mesure des relations linéaires entre les caractéristiques et la cible
  • Essais du carré de chi:[ Évaluation de l'indépendance entre les caractéristiques catégoriques et les cibles
  • Gain d'information:[ Mesure de la quantité d'information qu'une fonctionnalité fournit sur la cible
  • Seuil de variation: Suppression des caractéristiques avec faible variance

Méthodes d'emballage

En outre, il discute de diverses méthodes de sélection des fonctionnalités, y compris les méthodes de filtre, d'emballage et embarquées. Bien que plus calculalement coûteux que les méthodes de filtre, les méthodes d'emballage peuvent trouver des combinaisons de fonctionnalités qui fonctionnent le mieux pour votre algorithme spécifique.

Les méthodes courantes d'emballage comprennent :

  • Sélection vers l'avant:[ Commençant par l'absence de fonctionnalités et l'ajout itératif des plus bénéfiques
  • Élimination en arrière-plan:[ En commençant par toutes les fonctionnalités et en supprimant les moins utiles
  • Élimination des caractéristiques récursives:[ Suppression récursive des caractéristiques et des modèles de construction pour identifier les plus importants

Méthodes intégrées

Les méthodes intégrées permettent de sélectionner les fonctions dans le cadre du processus de formation du modèle. Ces méthodes sont spécifiques à l'algorithme et offrent souvent un bon équilibre entre l'efficacité de calcul et la qualité de sélection.

  • LASO (régularisation L1):[ Coefficients de réduction des caractéristiques moins importantes à zéro
  • Régression des risques (régularisation L2):[ Réprime les grands coefficients
  • Importance de la caractéristique fondée sur les arbres:[ Utilisation des scores d'importance des arbres de décision et des forêts aléatoires
  • Réseau élastique: Combinant la régularisation L1 et L2

Techniques avancées d'ingénierie de caractéristiques

Au-delà des techniques fondamentales, plusieurs méthodes avancées peuvent améliorer votre pipeline d'ingénierie de fonctionnalités et débloquer la puissance prédictive supplémentaire de vos données.

Ingénierie des caractéristiques temporelles

Le chapitre traite également des caractéristiques temporelles, des variables de décalage, des fonctionnalités de la fenêtre roulante et des fonctionnalités de la fenêtre en expansion.

La décomposition temporaire implique l'extraction de composants à partir de caractéristiques datatoires:

  • Année, mois, jour, heure, minute, seconde
  • Jour de la semaine, jour de l'année, semaine de l'année
  • Trimestre, saison
  • C'est le week-end, c'est les vacances
  • Temps écoulé depuis un événement spécifique

Les caractéristiques de la lag capturent les valeurs historiques à des intervalles précis, permettant aux modèles d'apprendre des modèles du passé. Par exemple, dans les prévisions de ventes, vous pouvez créer des fonctionnalités pour les ventes à partir d'il y a 1 jour, il y a 7 jours et il y a 30 jours.

Les statistiques sur les fenêtres de roulement[ calculent les agrégats sur les fenêtres de temps coulissantes, comme les moyennes mobiles, les écarts-types de roulement ou les valeurs maximales de roulement.

Transformations logarithmiques et de puissance

Pour les données bien biaisées, l'application de transformations logarithmiques peut aider à normaliser la distribution avant l'échelle. Ces transformations sont particulièrement utiles pour traiter des fonctionnalités qui ont des distributions exponentielles ou de larges gammes de valeurs.

Les transformations logarithmiques compressent les grandes valeurs tout en augmentant les petites valeurs, les rendant idéales pour les caractéristiques comme le revenu, la population, ou le trafic du site Web.

L'assemblage et la discrétisation

La discrétisation implique la conversion de caractéristiques continues en bacs ou intervalles catégoriques. Cette technique peut aider à saisir des relations non linéaires, réduire l'impact des aberrations et rendre les caractéristiques plus interprétables.

  • ]Taille de la largeur égale:Divisant la plage en intervalles de taille égale
  • Cinification de fréquences égales:[Créer des bacs avec un nombre approximativement égal d'observations
  • Binning personnalisé:[ Utiliser les connaissances du domaine pour définir des intervalles significatifs
  • Décisions sur les arbres :[ Utiliser les arbres de décision pour trouver des points de partage optimaux

Codage de la cible

L'encodage de la cible, aussi appelé encodage moyen, remplace les valeurs catégoriques par la moyenne de la variable cible pour chaque catégorie. Cette technique peut être particulièrement puissante pour les caractéristiques catégoriques de haute cardinalité où l'encodage à une seule chaleur créerait trop de fonctionnalités.

Technique de la fonction Meilleures pratiques

La mise en oeuvre efficace de l'ingénierie des fonctionnalités nécessite de suivre les meilleures pratiques établies qui aident à assurer que vos modèles sont robustes, généralisables et exempts d'écueils communs.

Commencez par l'analyse exploratoire des données

L'EDA est une première étape de l'ingénierie des fonctionnalités, qui permet aux data savants d'analyser les données visuelles et statistiques et d'acquérir des connaissances sur les relations, les modèles et les problèmes potentiels qui guident les décisions subséquentes en matière d'ingénierie des fonctionnalités.

Utilisez des bibliothèques Python comme Pandas et Matplotlib pour effectuer une analyse exploratoire complète des données, comme explorer l'information statistique, les visualisations et les corrélations pour trouver des modèles et des relations potentielles dans les données. Cette compréhension fondamentale éclairera vos décisions d'ingénierie de fonctionnalités et vous aidera à identifier les techniques les plus appropriées pour votre ensemble de données spécifique.

Tirer parti des connaissances du domaine

L'ingénierie des fonctionnalités utilise la connaissance du domaine des données pour créer des fonctionnalités qui font fonctionner les algorithmes d'apprentissage automatique. Votre compréhension du domaine de problème est inestimable pour créer des fonctionnalités significatives qui capturent des relations et des modèles importants.

A cette jonction, nous devrions nous arrêter et nous demander, « Si je devais faire les prédictions manuellement en fonction de mes connaissances de domaine, quelles fonctionnalités m'auraient aidé à faire un bon travail ? » Cette question peut révéler des opportunités de créer des fonctionnalités puissantes et conçues qui ne seraient peut-être pas évidentes à partir des seules données.

Prévenir la fuite des données

Il est bon d'adapter l'échelleur aux données de formation et de les utiliser pour transformer les données d'essai, ce qui éviterait toute fuite de données pendant le processus d'essai du modèle. La fuite de données survient lorsque des informations provenant de l'extérieur de l'ensemble de données de formation influencent le modèle, ce qui conduit à des estimations de performance trop optimistes qui ne se généralisent pas à de nouvelles données.

La fuite de données : l'installation de l'échiquier sur l'ensemble des données (y compris l'ensemble de tests) introduit les informations des données d'essais dans le processus de formation, ce qui conduit à des estimations de performance trop optimistes.

Les sources communes de fuite des données sont les suivantes:

  • Utilisation des informations du jeu d'essais pendant le prétraitement
  • Incluant des fonctionnalités qui ne seraient pas disponibles au moment de la prévision
  • Utilisation des informations de la cible pour créer des fonctionnalités
  • Fuite temporelle dans les données de séries chronologiques (en utilisant des informations futures pour prédire le passé)

Considérer les exigences spécifiques de l'algorithme

Par exemple, les modèles comme la régression linéaire ou multiple, SVM et KNN bénéficient souvent de la normalisation des fonctionnalités, mais cette technique n'aide pas les modèles basés sur les arbres. Ainsi, décider à l'avance de votre modèle peut vous aider à construire un pipeline d'ingénierie des fonctionnalités efficace pour votre cas d'utilisation.

Comprendre quels algorithmes sont sensibles à l'échelle des fonctions, les méthodes d'encodage et autres transformations vous aident à prioriser vos efforts d'ingénierie des fonctionnalités. Il est également intéressant de noter que certains algorithmes, en particulier les méthodes basées sur les arbres comme les arbres de décision et les forêts aléatoires, sont intrinsèquement insensibles à l'échelle des fonctionnalités et ne nécessitent pas strictement l'échelle, bien que l'application de celle-ci ne nuit généralement pas aux performances.

Iterate et valide en continu

Cependant, en fin de journée, le choix de la normalisation dépendra de votre problème et de l'algorithme d'apprentissage automatique que vous utilisez. Il n'y a pas de règle difficile et rapide pour vous dire quand normaliser ou normaliser vos données. Vous pouvez toujours commencer par adapter votre modèle à des données brutes, normalisées et standardisées et comparer les performances pour les meilleurs résultats.

L'ingénierie des caractéristiques est un processus itératif. Créez des fonctionnalités, évaluez leur impact sur les performances du modèle et affiner votre approche en fonction des résultats. Utilisez la validation croisée pour vous assurer que vos caractéristiques conçues généralisent bien les données invisibles.

Documentez votre pipeline d'ingénierie de caractéristiques

Maintenir une documentation claire de toutes les transformations, des schémas d'encodage et une logique de création de fonctionnalités. Cette documentation est essentielle pour :

  • Résultats de reproduction
  • Déployer des modèles à la production
  • Collaborer avec les membres de l'équipe
  • Problèmes de débogage
  • Maintenir les modèles dans le temps

Une fois que vous avez choisi une méthode de calibrage et que vous avez réglé les anomalies de données, la cohérence de la production est essentielle. Sauvegardez tous les paramètres de normalisation - tels que les moyens, les écarts-types ou les valeurs min-max - de la phase d'entraînement.

Éviter les excès d'ingénierie

Bien que l'ingénierie des caractéristiques puisse améliorer considérablement la performance du modèle, la création de trop de caractéristiques peut conduire à des surajustements, à des coûts de calcul accrus et à une interprétabilité réduite du modèle.

Exemples pratiques et mise en œuvre

Examinons des exemples pratiques d'ingénierie de fonctionnalités dans différents domaines pour illustrer comment ces techniques sont appliquées dans des scénarios réels.

Exemple 1: Prédiction du prix de l'immobilier

Par exemple, envisagez un scénario où vous prédisez les prix de propriété dans un certain domaine. Dans ce domaine, l'ingénierie des fonctionnalités efficaces peut inclure:

  • Caractéristiques dérivées de création:[ Prix par pied carré, âge de la propriété (année en cours - année construite), distance aux commodités
  • Caractéristiques d'interaction:[ Nombre de chambres × salles de bains, taille du lot × score qualité quartier
  • Caractéristiques temporelles: Saison de vente, jours sur le marché, indicateurs de tendances du marché
  • Caractéristiques agrégées:[ Prix moyen dans le quartier, revenu médian en code postal
  • Encodage catégorique: Encodage à une seule chaleur pour le type de propriété, encodage cible pour les fonctions de haute cardinalité comme le code zip

Exemple 2: Comportement des clients du commerce électronique

Considérez une entreprise de commerce électronique pour déterminer le nombre d'inventaires qu'elle devrait avoir pour un prochain jour férié. L'entreprise possède les données suivantes : ventes quotidiennes, niveaux d'actions et nombre de commandes durant la saison des fêtes au cours des dernières années.

L'ingénierie des caractéristiques pertinentes pour ce scénario comprend:

  • Récience, fréquence, caractéristiques monétaires (RFM): Jours depuis le dernier achat, nombre d'achats, dépenses totales
  • Caractéristiques comportementales:[ Temps moyen entre les achats, taux d'abandon du chariot, préférences de la catégorie de produits
  • Modèles de la saison: Indicateurs de vacances, effets du jour de la semaine, temps des modèles de jour
  • Statistiques de roulement:[ Moyenne mobile des ventes sur 7 jours, indicateurs de tendance sur 30 jours

Exemple 3 : Évaluation du risque de crédit

Dans les applications financières comme la notation de crédit, l'ingénierie des fonctionnalités joue un rôle crucial dans la performance du modèle :

  • Ratio financier:[Ratio dette/revenu, taux d'utilisation du crédit, ratio paiement/revenu
  • Modèles historiques:[ Nombre de paiements tardifs, durée des antécédents de crédit, âge du compte
  • Caractéristiques agrégées:[ Limite de crédit totale pour tous les comptes, solde moyen du compte
  • Transformations catégoriques: Situation en matière d'emploi, objectif de prêt, région géographique
  • Indicateurs de risque:[ Nombre de demandes de crédit récentes, drapeaux de faillite, indicateurs de délinquance

Outils et bibliothèques pour l'ingénierie des fonctionnalités

Plusieurs outils et bibliothèques puissants peuvent rationaliser votre workflow d'ingénierie de fonctionnalités et vous aider à mettre en œuvre les meilleures pratiques efficacement.

Python Bibliothèques

Nous comparerons les implémentations d'ingénierie des fonctionnalités des bibliothèques open-source Pandas, Scikit-learn, Category Encoders et Feature-engine. Chaque bibliothèque offre des fonctionnalités uniques:

  • Pandas: Manipulation des données, transformations de base et regroupements
  • Scikit-learn:[ Outils de prétraitement complets comprenant les scalpers, les encodeurs et les transformateurs
  • Moteur de caractéristiques:[ Bibliothèque spécialisée pour l'ingénierie des caractéristiques avec des options de transformation étendues
  • Encodeurs de catégorie: Techniques avancées d'encodage catégorique
  • Caractéristiques:[ Ingénierie automatisée des fonctions pour les ensembles de données relationnelles

Ingénierie de fonctions automatisées

Des outils automatisés d'ingénierie des fonctions comme FeatureTools, les bibliothèques AutoML (par exemple Auto-sklearn, H2O.ai) et les Tables AutoML de Google peuvent automatiquement créer et transformer des fonctionnalités, ce qui permet de gagner du temps et de l'effort.

Cependant, les connaissances sur le domaine sont toujours cruciales pour interpréter et sélectionner les meilleures fonctionnalités. Les outils automatisés fonctionnent mieux lorsqu'ils sont combinés avec l'expertise humaine et la compréhension du domaine. Ils peuvent aider à identifier les modèles que vous avez peut-être manqués, mais ils ne peuvent pas remplacer les idées qui viennent de la compréhension de votre domaine de problème spécifique.

Pièges courants et comment les éviter

Comprendre les erreurs courantes dans l'ingénierie des fonctionnalités vous aide à éviter les erreurs coûteuses et construire des modèles plus robustes.

Suradaptation par l'ingénierie des fonctionnalités

La création de trop de fonctionnalités ou de fonctionnalités trop spécifiques à vos données de formation peut conduire à une suradaptation. Le modèle apprend des modèles qui ne généralisent pas de nouvelles données. Pour éviter cela:

  • Utiliser la validation croisée pour évaluer l'efficacité de la fonctionnalité
  • Appliquer des techniques de régularisation
  • Effectuer la sélection des fonctionnalités pour supprimer les fonctionnalités redondantes
  • Surveiller l'écart entre la formation et les performances de validation

Ignorer les interactions des caractéristiques

Bien que les caractéristiques individuelles ne soient pas prédictives, leurs combinaisons pourraient être très informatives. Ne négligez pas le potentiel des caractéristiques d'interaction, mais soyez également attentifs à la croissance exponentielle de l'espace de la fonctionnalité lors de la création de toutes les interactions possibles.

Prétraitement non cohérent

L'application de différentes étapes de prétraitement aux données de formation et de test entraîne des résultats incohérents. N'oubliez pas de ne s'adapter à l'écheller (calculer min/max ou moyenne/std) que sur vos données de formation et ensuite utiliser ce même échelle adaptée pour transformer vos données de formation et de test afin d'éviter les fuites de données (apprentissage des informations de l'ensemble de test lors du prétraitement).

Caractéristiques négligées Interprétabilité

L'ingénierie des fonctions peut améliorer ou réduire l'interprétation, selon les techniques utilisées.Par exemple : La création de caractéristiques significatives (p. ex. « L'âge de la maison » au lieu de « YearBuilt ») améliore l'interprétation.

Ingénierie de la production

Le déploiement de pipelines d'ingénierie dans les environnements de production nécessite des considérations supplémentaires au-delà de l'élaboration de modèles.

Maintenir la cohérence

S'assurer que les mêmes transformations appliquées pendant la formation sont appliquées pendant l'inférence, ce qui exige :

  • Enregistrement de tous les paramètres de transformation (moyennes, écarts types, codage des mappages)
  • Version contrôlant votre code d'ingénierie de fonction
  • Essais approfondis du pipeline avant déploiement
  • Distributions des caractéristiques de surveillance dans la production

Traitement des nouvelles catégories

Lors du déploiement de modèles utilisant un codage catégorique, vous rencontrerez des catégories de données de production qui n'étaient pas présentes pendant la formation.

  • Création d'une catégorie « inconnue » pendant la formation
  • Utiliser des méthodes d'encodage qui traitent les catégories invisibles gracieusement
  • Mise en œuvre de stratégies de repli pour les catégories rares
  • Surveillance de la fréquence des catégories inconnues

Optimisation des performances

L'ingénierie des fonctionnalités peut être coûteuse en calcul, surtout pour les prévisions en temps réel. Optimisez votre pipeline par:

  • Cache les caractéristiques fréquemment calculées
  • Fonctions de pré-computage lorsque c'est possible
  • Utilisation de structures et d'algorithmes de données efficaces
  • Parallélisation des transformations indépendantes
  • Profiler votre code pour identifier les goulets d'étranglement

Surveillance et entretien

Gardez un œil sur les distributions de caractéristiques dans la production. Les écarts par rapport aux distributions prévues pourraient indiquer une dérive du modèle. La mise en place d'alertes pour de telles déviations peut aider à attraper les problèmes tôt.

Reformer votre modèle régulièrement avec de nouvelles données pour tenir compte des changements naturels dans la distribution des données. Cela inclut la mise à jour de vos paramètres d'ingénierie de fonction et la validation que vos transformations restent appropriées pour le paysage de données actuel.

L'avenir de l'ingénierie des éléments

Comme l'apprentissage automatique continue d'évoluer, ainsi que les approches pour l'ingénierie de fonctionnalités. Les modèles d'apprentissage profond peuvent automatiquement apprendre des représentations de fonctionnalités, réduisant le besoin d'ingénierie de fonctionnalités manuelles dans certains domaines comme la vision informatique et le traitement de langage naturel.

Les tendances nouvelles sont notamment les suivantes :

  • Recherche d'architectures neurales: Découverte automatique de pipelines de transformation de fonctionnalités optimales
  • Trafer learning for features: Tirer parti des modèles pré-formés pour extraire les caractéristiques
  • Ingénierie automatisée des fonctions :[ Des outils plus sophistiqués qui combinent l'automatisation et les connaissances du domaine
  • Ingénierie des fonctionnalités expliquables: Méthodes qui créent des fonctionnalités interprétables tout en maintenant la performance
  • Ingénierie des fonctionnalités en temps réel: Calcul des fonctionnalités de streaming pour les systèmes d'apprentissage en ligne

Conclusion

Peu importe les principes et techniques techniques de cet article que vous choisissez d'utiliser, le message important ici est de comprendre que l'apprentissage automatique ne consiste pas seulement à demander à l'algorithme de comprendre les modèles. Il s'agit de nous permettre à l'algorithme de faire son travail efficacement en fournissant le type de données dont il a besoin.

L'ingénierie des fonctionnalités ML est essentielle pour améliorer la puissance prédictive des modèles d'apprentissage automatique en affinant les données brutes en des informations exploitables. En maîtrisant les techniques d'ingénierie des fonctionnalités, les data savants peuvent libérer le véritable potentiel des données, conduire l'innovation et résoudre des problèmes réels dans différentes industries.

Les techniques abordées dans ce guide, de l'échelle de base et de l'encodage aux méthodes de transformation et de sélection avancées, constituent une trousse complète pour améliorer vos modèles d'apprentissage automatique.

Commencez par l'analyse exploratoire des données pour comprendre vos données, puisez dans les connaissances du domaine pour créer des fonctionnalités significatives, appliquer des transformations appropriées en fonction de vos exigences d'algorithme et toujours valider votre travail par des tests rigoureux. En suivant ces meilleures pratiques et en évitant les pièges communs, vous serez bien équipé pour concevoir des fonctionnalités qui améliorent considérablement les capacités de performance et de généralisation de votre modèle.

Pour en savoir plus, explorez des ressources comme documentation de prétraitement de Scikit-learn, les cours d'ingénierie de fonctionnalités de Kaggle, et des livres spécialisés sur le sujet.