Feature Engineering
Explore l’ingénierie des caractéristiques pour améliorer les performances des modèles. Découvre des techniques comme la mise à l’échelle et l’augmentation pour optimiser Ultralytics YOLO26 et obtenir une meilleure précision.
L’ingénierie des caractéristiques est le processus qui consiste à transformer des données brutes en entrées pertinentes afin d’améliorer les performances des modèles de machine learning. Elle consiste à exploiter les connaissances du domaine pour sélectionner, modifier ou créer de nouvelles variables — appelées caractéristiques — qui aident les algorithmes à mieux comprendre les tendances présentes dans les données. Bien que les architectures modernes de deep learning, comme les réseaux neuronaux convolutifs (CNN), soient capables d’apprendre automatiquement les caractéristiques, l’ingénierie explicite des caractéristiques reste une étape essentielle dans de nombreux workflows, notamment lorsqu’on travaille avec des données structurées ou qu’on cherche à optimiser l’efficacité des modèles sur des appareils edge. En affinant les données d’entrée, les développeurs peuvent souvent obtenir une meilleure précision avec des modèles plus simples, ce qui réduit le besoin en ressources de calcul considérables.
Le rôle de l’ingénierie des caractéristiques dans l’IA#
Dans le contexte de l’intelligence artificielle (AI), les données brutes sont rarement prêtes à être traitées immédiatement. Les images peuvent nécessiter un redimensionnement, le texte peut devoir être tokenisé et les données tabulaires contiennent souvent des valeurs manquantes ou des colonnes non pertinentes. L’ingénierie des caractéristiques fait le lien entre les informations brutes et les représentations mathématiques requises par les algorithmes. Une ingénierie efficace peut mettre en évidence des relations essentielles qu’un modèle pourrait autrement manquer, par exemple en combinant la « distance » et le « temps » pour créer une caractéristique « vitesse ». Ce processus est étroitement lié au prétraitement des données, mais tandis que le prétraitement se concentre sur le nettoyage et la mise en forme, l’ingénierie des caractéristiques vise une amélioration créative destinée à renforcer la puissance prédictive.
Pour les tâches de vision par ordinateur, l’ingénierie des caractéristiques a considérablement évolué. Les méthodes traditionnelles consistaient à concevoir manuellement des descripteurs comme le transformé de caractéristiques invariant à l’échelle (SIFT) pour identifier les contours et les angles. Aujourd’hui, les modèles de deep learning comme YOLO26 effectuent une extraction automatique des caractéristiques au sein de leurs couches cachées. Cependant, l’ingénierie joue toujours un rôle essentiel dans la préparation des jeux de données, notamment en générant des données synthétiques ou en appliquant des techniques d’augmentation des données, comme les mosaïques et les mixups, afin d’exposer les modèles à des variations de caractéristiques plus robustes pendant l’entraînement.
Techniques et applications courantes#
L’ingénierie des caractéristiques englobe un large éventail de stratégies adaptées au problème spécifique et au type de données.
- Réduction de la dimensionnalité : Des techniques comme l’analyse en composantes principales (PCA) réduisent le nombre de variables tout en conservant les informations essentielles, ce qui évite le surapprentissage dans les jeux de données de grande dimension.
- Encodage des variables catégorielles : Les algorithmes nécessitent généralement des entrées numériques. Des méthodes comme l’encodage one-hot transforment les étiquettes catégorielles (par exemple, « Rouge », « Bleu ») en vecteurs binaires que les modèles peuvent traiter.
- Normalisation et mise à l’échelle : Mettre les caractéristiques à l’échelle dans une plage standard garantit que les variables ayant de grandes amplitudes (comme les prix des maisons) ne dominent pas celles dont les plages sont plus petites (comme le nombre de pièces), ce qui est essentiel pour l’optimisation fondée sur le gradient dans les réseaux neuronaux.
- Regroupement en intervalles et discrétisation : Regrouper les valeurs continues en intervalles (par exemple, des tranches d’âge) peut aider les modèles à gérer plus efficacement les valeurs aberrantes et à capturer les relations non linéaires.
Exemples concrets#
L’ingénierie des caractéristiques est appliquée dans divers secteurs pour résoudre des problèmes complexes.
-
Maintenance prédictive dans l’industrie manufacturière : Dans l’industrie manufacturière intelligente, les capteurs recueillent des données brutes de vibration et de température provenant des machines. Les ingénieurs peuvent créer des caractéristiques représentant le « taux de variation » de la température ou la « moyenne glissante » de l’intensité des vibrations. Ces caractéristiques conçues permettent aux modèles de détection des anomalies de prédire les défaillances des équipements plusieurs jours à l’avance, plutôt que de simplement réagir aux relevés actuels des capteurs.
-
Évaluation du risque de crédit : Les établissements financiers utilisent l’ingénierie des caractéristiques pour évaluer l’éligibilité à un prêt. Au lieu d’examiner uniquement un chiffre brut de « revenus », ils peuvent concevoir un « ratio d’endettement » ou un « pourcentage d’utilisation du crédit ». Ces caractéristiques dérivées offrent une vision plus nuancée de la santé financière d’un emprunteur et permettent une classification des risques plus précise.
Exemple de code : augmentation personnalisée des caractéristiques#
En vision par ordinateur, nous pouvons « concevoir » des caractéristiques en augmentant les images pour simuler différentes conditions environnementales. Cela aide les modèles comme YOLO26 à mieux se généraliser. L’exemple suivant montre comment appliquer une simple transformation en niveaux de gris à l’aide des outils ultralytics, ce qui force le modèle à apprendre des caractéristiques structurelles plutôt qu’à dépendre uniquement de la couleur.
import cv2
from ultralytics.data.augment import Albumentations
# Load an example image using OpenCV
img = cv2.imread("path/to/image.jpg")
# Define a transformation pipeline to engineer new visual features
# Here, we convert images to grayscale with a 50% probability
transform = Albumentations(p=1.0)
transform.transform = A.Compose([A.ToGray(p=0.5)])
# Apply the transformation to create a new input variation
augmented_img = transform(img)
# This process helps models focus on edges and shapes, improving robustnessDistinction avec les termes associés#
Il est utile de distinguer l’ingénierie des caractéristiques de concepts similaires afin d’éviter toute confusion dans les discussions sur les workflows.
- Ingénierie des caractéristiques et extraction des caractéristiques : Bien que ces termes soient souvent utilisés indifféremment, une nuance existe. L’ingénierie des caractéristiques implique un processus manuel et créatif de construction de nouvelles entrées fondées sur les connaissances du domaine. En revanche, l’extraction des caractéristiques désigne souvent des méthodes automatisées ou des projections mathématiques (comme la PCA) qui condensent des données de grande dimension en une représentation dense. Dans le deep learning (DL), les couches des réseaux neuronaux convolutifs (CNN) effectuent une extraction automatique des caractéristiques en apprenant des filtres pour les contours et les textures.
- Ingénierie des caractéristiques et embeddings : Dans le traitement automatique du langage naturel (NLP) moderne, la création manuelle de caractéristiques (comme le comptage de la fréquence des mots) a largement été remplacée par les embeddings. Les embeddings sont des représentations vectorielles denses apprises par le modèle lui-même afin de capturer le sens sémantique. Bien que les embeddings soient une forme de caractéristiques, ils sont appris par des processus de machine learning automatisé (AutoML) plutôt qu’« conçus » explicitement manuellement.
En maîtrisant l’ingénierie des caractéristiques, les développeurs peuvent créer des modèles non seulement plus précis, mais aussi plus efficaces, qui nécessitent moins de puissance de calcul pour atteindre de hautes performances. Des outils comme l’Ultralytics Platform facilitent ce processus en proposant des interfaces intuitives pour la gestion des jeux de données et l’entraînement des modèles, ce qui permet aux utilisateurs d’itérer rapidement sur leurs stratégies de conception des caractéristiques.









