Direkt zum Inhalt

Merkmalsextraktion beim maschinellen Lernen: Ein vollständiger Leitfaden

Beherrsche Techniken zur Merkmalsextraktion mit praktischen Python-Beispielen für Bild-, Audio- und Zeitreihendaten. Lerne, wie du Rohdaten in aussagekräftige Merkmale umwandelst und häufige Herausforderungen bei Anwendungen des maschinellen Lernens meisterst.
Aktualisierte 11. Feb. 2025  · 13 Min. Lesezeit

Die Merkmalsextraktion beim maschinellen Lernen wandelt Rohdaten in eine Reihe von aussagekräftigen Merkmalen um, die wichtige Informationen erfassen und gleichzeitig Redundanzen reduzieren. Sie kann Techniken zur Dimensionalitätsreduzierung und Methoden beinhalten, die aus vorhandenen Daten neue Merkmale erzeugen.

Stell dir vor, du versuchst, die Früchte auf einem Markt zu identifizieren. Du könntest zwar unzählige Merkmale berücksichtigen (Gewicht, Farbe, Beschaffenheit, Form, Geruch usw.), aber du wirst vielleicht feststellen, dass nur ein paar Schlüsselmerkmale wie Farbe und Größe ausreichen, um Äpfel und Birnen zu unterscheiden. Das ist genau das, was die Merkmalsextraktion macht. Es hilft dir, dich auf die informativsten Merkmale deiner Daten zu konzentrieren.

Bei der Merkmalsextraktion werden die ursprünglichen Daten mathematisch in einen neuen Satz von Merkmalen umgewandelt. Diese neuen Funktionen wurden entwickelt, um die wichtigsten Aspekte der Daten zu erfassen und gleichzeitig die Komplexität der Daten zu reduzieren. Die extrahierten Merkmale stellen oft zugrundeliegende Muster oder Strukturen dar, die in den Originaldaten nicht sofort erkennbar sind.

Merkmalsextraktion

Merkmalsextraktion

In den nächsten Abschnitten werden wir untersuchen, warum die Merkmalsextraktion beim maschinellen Lernen so wichtig ist, und uns verschiedene Methoden zur Extraktion von Merkmalen aus verschiedenen Datentypen sowie deren Code ansehen. Wenn du ein paar praktische Beispiele sehen willst, schau dir unseren Kurs Dimensionalitätsreduktion in Pythonin dem es ein Kapitel über die Merkmalsextraktion gibt.

Warum ist die Merkmalsextraktion beim maschinellen Lernen wichtig?

Die Merkmalsextraktion spielt beim maschinellen Lernen eine wichtige Rolle. Sie kann den Unterschied zwischen einem Modell, das scheitert, und einem, das Erfolg hat, ausmachen. Sehen wir uns an, warum dies so grundlegend für die Entwicklung effektiver maschineller Lernmodelle ist.

Verbesserung der Modellgenauigkeit und -effizienz

Wenn du mit Rohdaten arbeitest, maschinelles Lernen Modelle oft Schwierigkeiten, zwischen sinnvollen Mustern und Rauschen zu unterscheiden. Die Merkmalsextraktion ist ein Schritt der Datenvorverarbeitung, der die Lern- und Leistungsfähigkeit deiner Modelle erheblich verbessern kann.

Modellleistung versus Trainingszeit

Modellleistung versus Trainingszeit

Wenn ein Modell zum Beispiel mit Rohdaten eine Genauigkeit von 85% erreicht, kann dasselbe Modell 95% erreichen, wenn es mit sorgfältig extrahierten Merkmalen trainiert wird. Diese Verbesserung entsteht nicht dadurch, dass das Modell verändert wird, sondern dadurch, dass es qualitativ bessere Eingabedaten erhält, aus denen es lernen kann.

Verwaltung hochdimensionaler Datensätze

