Explorez l'ingénierie des fonctionnalités pour améliorer les performances des modèles. Apprenez des techniques telles que la mise à l'échelle et l'augmentation pour optimiser Ultralytics et obtenir une plus grande précision.
L'ingénierie des caractéristiques est le processus qui consiste à transformer des données brutes en entrées significatives qui améliorent les performances des modèles d'apprentissage automatique. 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 modèles dans les données. Bien que les architectures modernes d'apprentissage profond, telles que les réseaux neuronaux convolutifs (CNN), soient capables d'apprendre automatiquement les caractéristiques, l'ingénierie explicite des caractéristiques reste une étape cruciale dans de nombreux workflows, en particulier lorsqu'il s'agit de données structurées ou lorsque l'on cherche à optimiser l'efficacité des modèles sur des appareils périphériques. En affinant les données d'entrée, les développeurs peuvent souvent obtenir une plus grande précision avec des modèles plus simples, ce qui réduit le besoin de ressources informatiques massives.
Dans le contexte de l' intelligence artificielle (IA), les données brutes sont rarement prêtes à être traitées immédiatement. Les images peuvent nécessiter un redimensionnement, le texte peut nécessiter une tokenisation et les données tabulaires contiennent souvent des valeurs manquantes ou des colonnes non pertinentes. L'ingénierie des caractéristiques comble le fossé entre les informations brutes et les représentations mathématiques requises par les algorithmes. Une ingénierie efficace peut mettre en évidence des relations critiques qu'un modèle pourrait autrement manquer, comme la combinaison de la « distance » et du « temps » pour créer une caractéristique « vitesse ». Ce processus est étroitement lié au prétraitement des données, mais alors que le prétraitement se concentre sur le nettoyage et le formatage, l'ingénierie des caractéristiques consiste à apporter des améliorations créatives afin d'augmenter 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 impliquaient la création manuelle de descripteurs tels que la transformation des caractéristiques invariantes à l'échelle (SIFT) pour identifier les bords et les coins. Aujourd'hui, les modèles d'apprentissage profond tels que YOLO26 effectuent une extraction automatisée 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 ensembles de données, par exemple en générant des données synthétiques ou en appliquant des techniques d'augmentation des données telles que les mosaïques et les mixups afin d'exposer les modèles à des variations de caractéristiques plus robustes pendant l'entraînement.
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.
L'ingénierie des caractéristiques est appliquée dans divers secteurs pour résoudre des problèmes complexes.
En vision par ordinateur, nous pouvons « concevoir » des caractéristiques en augmentant les images afin de simuler différentes conditions environnementales
. Cela aide les modèles tels que YOLO26 mieux généraliser.
L'exemple suivant montre comment appliquer une transformation simple en niveaux de gris à l'aide de
ultralytics outils, ce qui oblige le modèle à apprendre les caractéristiques structurelles plutôt que de se fier uniquement à 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 robustness
Il est utile de distinguer l'ingénierie des fonctionnalités des concepts similaires afin d'éviter toute confusion dans les discussions sur le flux de travail.
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, nécessitant moins de puissance de calcul pour atteindre des performances élevées. Des outils tels que la Ultralytics facilitent cette tâche en offrant des interfaces intuitives pour la gestion des ensembles de données et l'entraînement des modèles, permettant aux utilisateurs d'itérer rapidement sur leurs stratégies de caractéristiques.