cours
Extraction de caractéristiques dans l'apprentissage automatique : Un guide complet
L'extraction de caractéristiques dans l'apprentissage automatique transforme les données brutes en un ensemble de caractéristiques significatives, capturant les informations essentielles tout en réduisant la redondance. Il peut s'agir de techniques de réduction de la dimensionnalité et de méthodes qui créent de nouvelles caractéristiques à partir de données existantes.
Imaginez que vous essayez d'identifier des fruits sur un marché. Bien que vous puissiez prendre en compte d'innombrables attributs (poids, couleur, texture, forme, odeur, etc.), vous vous rendrez peut-être compte que quelques caractéristiques clés, comme la couleur et la taille, suffisent à faire la différence entre les pommes et les oranges. C'est exactement ce que fait l'extraction de caractéristiques. Il vous aide à vous concentrer sur les caractéristiques les plus informatives de vos données.
Lors de l'extraction de caractéristiques, les données originales sont transformées mathématiquement en un nouvel ensemble de caractéristiques. Ces nouvelles fonctionnalités sont conçues pour capturer les aspects les plus importants des données tout en réduisant potentiellement leur complexité. Les caractéristiques extraites représentent souvent des modèles ou des structures sous-jacents qui peuvent ne pas être immédiatement apparents dans les données d'origine.
Extraction des caractéristiques
Dans les prochaines sections, nous verrons pourquoi l'extraction de caractéristiques est si importante dans l'apprentissage automatique et nous examinerons diverses méthodes d'extraction de caractéristiques à partir de différents types de données, ainsi que leur code. Si vous souhaitez des exemples pratiques, consultez notre cours de Réduction de la dimensionnalité en Pythonqui comporte un chapitre consacré à l'extraction de caractéristiques.
Pourquoi l'extraction de caractéristiques est-elle importante dans l'apprentissage automatique ?
L'extraction de caractéristiques joue un rôle important dans l'apprentissage automatique. Elle peut faire la différence entre un modèle qui échoue et un modèle qui réussit. Voyons pourquoi cela est si fondamental pour construire des modèles d'apprentissage automatique efficaces.
Améliorer la précision et l'efficacité des modèles
Lorsque vous travaillez avec des données brutes, apprentissage automatique ont souvent du mal à faire la distinction entre les modèles significatifs et le bruit. L'extraction de caractéristiques est une étape de prétraitement des données qui peut améliorer de manière significative l'apprentissage et les performances de vos modèles.
Performance du modèle en fonction du temps de formation
Par exemple, lorsqu'un modèle atteint une précision de 85 % avec des données brutes, le même modèle peut atteindre une précision de 95 % lorsqu'il est formé sur des caractéristiques soigneusement extraites. Cette amélioration ne provient pas d'une modification du modèle, mais de la fourniture de données d'entrée de meilleure qualité à partir desquelles il est possible d'apprendre.
Gérer des ensembles de données à haute dimension
Les ensembles de données modernes contiennent souvent des centaines ou des milliers de caractéristiques. Cela pose plusieurs problèmes que l'extraction de caractéristiques permet de résoudre.
- La malédiction de la dimensionnalité: Au fur et à mesure que le nombre de caractéristiques augmente, les données deviennent de plus en plus rares dans l'espace des caractéristiques. Il est donc plus difficile pour les modèles de trouver des schémas significatifs. L'extraction de caractéristiques crée une représentation plus compacte qui préserve les relations importantes tout en réduisant la dimensionnalité.
- Utilisation importante de la mémoire : Les données à haute dimension nécessitent plus de stockage et de mémoire lors du traitement. En n'extrayant que les caractéristiques les plus pertinentes, nous pouvons réduire de manière significative l'empreinte mémoire de nos ensembles de données tout en conservant leur valeur informative.
- Visualisation des données : Il est impossible de visualiser directement des données en plus de trois dimensions. L'extraction de caractéristiques peut réduire la dimensionnalité à deux ou trois caractéristiques, ce qui permet de tracer et de comprendre visuellement la structure des données.
L'extraction de caractéristiques permet de relever ces défis en réduisant la dimensionnalité tout en préservant les informations essentielles. Cette réduction transforme les données tentaculaires et à haute dimension en une forme plus compacte et plus facile à gérer, ce qui permet d'améliorer les performances du modèle.
Réduire la complexité des calculs et éviter les ajustements excessifs
L'extraction de caractéristiques présente deux avantages essentiels pour les modèles d'apprentissage automatique :
- Exigences de calcul réduites
- Moins de fonctionnalités, c'est plus de temps pour s'entraîner
- Réduction de l'utilisation de la mémoire lors du déploiement du modèle
- Une génération de prédictions plus efficace
- Meilleure généralisation
- Des espaces de caractéristiques plus simples permettent d'éviter l'ajustement excessif
- Les modèles apprennent des schémas plus robustes
- Amélioration des performances sur des données nouvelles et inédites
Extractions de caractéristiques par rapport à l'absence d'extraction de caractéristiques
La visualisation ci-dessus illustre comment l'extraction de caractéristiques peut conduire à des modèles plus simples et plus robustes. Le graphique de gauche montre un modèle complexe qui tente de s'adapter à des données bruyantes et de haute dimension, tandis que le graphique de droite montre comment l'extraction de caractéristiques peut révéler un modèle plus clair et plus généralisable.
Travailler avec des caractéristiques extraites plutôt qu'avec des données brutes revient à donner à votre modèle une version claire et distillée des informations dont il a besoin pour apprendre. Cela permet non seulement de rendre le processus d'apprentissage plus efficace, mais aussi d'obtenir des modèles plus susceptibles d'être performants dans les applications du monde réel.
Voyons ensuite les différentes méthodes d'extraction des caractéristiques.
Méthodes d'extraction des caractéristiques
Les méthodes d'extraction de caractéristiques peuvent être classées en deux grandes catégories : l'ingénierie manuelle des caractéristiques et l'extraction automatique des caractéristiques. Examinons ces deux méthodes pour comprendre comment elles permettent de transformer des données brutes en caractéristiques significatives.
Ingénierie manuelle des fonctionnalités
L'ingénierie manuelle des caractéristiques consiste à utiliser l'expertise du domaine pour identifier et créer des caractéristiques pertinentes à partir de données brutes. Cette approche pratique s'appuie sur notre compréhension du problème et des données pour créer des caractéristiques significatives.
Dans le domaine du traitement d'imagesl'ingénierie manuelle des caractéristiques peut faire appel à des techniques telles que la détection des contours pour identifier les limites de l'objet, les histogrammes de couleur pour capturer la distribution des couleurs, l'analyse de texture pour quantifier les motifs et les descripteurs de forme pour caractériser la géométrie de l'objet.
Extraction des caractéristiques de l'image
Pour les données tabulaires, l'ingénierie manuelle des caractéristiques implique la création de termes d'interaction entre les caractéristiques existantes, la transformation des variables à l'aide de fonctions logarithmiques ou polynomiales, l'agrégation des points de données en statistiques significatives et l'encodage des variables catégorielles.
Extraction des caractéristiques des données tabulaires
Ces techniques, guidées par l'expertise du domaine, améliorent la qualité de la représentation des données et peuvent considérablement améliorer la performance du modèle.
Extraction automatisée des caractéristiques
L'extraction automatisée de caractéristiques utilise des algorithmes pour découvrir et créer des caractéristiques sans aide humaine explicite. Ces méthodes sont particulièrement utiles lorsqu'il s'agit d'ensembles de données complexes pour lesquels l'ingénierie manuelle des caractéristiques peut s'avérer peu pratique ou inefficace.
Les approches automatisées les plus courantes sont les suivantes :
Analyse en composantes principales (ACP) : Transforme les données en un ensemble de composantes non corrélées, chaque composante capturant le maximum de variance restante. Cette approche est particulièrement utile pour réduction de la dimensionnalitécar elle préserve l'information essentielle des données tout en simplifiant leur structure.
Analyse en composantes principales (ACP)
Autoencodeurs : Il s'agit de réseaux neuronaux qui apprennent des représentations comprimées des données, en saisissant les relations non linéaires. Elles sont particulièrement efficaces pour les ensembles de données à haute dimension, pour lesquels les méthodes linéaires traditionnelles risquent d'être insuffisantes.
Plusieurs outils et bibliothèques ont vu le jour pour simplifier les tâches d'ingénierie des caractéristiques. Par exemple, le module de décomposition de Scikit-learn offre une gamme de méthodes de réduction de la dimensionnalité, et PyCaret offre des capacités de sélection automatisée des caractéristiques.
Les approches manuelles et automatisées ont toutes deux leurs points forts. Examinons les points forts de chaque approche.
Ingénierie manuelle |
Extraction automatisée |
Intégration des connaissances du domaine |
Évolutivité |
Caractéristiques interprétables |
Gestion de modèles complexes |
Un contrôle précis |
Réduire les préjugés humains |
Adaptée aux besoins spécifiques |
Découvrez les relations cachées |
Le choix entre les méthodes manuelles et automatisées dépend souvent de facteurs tels que la complexité de l'ensemble des données, la disponibilité de l'expertise dans le domaine, les exigences d'interprétabilité, les ressources informatiques et les contraintes de temps.
Pour les ensembles de données très complexes ou lorsque le temps et les ressources sont limités, les méthodes automatisées peuvent rapidement générer des caractéristiques utiles. À l'inverse, les méthodes manuelles peuvent être préférables lorsque l'on dispose d'une expertise dans le domaine et que l'interprétabilité est une priorité, ce qui permet une ingénierie des caractéristiques sur mesure qui s'aligne étroitement sur le problème à résoudre.
Dans la pratique, de nombreux projets d'apprentissage automatique réussis combinent les deux approches, en utilisant l'expertise du domaine pour guider l'ingénierie des caractéristiques tout en tirant parti des méthodes automatisées pour découvrir des modèles supplémentaires qui pourraient ne pas être immédiatement apparents pour les experts humains.
Dans la section suivante, nous examinerons plusieurs techniques d'extraction de caractéristiques dans divers domaines.
Techniques d'extraction des caractéristiques
Chaque type de données nécessite des techniques d'extraction spécifiques optimisées pour ses caractéristiques uniques. Examinons les techniques les plus courantes pour différents types de données.
Techniques d'extraction des caractéristiques
Extraction des caractéristiques de l'image
L'extraction des caractéristiques d'une image transforme les données brutes des pixels en représentations significatives qui capturent les informations visuelles essentielles. Il existe trois grandes catégories de techniques utilisées dans le domaine de la vision par ordinateur. Il s'agit des méthodes traditionnelles, des méthodes basées sur l'apprentissage profond et des méthodes statistiques.
Méthodes d'extraction des caractéristiques de l'image
Examinons chacune des méthodes.
Méthodes traditionnelles de vision par ordinateur
Scale-Invariant Feature Transform (SIFT) est une méthode robuste qui détecte les caractéristiques locales distinctives dans les images. Il fonctionne en identifiant les points clés et en générant des descripteurs qui sont.. :
- Invariant à la mise à l'échelle et à la rotation de l'image
- Partiellement invariant aux changements d'illumination
- Robuste à la distorsion géométrique locale
L'algorithme SIFT traite les images en plusieurs étapes. Elle commence par la détection d'extrema dans l'espace échelle afin d'identifier les points clés potentiels qui sont invariants à l'échelle. Ensuite, la localisation des points clés permet d'affiner ces candidats en indiquant leur emplacement précis et en éliminant les points instables.
Ensuite, l'affectation de l'orientation détermine une orientation cohérente pour chaque point clé, ce qui garantit l'invariance de la rotation. Enfin, la génération de descripteurs de points clés crée des descripteurs distinctifs basés sur les gradients locaux de l'image, facilitant ainsi une correspondance robuste entre les images.
Une autre méthode est l'histogramme des gradients orientés (HOG). Il capture des informations sur les formes locales en analysant les motifs de gradient sur une image. Le processus commence par le calcul des gradients sur l'ensemble de l'image afin de mettre en évidence les détails des bords.
L'image est ensuite divisée en petites cellules et, pour chaque cellule, un histogramme des orientations du gradient est créé pour résumer la structure locale. Enfin, ces histogrammes sont normalisés sur des blocs plus importants afin de garantir leur robustesse face aux variations d'éclairage et de contraste, ce qui permet d'obtenir un descripteur de caractéristiques robuste pour des tâches telles que la détection et la reconnaissance d'objets.
Méthodes d'apprentissage en profondeur
Les réseaux neuronaux convolutifs (CNN) ont modifié la manière dont nous procédons à l'extraction des caractéristiques en apprenant automatiquement des représentations hiérarchiques.
Extraction de caractéristiques avec CNN
Les CNN apprennent les caractéristiques grâce à leur structure hiérarchique. Dans les premières couches, ils détectent les éléments visuels de base tels que les bords et les couleurs. Les couches intermédiaires combinent ensuite ces éléments pour reconnaître les motifs et les formes, tandis que les couches plus profondes capturent les objets complexes et permettent de comprendre la scène.
L'apprentissage par transfert nous permet d'utiliser ces caractéristiques préapprises à partir de modèles formés sur de grands ensembles de données, ce qui les rend particulièrement utiles lorsque l'on travaille avec des données limitées.
Méthodes statistiques
Les méthodes statistiques permettent d'extraire des images des modèles globaux et locaux, facilitant ainsi une analyse et une interprétation robustes des images.
Par exemple, histogrammes de couleurs représentent la distribution des couleurs dans une image et fournissent des caractéristiques invariantes en termes de rotation et d'échelle, ce qui les rend particulièrement utiles pour des tâches telles que la classification et la recherche d'images.
L'analyse de texture capture les motifs répétés et les caractéristiques de la surface à l'aide de techniques telles que les matrices de cooccurrence des niveaux de gris (GLCM), qui sont efficaces pour des applications telles que la reconnaissance des matériaux et la classification des scènes.
En plus, détection des contours identifie les limites et les changements d'intensité significatifs grâce à des méthodes telles que les opérateurs Sobel, Canny et Laplacien, jouant un rôle crucial dans la détection des objets et l'analyse des formes.
Le choix de la méthode d'extraction des caractéristiques dépend de plusieurs facteurs. Il doit s'aligner sur les exigences spécifiques de votre tâche, prendre en compte les ressources informatiques disponibles et tenir compte du besoin d'interprétabilité.
En outre, les caractéristiques de votre ensemble de données, telles que sa taille, son niveau de bruit et sa complexité, jouent un rôle crucial, tout comme les propriétés d'invariance requises, telles que l'échelle, la rotation et l'illumination.
Extraction de caractéristiques audio
Imaginez que vous essayez d'apprendre à un ordinateur à comprendre la parole comme le font les humains. C'est là qu'interviennent les coefficients cepstraux de fréquence Mel (MFCC).
Les MFCC sont des caractéristiques audio spéciales qui décomposent le son d'une manière similaire à celle de nos oreilles. Ils sont particulièrement efficaces parce qu'ils se concentrent sur les fréquences auxquelles l'homme est le plus sensible. Il s'agit de traduire le son dans un format que l'ordinateur et l'oreille humaine trouveront significatif.
Coefficients cepstraux de fréquence Mel
Le processus commence par la décomposition du signal audio en courts morceaux, d'une durée de 20 à 40 millisecondes. Pour chaque morceau, nous appliquons une série de transformations mathématiques qui convertissent les ondes sonores brutes en composantes de fréquence. C'est là que les choses deviennent intéressantes. Au lieu de traiter toutes les fréquences de la même manière, nous utilisons ce que l'on appelle l'échelle de Mel.
Cette formule peut sembler complexe, mais il s'agit simplement d'établir une correspondance entre les fréquences et la façon dont les humains perçoivent le son. Nos oreilles détectent mieux les différences dans les basses fréquences que dans les hautes, et l'échelle Mel tient compte de ce biais naturel.
Dans la reconnaissance vocale, les MFCC servent de base pour comprendre qui parle et ce qu'il dit. Lorsque vous parlez à l'assistant virtuel de votre téléphone, il est probable qu'il utilise les MFCC pour traiter votre voix. Ces coefficients permettent de saisir les caractéristiques uniques de la voix de chaque personne, ce qui les rend inestimables pour les systèmes d'identification des locuteurs.
Pour l'analyse des sentiments dans la parole, les MFCC permettent de détecter les variations subtiles de la voix qui indiquent les émotions. Ils peuvent capter les changements de hauteur, de ton et de débit de parole qui peuvent indiquer si une personne est heureuse, triste, en colère ou neutre. Par exemple, lors de l'analyse des appels au service clientèle, les MFCC peuvent aider à identifier les niveaux de satisfaction des clients en se basant sur la façon dont ils parlent, et pas seulement sur ce qu'ils disent.
Extraction des caractéristiques des séries temporelles
Lorsque vous travaillez avec des séries chronologiques l'extraction de caractéristiques significatives nous aide à capturer les modèles et les tendances qui évoluent dans le temps. Examinons quelques techniques clés utilisées pour transformer des données brutes de séries temporelles en caractéristiques utiles.
Méthodes d'extraction des caractéristiques des séries temporelles
La transformée de Fourier décompose les données d'une série temporelle en ses composantes de fréquence, révélant ainsi des modèles périodiques cachés. La formule est la suivante :
Les méthodes statistiques complètent l'analyse des fréquences en saisissant les caractéristiques temporelles. Les caractéristiques communes comprennent les moyennes mobiles, les écarts types et les composantes de la tendance. Ces techniques sont particulièrement efficaces dans les domaines suivants prévisions financièresoù elles permettent d'identifier les tendances et les anomalies du marché.
Par exemple, dans l'analyse des marchés boursiers, la combinaison des caractéristiques de Fourier avec des mesures statistiques peut révéler à la fois des tendances à long terme et des modèles cycliques. De même, en milieu industriel, ces méthodes permettent de détecter les anomalies des équipements en analysant les schémas de données des capteurs au fil du temps.
Outils et bibliothèques pour l'extraction de caractéristiques
Examinons quelques outils essentiels qui rendent la mise en œuvre de ces méthodes d'extraction de caractéristiques simple et efficace.
Outils et bibliothèques pour l'extraction de caractéristiques
Pour le traitement des images, OpenCV et scikit-image fournissent des outils complets pour la mise en œuvre de diverses techniques d'extraction de caractéristiques. Ces bibliothèques offrent des implémentations efficaces de SIFT, HOG et d'autres algorithmes dont nous avons parlé précédemment. Lorsque vous travaillez avec des approches d'apprentissage profond, des cadres tels que TensorFlow et PyTorch deviennent inestimables. Vous pouvez commencer avec notre tutoriel OpenCV pour en savoir plus.
Les tâches de traitement audio sont simplifiées par des bibliothèques telles que LibROSA, qui excelle dans l'extraction des MFCC et d'autres caractéristiques acoustiques. PyAudioAnalysis étend ces capacités avec des interfaces de haut niveau pour les tâches d'analyse audio.
Pour les données de séries temporelles, tsfresh et Featuretools automatisent le processus d'extraction des caractéristiques. Ces bibliothèques peuvent générer et sélectionner automatiquement des caractéristiques pertinentes à partir de vos données temporelles, ce qui permet de se concentrer sur le développement de modèles plutôt que sur l'ingénierie des caractéristiques.
Exemple d'extraction de caractéristiques
Mettons nos connaissances en pratique à l'aide de quelques exemples concrets. Nous commencerons par l'extraction de caractéristiques d'images, l'une des applications les plus courantes de la vision par ordinateur.
Extraction de caractéristiques d'images à l'aide d'OpenCV
Tout d'abord, importons les bibliothèques nécessaires
# Import required libraries
import cv2
import numpy as np
import matplotlib.pyplot as plt
Chargeons maintenant une image pour en extraire les caractéristiques pertinentes. Pour cet exemple, nous utiliserons une image de Godzilla téléchargée sur Internet.
# Load the image
image = cv2.imread('godzilla.jpg')
# Convert BGR to RGB (OpenCV loads in BGR format)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# Display the original image
plt.imshow(image_rgb)
plt.title('Original Image')
plt.axis('off')
plt.show()
Sortie :
Avant d'appliquer la détection des contours, nous devons prétraiter notre image. Nous procédons comme suit :
# Convert the image to grayscale
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Apply Gaussian blur to reduce noise
blurred = cv2.GaussianBlur(gray_image, (5, 5), 0)
Enfin, appliquons l'algorithme de détection des contours de Canny et visualisons les résultats :
# Apply Canny edge detection
edges = cv2.Canny(blurred, threshold1=100, threshold2=200)
# Display the results
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.imshow(image_rgb)
plt.title('Original Image')
plt.axis('off')
plt.subplot(1, 2, 2)
plt.imshow(edges, cmap='gray')
plt.title('Edge Detection')
plt.axis('off')
plt.tight_layout()
plt.show()
Sortie :
Le détecteur de bords Canny nous aide à identifier les limites et les caractéristiques importantes de notre image, qui peuvent être utilisées pour une analyse plus approfondie ou comme entrée dans des modèles d'apprentissage automatique.
Extraction de MFCC à partir de données audio à l'aide de LibROSA
Avant de commencer à traiter les fichiers audio, nous devons installer les bibliothèques nécessaires. LibROSA n'étant pas inclus dans la bibliothèque standard de Python, nous utiliserons pip pour l'installer :
# Install required libraries
# Run these commands in your terminal or command prompt
pip install librosa
pip install numpy
pip install matplotlib
LibROSA est une puissante bibliothèque conçue pour l'analyse musicale et audio. Commençons donc par l'importer avec les autres bibliothèques nécessaires :
# Import required libraries
import librosa
import librosa.display
import numpy as np
import matplotlib.pyplot as plt
Les fichiers audio contiennent de nombreuses informations sous forme d'ondes. Pour travailler avec ces données, nous devons d'abord les charger dans notre programme. LibROSA nous aide à le faire en convertissant le fichier audio dans un format que nous pouvons analyser :
# Load the audio file
# Duration is limited to 10 seconds for this example
audio_path = 'audio_sample.wav'
y, sr = librosa.load(audio_path, duration=10)
# Display the waveform
plt.figure(figsize=(10, 4))
plt.plot(y)
plt.title('Audio Waveform')
plt.show()
Sortie :
Maintenant que nous avons chargé notre fichier audio, nous devons en extraire des caractéristiques significatives. Nos oreilles décomposent naturellement le son en différentes composantes de fréquence, et le MFCC imite ce processus. Nous utilisons la fonction d'extraction de caractéristiques de librosa pour calculer ces coefficients :
# Extract MFCC features
mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13)
# Display the MFCC
plt.figure(figsize=(10, 4))
librosa.display.specshow(mfccs, x_axis='time')
plt.colorbar(format='%+2.0f dB')
plt.title('MFCC')
plt.show()
Sortie :
Ici, nous avons choisi n_mfcc
=13
parce que les 13 premiers coefficients capturent généralement les aspects les plus importants du son qui aident dans des tâches telles que la reconnaissance vocale. La visualisation qui en résulte montre comment ces caractéristiques évoluent dans le temps, , où les couleurs plus vives représentent des valeurs plus élevées.
Extraction de caractéristiques à partir de données de séries temporelles avec tsfresh
Commençons par installer les bibliothèques nécessaires. Nous utiliserons le site yfinance
pour obtenir des données financières, ainsi que le site tsfresh
pour l'extraction de caractéristiques :
# Install required libraries
# Run these commands in your terminal or command prompt
pip install tsfresh
pip install pandas
pip install numpy
pip install matplotlib
pip install yfinance
Importons maintenant nos bibliothèques et récupérons des données financières réelles :
# Import required libraries
import pandas as pd
import numpy as np
from tsfresh import extract_features
from tsfresh.feature_extraction import MinimalFCParameters
import matplotlib.pyplot as plt
import yfinance as yf
Prenons des données réelles sur les marchés boursiers. Nous utiliserons les données relatives aux actions d'Apple à titre d'exemple :
# Download Apple's stock data for the last 2 years
aapl = yf.Ticker("AAPL")
df = aapl.history(period="2y")
# Prepare the data in the format tsfresh expects
df_tsfresh = pd.DataFrame({
'id': [0] * len(df), # Each time series needs an ID
'time': range(len(df)),
'closing_price': df['Close'] # We'll use closing prices
})
# Display first few rows of our data
print("Original stock data shape:", df_tsfresh.shape)
print("\nFirst few rows:")
print(df_tsfresh.head())
Sortie :
Extrayons maintenant les caractéristiques de nos données financières chronologiques :
# Set up the feature extraction parameters
extraction_settings = MinimalFCParameters()
# Extract features automatically
extracted_features = extract_features(df_tsfresh,
column_id='id',
column_sort='time',
column_value='values',
default_fc_parameters=extraction_settings)
# Display the extracted features
print("\nExtracted features shape:", extracted_features.shape)
print("\nExtracted features:")
print(extracted_features.head())
Sortie :
Ici, nous utilisons MinimalFCParameters()
pour spécifier les caractéristiques à extraire. Nous disposons ainsi d'un ensemble de caractéristiques de séries temporelles significatives, telles que la moyenne, la variance et les caractéristiques de tendance, qui sont essentielles pour comprendre les schémas de nos données.
Défis en matière d'extraction de caractéristiques
Lors de l'extraction de caractéristiques, nous rencontrons souvent des difficultés.
Le traitement de grands ensembles de données entraîne souvent des contraintes de dimensionnement et de calcul. Par exemple, l'extraction de caractéristiques à partir d'images à haute résolution ou de longs fichiers audio peut consommer beaucoup de mémoire et de puissance de traitement.
Le surajustement dû à des caractéristiques non pertinentes ou redondantes est un autre problème courant. Lorsque trop de caractéristiques sont extraites, les modèles risquent d'apprendre du bruit au lieu de modèles significatifs. Cette situation est particulièrement fréquente dans le traitement des images et de l'audio, où des milliers de caractéristiques peuvent être générées.
Pour surmonter ces difficultés, envisagez les stratégies suivantes :
- Utiliser la connaissance du domaine pour sélectionner les caractéristiques pertinentes
- Appliquer des méthodes de sélection des caractéristiques pour réduire la dimensionnalité
- Mettre en œuvre des techniques d'ingénierie des caractéristiques appropriées en fonction de votre type de données
Ces défis nécessitent une réflexion approfondie et un équilibre entre la richesse des caractéristiques et l'efficacité des calculs.
Conclusion
L'extraction de caractéristiques est une compétence fondamentale de l'apprentissage automatique qui transforme les données brutes en représentations significatives. Grâce à nos exemples pratiques avec OpenCV, LibROSA et tsfresh, nous avons vu comment extraire des caractéristiques à partir de différents types de données. En comprenant ces techniques et leurs défis, nous pouvons construire des modèles d'apprentissage automatique efficaces.
Prêt à aller plus loin ? Consultez ces ressources :
FAQ sur l'extraction de caractéristiques
Quelle est la différence entre l'extraction et la sélection des caractéristiques ?
L'extraction de caractéristiques crée de nouvelles caractéristiques à partir de données existantes, tandis que la sélection de caractéristiques choisit les caractéristiques existantes les plus pertinentes.
L'extraction de caractéristiques peut-elle réduire l'ajustement excessif ?
Oui, l'extraction de caractéristiques peut réduire le surajustement en créant une représentation plus compacte des données.
Comment l'extraction de caractéristiques améliore-t-elle les performances du modèle ?
Il réduit la complexité des données et met en évidence les schémas importants, ce qui améliore la précision et l'efficacité du modèle.
Quand dois-je utiliser l'extraction de caractéristiques ?
Utilisez l'extraction de caractéristiques lorsque vous traitez des données hautement dimensionnelles ou lorsque vous devez capturer des modèles essentiels dans vos données.
Je suis rédacteur de contenu en science des données. J'aime créer du contenu sur des sujets liés à l'IA/ML/DS. J'explore également de nouveaux outils d'intelligence artificielle et j'écris à leur sujet.
Les meilleurs cours de DataCamp
cours
Ingénierie des caractéristiques pour l'apprentissage automatique en Python
cours