Moderne Datensätze enthalten oft Hunderte oder Tausende von Merkmalen. Das bringt einige Herausforderungen mit sich, bei denen die Merkmalsextraktion hilft.

  • Der Fluch der Dimensionalität: Wenn die Anzahl der Merkmale steigt, werden die Daten im Merkmalsraum immer spärlicher. Das macht es für Modelle schwieriger, aussagekräftige Muster zu finden. Die Merkmalsextraktion schafft eine kompaktere Darstellung, die wichtige Beziehungen beibehält und gleichzeitig die Dimensionalität reduziert.
  • Hoher Speicherverbrauch: Hochdimensionale Daten erfordern mehr Speicherplatz und Speicher bei der Verarbeitung. Indem wir nur die relevantesten Merkmale extrahieren, können wir den Speicherbedarf unserer Datensätze erheblich reduzieren und gleichzeitig ihre Aussagekraft erhalten.
  • Datenvisualisierung: Es ist unmöglich, Daten mit mehr als drei Dimensionen direkt zu visualisieren. Die Merkmalsextraktion kann die Dimensionalität auf zwei oder drei Merkmale reduzieren, so dass die Datenstruktur visuell dargestellt und verstanden werden kann.

Die Merkmalsextraktion begegnet diesen Herausforderungen, indem sie die Dimensionalität reduziert und gleichzeitig die wesentlichen Informationen bewahrt. Durch diese Reduktion werden umfangreiche, hochdimensionale Daten in eine kompaktere und handlichere Form umgewandelt, was zu einer verbesserten Modellleistung führt.

Verringerung der Rechenkomplexität und Vermeidung von Overfitting

Die Merkmalsextraktion bietet zwei entscheidende Vorteile für maschinelle Lernmodelle:

  1. Geringere Berechnungsanforderungen
    1. Weniger Funktionen bedeuten schnellere Trainingszeiten
    2. Geringerer Speicherverbrauch bei der Modellbereitstellung
    3. Effizientere Erstellung von Vorhersagen
  2. Bessere Verallgemeinerung
    1. Einfachere Merkmalsräume helfen, Überanpassung zu vermeiden
    2. Modelle lernen robustere Muster
    3. Verbesserte Leistung bei neuen, ungesehenen Daten

Merkmalsextraktionen versus ohne Merkmalsextraktion

Merkmalsextraktionen versus ohne Merkmalsextraktion

Die obige Visualisierung veranschaulicht, wie die Merkmalsextraktion zu einfacheren, robusteren Modellen führen kann. Die linke Grafik zeigt ein komplexes Modell, das versucht, verrauschte, hochdimensionale Daten zu erfassen, während die rechte Grafik zeigt, wie die Merkmalsextraktion ein klareres, verallgemeinerbares Muster aufzeigen kann.

Wenn du mit extrahierten Merkmalen statt mit Rohdaten arbeitest, ist das so, als würdest du deinem Modell eine klare, destillierte Version der Informationen geben, aus denen es lernen soll. Das macht den Lernprozess nicht nur effizienter, sondern führt auch zu Modellen, die sich in der Praxis besser bewähren.

Als Nächstes wollen wir uns verschiedene Methoden der Merkmalsextraktion ansehen.

Methoden der Merkmalsextraktion

Die Methoden der Merkmalsextraktion lassen sich grob in zwei Hauptansätze unterteilen: die manuelle und die automatische Merkmalsextraktion. Schauen wir uns diese beiden Methoden an, um zu verstehen, wie sie helfen, Rohdaten in aussagekräftige Merkmale zu verwandeln.

Manuelles Feature Engineering

Beim manuellen Feature-Engineering werden mithilfe von Fachwissen relevante Merkmale aus Rohdaten identifiziert und erstellt. Dieser praktische Ansatz beruht auf unserem Verständnis des Problems und der Daten, um aussagekräftige Funktionen zu entwickeln.

In BildverarbeitungBei der manuellen Merkmalsbearbeitung können Techniken wie die Kantenerkennung zur Identifizierung von Objektgrenzen, Farbhistogramme zur Erfassung der Farbverteilung, Texturanalysen zur Quantifizierung von Mustern und Formdeskriptoren zur Charakterisierung der Objektgeometrie zum Einsatz kommen.

Bildmerkmalsextraktion

Extraktion von Bildmerkmalen

Bei tabellarischen Daten umfasst das manuelle Feature Engineering die Erstellung von Interaktionsterms zwischen vorhandenen Merkmalen, die Transformation von Variablen mithilfe von logarithmischen oder polynomischen Funktionen, die Aggregation von Datenpunkten zu aussagekräftigen Statistiken und die Kodierung kategorischer Variablen. 

Tabellarische Daten Merkmalsextraktion

Extraktion von Merkmalen aus tabellarischen Daten

Diese Techniken, die von Fachwissen geleitet werden, verbessern die Qualität der Datendarstellung und können die Modellleistung erheblich verbessern.

Automatisierte Merkmalsextraktion

Bei der automatisierten Merkmalsextraktion werden Algorithmen verwendet, um Merkmale ohne ausdrückliche menschliche Anleitung zu entdecken und zu erstellen. Diese Methoden sind besonders nützlich, wenn es um komplexe Datensätze geht, bei denen ein manuelles Feature-Engineering unpraktisch oder ineffizient sein könnte.

Zu den gängigen automatisierten Ansätzen gehören:

Hauptkomponentenanalyse (PCA): Transformiert Daten in eine Reihe unkorrelierter Komponenten, wobei jede Komponente die maximale verbleibende Varianz erfasst. Dieser Ansatz ist besonders nützlich für Dimensionalitätsreduktionda er die wesentlichen Informationen in den Daten bewahrt und gleichzeitig ihre Struktur vereinfacht.

Principal Component Analysis(PCA)

Hauptkomponentenanalyse (PCA)

Autoencoder: Das sind neuronale Netze, die komprimierte Darstellungen von Daten lernen und dabei nicht-lineare Beziehungen erfassen. Sie sind besonders effektiv bei hochdimensionalen Datensätzen, bei denen traditionelle lineare Methoden versagen können.

Es gibt verschiedene Tools und Bibliotheken, die das Feature Engineering vereinfachen. Das Scikit-learn-Modul Dekomposition bietet zum Beispiel eine Reihe von Methoden zur Dimensionalitätsreduktion, und PyCaret ermöglicht die automatische Auswahl von Merkmalen.

Sowohl manuelle als auch automatisierte Ansätze haben ihre Stärken. Schauen wir uns die Stärken der einzelnen Ansätze an.

Handbuch Technik

Automatisierte Extraktion

Integration von Fachwissen

Skalierbarkeit

Interpretierbare Merkmale

Behandelt komplexe Muster

Feinkörnige Kontrolle

Reduziert menschliche Voreingenommenheit

Angepasst an spezifische Bedürfnisse

Entdeckt versteckte Beziehungen

Die Entscheidung zwischen manuellen und automatisierten Methoden hängt oft von Faktoren wie der Komplexität der Datensätze, der Verfügbarkeit von Fachwissen, den Anforderungen an die Interpretierbarkeit, den Computerressourcen und den zeitlichen Beschränkungen ab.

Bei hochkomplexen Datensätzen oder wenn Zeit und Ressourcen begrenzt sind, können automatisierte Methoden schnell nützliche Merkmale erzeugen. Umgekehrt können manuelle Methoden vorzuziehen sein, wenn Fachwissen vorhanden ist und die Interpretierbarkeit im Vordergrund steht, denn sie ermöglichen ein maßgeschneidertes Feature-Engineering, das sich eng an das jeweilige Problem anlehnt.

In der Praxis kombinieren viele erfolgreiche Projekte zum maschinellen Lernen beide Ansätze, indem sie Fachwissen nutzen, um die Entwicklung von Merkmalen zu steuern, und gleichzeitig automatisierte Methoden einsetzen, um zusätzliche Muster zu entdecken, die für menschliche Experten nicht sofort erkennbar sind.

Im nächsten Abschnitt werden wir uns verschiedene Techniken zur Merkmalsextraktion in unterschiedlichen Bereichen ansehen.

Techniken der Merkmalsextraktion

Jede Art von Daten erfordert spezifische Techniken zur Merkmalsextraktion, die für ihre einzigartigen Eigenschaften optimiert sind. Schauen wir uns die gängigsten Techniken für verschiedene Arten von Daten an.

Techniken der Merkmalsextraktion

Techniken der Merkmalsextraktion

Extraktion von Bildmerkmalen

Die Extraktion von Bildmerkmalen wandelt rohe Pixeldaten in aussagekräftige Darstellungen um, die wichtige visuelle Informationen erfassen. Es gibt drei Hauptkategorien von Techniken, die in der modernen Computer Vision verwendet werden. Dabei handelt es sich um traditionelle Methoden, auf Deep Learning basierende Methoden und statistische Methoden.

Methoden zur Extraktion von Bildmerkmalen

Methoden zur Extraktion von Bildmerkmalen

Schauen wir uns jede der Methoden an.

Traditionelle Computer Vision Methoden

Scale-Invariant Feature Transform (SIFT) ist eine robuste Methode, die markante lokale Merkmale in Bildern erkennt. Es funktioniert, indem es Schlüsselpunkte identifiziert und Deskriptoren erstellt, die sind:

  • Unveränderlich bei Skalierung und Drehung des Bildes
  • Teilweise unveränderlich gegenüber Beleuchtungsänderungen
  • Robust gegenüber lokalen geometrischen Verzerrungen

Der SIFT-Algorithmus verarbeitet Bilder in mehreren Stufen. Es beginnt mit der Erkennung von Skalenextremen, um potenzielle Schlüsselpunkte zu identifizieren, die nicht skalierbar sind. Als Nächstes verfeinert die Schlüsselpunktlokalisierung diese Kandidaten, indem sie ihre genaue Position bestimmt und instabile Punkte verwirft.

Im Anschluss daran bestimmt die Orientierungszuweisung eine konsistente Orientierung für jeden Schlüsselpunkt und gewährleistet so die Rotationsinvarianz. Schließlich werden durch die Generierung von Keypoint-Deskriptoren unverwechselbare Deskriptoren auf der Grundlage lokaler Bildgradienten erstellt, die einen robusten Abgleich zwischen Bildern ermöglichen.

Eine weitere Methode ist das Histogram of Oriented Gradients (HOG). Sie erfasst lokale Forminformationen durch die Analyse von Gradientenmustern in einem Bild. Der Prozess beginnt mit der Berechnung von Farbverläufen im gesamten Bild, um Details an den Kanten hervorzuheben. 

Das Bild wird dann in kleine Zellen unterteilt, und für jede Zelle wird ein Histogramm der Gradientenausrichtungen erstellt, um die lokale Struktur zusammenzufassen. Schließlich werden diese Histogramme über größere Blöcke hinweg normalisiert, um die Robustheit gegenüber Beleuchtungs- und Kontrastschwankungen zu gewährleisten, was zu einem robusten Merkmalsdeskriptor für Aufgaben wie die Objekterkennung führt.

Deep Learning Methoden

Convolutional Neural Networks (CNNs) haben die Art und Weise verändert, wie wir Merkmale extrahieren, indem sie automatisch hierarchische Repräsentationen lernen.

Merkmalsextraktion mit CNN

Merkmalsextraktion mit CNN

CNNs lernen Merkmale durch ihre hierarchische Struktur. In den ersten Schichten erkennen sie grundlegende visuelle Elemente wie Kanten und Farben. Die mittleren Schichten kombinieren dann diese Elemente, um Muster und Formen zu erkennen, während die tieferen Schichten komplexe Objekte erfassen und das Verständnis der Szene ermöglichen.

Beim Transfer-Lernen können wir diese vorgelernten Merkmale aus Modellen verwenden, die auf großen Datensätzen trainiert wurden, was sie besonders wertvoll macht, wenn wir mit begrenzten Daten arbeiten.

Statistische Methoden

Statistische Methoden extrahieren sowohl globale als auch lokale Muster aus Bildern und ermöglichen so eine robuste Bildanalyse und Interpretation. 

Zum Beispiel, Farbhistogramme stellen die Verteilung der Farben in einem Bild dar und bieten rotations- und skalierungsunabhängige Merkmale, was sie für Aufgaben wie die Bildklassifizierung und das Retrieval besonders nützlich macht.

Die Texturanalyse erfasst wiederkehrende Muster und Oberflächenmerkmale mithilfe von Techniken wie Gray Level Co-occurrence Matrices (GLCM), die für Anwendungen wie Materialerkennung und Szenenklassifizierung effektiv sind.

Zusätzlich, Kantenerkennung identifiziert Grenzen und signifikante Intensitätsänderungen durch Methoden wie Sobel-, Canny- und Laplacian-Operatoren und spielt eine wichtige Rolle bei der Objekterkennung und Formanalyse.

Die Wahl der Methode zur Merkmalsextraktion hängt von mehreren Faktoren ab. Sie sollte sich an den spezifischen Anforderungen deiner Aufgabe orientieren, die verfügbaren Rechenressourcen berücksichtigen und der Notwendigkeit der Interpretierbarkeit Rechnung tragen. 

Außerdem spielen die Merkmale deines Datensatzes - wie Größe, Rauschpegel und Komplexität - eine entscheidende Rolle, ebenso wie die erforderlichen Invarianzeigenschaften wie Skalierung, Drehung und Beleuchtung.

Audio-Merkmalsextraktion

Stell dir vor, du versuchst, einem Computer beizubringen, Sprache so zu verstehen wie Menschen es tun. An dieser Stelle kommen die Mel-Frequency Cepstral Coefficients (MFCC) ins Spiel.

MFCCs sind spezielle Audiomerkmale, die Geräusche auf eine ähnliche Weise aufschlüsseln, wie unsere Ohren sie verarbeiten. Sie sind besonders effektiv, weil sie sich auf die Frequenzen konzentrieren, für die Menschen am empfindlichsten sind. Stell dir vor, sie übersetzen den Klang in ein Format, das sowohl für Computer als auch für das menschliche Gehör sinnvoll ist.

mfcc Merkmalsextraktion

Mel-Frequency Cepstral Coefficients

Der Prozess beginnt damit, dass das Audiosignal in kurze Abschnitte zerlegt wird, die in der Regel 20-40 Millisekunden lang sind. Für jeden Chunk wenden wir eine Reihe von mathematischen Transformationen an, die die rohen Schallwellen in Frequenzkomponenten umwandeln. Hier wird es interessant. Anstatt alle Frequenzen gleich zu behandeln, verwenden wir die sogenannte Mel-Skala.

Diese Formel sieht vielleicht kompliziert aus, aber es geht nur darum, die Frequenzen so zuzuordnen, dass sie der menschlichen Klangwahrnehmung entsprechen. Unsere Ohren können Unterschiede bei niedrigen Frequenzen besser wahrnehmen als bei hohen, und die Mel-Skala trägt dieser natürlichen Verzerrung Rechnung.

Bei der Spracherkennung dienen die MFCCs als Grundlage, um zu verstehen, wer spricht und was er/sie sagt. Wenn du mit dem virtuellen Assistenten deines Telefons sprichst, verwendet er wahrscheinlich MFCCs, um deine Stimme zu verarbeiten. Diese Koeffizienten helfen dabei, die einzigartigen Merkmale der Stimme jeder Person zu erfassen, was sie für Systeme zur Sprecheridentifizierung unschätzbar wertvoll macht.

Bei der Stimmungsanalyse in der Sprache helfen MFCCs dabei, subtile Veränderungen in der Stimme zu erkennen, die auf Emotionen hinweisen. Sie können Veränderungen in der Tonhöhe, im Tonfall und in der Sprechgeschwindigkeit erfassen, die anzeigen können, ob jemand glücklich, traurig, wütend oder neutral ist. Bei der Analyse von Kundendienstanrufen können MFCCs zum Beispiel dabei helfen, die Kundenzufriedenheit anhand der Art und Weise zu ermitteln, wie sie sprechen, und nicht nur anhand dessen, was sie sagen.

Extraktion von Zeitreihenmerkmalen

Bei der Arbeit mit Zeitreihen Bei der Arbeit mit Zeitreihendaten hilft uns das Extrahieren aussagekräftiger Merkmale dabei, Muster und Trends zu erfassen, die sich im Laufe der Zeit entwickeln. Sehen wir uns einige Schlüsseltechniken an, mit denen rohe Zeitreihendaten in nützliche Merkmale umgewandelt werden können.

Extraktion von Zeitreihenmerkmalen

Methoden zur Extraktion von Zeitreihenmerkmalen

Die Fourier-Transformation zerlegt Zeitreihendaten in ihre Frequenzkomponenten und deckt so versteckte periodische Muster auf. Die Formel lautet:

Statistische Methoden ergänzen die Häufigkeitsanalyse, indem sie die zeitlichen Merkmale erfassen. Zu den gängigen Funktionen gehören gleitende Durchschnitte, Standardabweichungen und Trendkomponenten. Diese Techniken sind besonders leistungsfähig bei Finanzprognosenwo sie helfen, Markttrends und Anomalien zu erkennen.

Bei der Aktienmarktanalyse zum Beispiel können durch die Kombination von Fourier-Merkmalen mit statistischen Messwerten sowohl langfristige Trends als auch zyklische Muster aufgedeckt werden. Auch in der Industrie helfen diese Methoden dabei, Anomalien in der Ausrüstung zu erkennen, indem sie die Muster der Sensordaten im Laufe der Zeit analysieren.

Tools und Bibliotheken für die Merkmalsextraktion

Schauen wir uns einige wichtige Tools an, die die Umsetzung dieser Methoden zur Merkmalsextraktion einfach und effizient machen.

Tools und Bibliotheken für die Merkmalsextraktion

Tools und Bibliotheken für die Merkmalsextraktion

Für die Bildverarbeitung bieten OpenCV und scikit-image umfassende Werkzeuge für die Umsetzung verschiedener Techniken zur Merkmalsextraktion. Diese Bibliotheken bieten effiziente Implementierungen von SIFT, HOG und anderen Algorithmen, die wir bereits besprochen haben. Wenn du mit Deep-Learning-Ansätzen arbeitest, sind Frameworks wie TensorFlow und PyTorch von unschätzbarem Wert. Den Einstieg findest du in unserem OpenCV-Anleitung um mehr zu erfahren.

Audioverarbeitungsaufgaben werden mit Bibliotheken wie LibROSA vereinfacht, die sich durch die Extraktion von MFCCs und anderen akustischen Merkmalen auszeichnen. PyAudioAnalysis erweitert diese Fähigkeiten um High-Level-Schnittstellen für Audioanalyseaufgaben.

Für Zeitreihendaten automatisieren tsfresh und Featuretools den Prozess der Merkmalsextraktion. Diese Bibliotheken können automatisch relevante Merkmale aus deinen zeitlichen Daten generieren und auswählen, sodass du dich besser auf die Modellentwicklung statt auf die Entwicklung von Merkmalen konzentrieren kannst.

Beispiel einer Merkmalsextraktion

Lass uns unser Wissen anhand einiger praktischer Beispiele in die Praxis umsetzen. Wir beginnen mit der Extraktion von Bildmerkmalen, einer der häufigsten Anwendungen in der Computer Vision.

Bildmerkmale mit OpenCV extrahieren 

Zunächst importieren wir die notwendigen Bibliotheken

# Import required libraries
import cv2
import numpy as np
import matplotlib.pyplot as plt

Laden wir nun ein Bild, um relevante Merkmale zu extrahieren. Für dieses Beispiel verwenden wir ein Bild von Godzilla, das wir aus dem Internet heruntergeladen haben.

# 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()

Ausgabe:

Bevor wir die Kantenerkennung anwenden, müssen wir unser Bild vorverarbeiten. Das machen wir folgendermaßen:

# 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)

Zum Schluss wenden wir den Canny-Algorithmus zur Kantenerkennung an und visualisieren die Ergebnisse:

# 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()

Ausgabe:

Der Canny-Kantendetektor hilft uns, wichtige Grenzen und Merkmale in unserem Bild zu erkennen, die für weitere Analysen oder als Input für maschinelle Lernmodelle verwendet werden können.

Extrahieren von MFCC aus Audio mit LibROSA

Bevor wir mit der Verarbeitung von Audiodateien beginnen können, müssen wir die erforderlichen Bibliotheken installieren. Da LibROSA nicht in der Standardbibliothek von Python enthalten ist, verwenden wir pip, um es zu installieren:

# Install required libraries
# Run these commands in your terminal or command prompt
pip install librosa
pip install numpy
pip install matplotlib

LibROSA ist eine leistungsstarke Bibliothek für die Musik- und Audioanalyse, also importieren wir sie zusammen mit anderen notwendigen Bibliotheken:

# Import required libraries
import librosa
import librosa.display
import numpy as np
import matplotlib.pyplot as plt

Tondateien enthalten eine Menge Informationen im Wellenformformat. Um mit diesen Daten zu arbeiten, müssen wir sie zunächst in unser Programm laden. LibROSA hilft uns dabei, indem es die Audiodatei in ein Format konvertiert, das wir analysieren können:

# 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()

Ausgabe:

Jetzt, wo wir unsere Audiodaten geladen haben, müssen wir sinnvolle Merkmale daraus extrahieren. Unsere Ohren zerlegen den Schall auf natürliche Weise in verschiedene Frequenzkomponenten, und MFCC ahmt diesen Prozess nach. Zur Berechnung dieser Koeffizienten verwenden wir die Funktion zur Merkmalsextraktion von librosa:

# 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()

Ausgabe:

Hier haben wir n_mfcc=13 gewählt, weil die ersten 13 Koeffizienten in der Regel die wichtigsten Aspekte des Klangs erfassen, die bei Aufgaben wie der Spracherkennung helfen. Die resultierende Visualisierung zeigt, wie sich diese Merkmale im Laufe der Zeit verändern, wobei hellere Farben höhere Werte darstellen.

Merkmalsextraktion aus Zeitreihendaten mit tsfresh

Installieren wir zunächst die benötigten Bibliotheken. Wir verwenden yfinance, um Finanzdaten zu erhalten, und tsfresh für die Merkmalsextraktion:

# 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

Jetzt importieren wir unsere Bibliotheken und holen uns ein paar echte Finanzdaten:

# 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

Lass uns ein paar echte Börsendaten besorgen. Wir nehmen die Daten der Apple-Aktie als Beispiel:

# 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())

Ausgabe:

Jetzt wollen wir Merkmale aus unseren finanziellen Zeitreihendaten extrahieren:

# 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())

Ausgabe:

Hier verwenden wir MinimalFCParameters(), um festzulegen, welche Merkmale extrahiert werden sollen. Auf diese Weise erhalten wir einen Grundstock an aussagekräftigen Zeitreihenmerkmalen wie Mittelwert, Varianz und Trendmerkmale, die für das Verständnis von Mustern in unseren Daten unerlässlich sind.

Herausforderungen bei der Merkmalsextraktion

Bei der Arbeit mit der Merkmalsextraktion stoßen wir oft auf Herausforderungen.

Beim Umgang mit großen Datensätzen entstehen oft hochdimensionale und rechenintensive Beschränkungen. Die Extraktion von Merkmalen aus hochauflösenden Bildern oder langen Audiodateien kann zum Beispiel viel Speicherplatz und Rechenleistung beanspruchen.

Eine weitere häufige Herausforderung ist die Überanpassung durch irrelevante oder redundante Merkmale. Wenn zu viele Merkmale extrahiert werden, kann es sein, dass die Modelle Rauschen statt sinnvoller Muster lernen. Das ist besonders bei der Bild- und Audioverarbeitung üblich, wo Tausende von Merkmalen erzeugt werden können.

Um diese Herausforderungen zu meistern, solltest du diese Strategien in Betracht ziehen:

  • Fachwissen nutzen, um relevante Merkmale auszuwählen
  • Methoden zur Merkmalsauswahl anwenden, um die Dimensionalität zu reduzieren
  • Implementiere die richtigen Techniken für das Feature Engineering basierend auf deinem Datentyp

Diese Herausforderungen erfordern eine sorgfältige Abwägung zwischen Merkmalsreichtum und Berechnungseffizienz.

Fazit

Die Merkmalsextraktion ist eine grundlegende Fähigkeit des maschinellen Lernens, die Rohdaten in aussagekräftige Darstellungen umwandelt. In unseren praktischen Beispielen mit OpenCV, LibROSA und tsfresh haben wir gesehen, wie man Merkmale aus verschiedenen Datentypen extrahiert. Wenn wir diese Techniken und ihre Herausforderungen verstehen, können wir effektive maschinelle Lernmodelle erstellen.

Bist du bereit, tiefer zu gehen? Schau dir diese Ressourcen an:

FAQs zur Merkmalsextraktion

Was ist der Unterschied zwischen Merkmalsextraktion und Merkmalsauswahl?

Bei der Merkmalsextraktion werden neue Merkmale aus vorhandenen Daten erstellt, während bei der Merkmalsauswahl die relevantesten vorhandenen Merkmale ausgewählt werden.

Kann die Merkmalsextraktion die Überanpassung reduzieren?

Ja, die Merkmalsextraktion kann die Überanpassung reduzieren, indem sie eine kompaktere Darstellung der Daten schafft.

Wie verbessert die Merkmalsextraktion die Leistung des Modells?

Es reduziert die Datenkomplexität und hebt wichtige Muster hervor, was zu einer besseren Modellgenauigkeit und Effizienz führt.

Wann sollte ich die Merkmalsextraktion nutzen?

Verwende die Merkmalsextraktion, wenn du es mit hochdimensionalen Daten zu tun hast oder wenn du wesentliche Muster in deinen Daten erfassen musst.


Author
Rajesh Kumar
LinkedIn

Ich bin Data Science Content Writer. Ich liebe es, Inhalte rund um KI/ML/DS-Themen zu erstellen. Außerdem erforsche ich neue KI-Tools und schreibe über sie.

Themen

Top DataCamp Kurse

Zertifizierung verfügbar

Kurs

Dimensionalitätsreduktion in Python

4 hr
31.4K
Verstehe das Konzept der Dimensionalitätsreduzierung in deinen Daten und beherrsche die Techniken, um dies in Python zu erreichen.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.

Nathaniel Taylor-Leach

4 Min.

Der Blog

Die 32 besten AWS-Interview-Fragen und Antworten für 2024

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interview-Fragen, zusammen mit Fragen, die auf realen Situationen basieren. Es deckt alle Bereiche ab und sorgt so für eine abgerundete Vorbereitungsstrategie.
Zoumana Keita 's photo

Zoumana Keita

30 Min.

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Mehr anzeigenMehr anzeigen