Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Singulärwertzerlegung (SVD) | Lineare Algebra und Matrixoperationen
Einführung in SciPy

Singulärwertzerlegung (SVD)

Swipe um das Menü anzuzeigen

Die Singulärwertzerlegung (SVD) ist eine mathematische Methode, die hilft, komplexe Daten zu verstehen und zu vereinfachen. Stellen Sie sich vor, Sie haben eine große Zahlentabelle – mit SVD lässt sich diese Tabelle in drei kleinere, leichter verständliche Teile zerlegen. Jeder Teil zeigt unterschiedliche Aspekte der ursprünglichen Daten, wie zum Beispiel die wichtigsten Muster oder bedeutende Merkmale.

Das Ziel der SVD ist es, komplizierte Informationen verständlich zu machen. Durch die Zerlegung einer Matrix (einem Zahlenraster) in einfachere Komponenten können Sie:

  • Die wichtigsten Trends oder Merkmale in Ihren Daten erkennen;
  • Störgeräusche oder irrelevante Details entfernen, die Ihre Analyse beeinträchtigen könnten;
  • Die Menge an Informationen reduzieren, die gespeichert oder verarbeitet werden muss, wodurch Berechnungen schneller und effizienter werden;
  • Verborgene Zusammenhänge oder Strukturen entdecken, die auf den ersten Blick nicht ersichtlich sind.

SVD wird in vielen alltäglichen Technologien und wissenschaftlichen Bereichen eingesetzt. Zum Beispiel:

  • Bei der Bildkomprimierung hilft SVD, die Dateigröße von Fotos zu verringern, ohne wichtige Details zu verlieren;
  • In der Musik- und Sprachverarbeitung trägt sie dazu bei, Hintergrundgeräusche zu reduzieren und Signale zu klären;
  • In Empfehlungssystemen, wie sie von Streaming-Diensten verwendet werden, erkennt SVD Muster in Ihren Vorlieben, um neue Inhalte vorzuschlagen;
  • In der Verarbeitung natürlicher Sprache hilft sie, ähnliche Themen oder Bedeutungen in großen Textsammlungen zu gruppieren.

Das Verständnis der SVD bietet ein leistungsfähiges Werkzeug für die Arbeit mit Daten, unabhängig vom eigenen Hintergrund. Sie ermöglicht es, wertvolle Erkenntnisse zu gewinnen, Informationen zu vereinfachen und die Leistungsfähigkeit moderner digitaler Systeme zu verbessern.

12345678910111213
import numpy as np from scipy.linalg import svd # Create a sample matrix A = np.array([[3, 1, 1], [-1, 3, 1]]) # Compute the Singular Value Decomposition U, s, VT = svd(A) print("U matrix:\n", U) print("Singular values:", s) print("VT matrix:\n", VT)
Code-Beschreibung
expand arrow

Dieser Code zeigt, wie man die Singulärwertzerlegung (SVD) mit SciPy in Python durchführt:

  • Zunächst werden die benötigten Bibliotheken importiert: numpy zum Erstellen und Bearbeiten von Arrays sowie scipy.linalg.svd zur Durchführung der SVD;
  • Eine Beispielmatrix A wird als 2x3-Array von Zahlen erstellt;
  • Die Funktion svd zerlegt die Matrix A in drei Komponenten: U, s und VT. Dabei enthält U die linken Singulärvektoren, s die Singulärwerte und VT die rechten Singulärvektoren (transponiert);
  • Der Code gibt jede dieser Komponenten in der Konsole aus, sodass Sie die Ergebnisse der Zerlegung sehen können.

Dieses Beispiel hilft dabei, zu verstehen, wie eine Matrix in ihre grundlegenden Bestandteile zerlegt werden kann, was für Datenanalyse, Komprimierung und das Erkennen von Mustern in Daten nützlich ist.

12345678910111213141516171819202122
import numpy as np from scipy.linalg import svd # Original matrix A = np.array([[3, 1, 1], [-1, 3, 1]]) # Full SVD U, s, VT = svd(A) # Reconstruct the original matrix from all singular values S_full = np.zeros((U.shape[1], VT.shape[0])) np.fill_diagonal(S_full, s) A_reconstructed = np.dot(U, np.dot(S_full, VT)) print("Reconstructed matrix (all singular values):\n", A_reconstructed) # Truncate to keep only the largest singular value S_truncated = np.zeros_like(S_full) S_truncated[0, 0] = s[0] A_truncated = np.dot(U, np.dot(S_truncated, VT)) print("Reconstructed matrix (truncated):\n", A_truncated)
Codebeschreibung
expand arrow

Dieser Code zeigt, wie die Singulärwertzerlegung (SVD) verwendet wird, um eine Matrix zu zerlegen und sie anschließend mit allen oder nur einigen ihrer Singulärwerte wiederherzustellen. Schritt für Schritt passiert Folgendes:

  1. Erstellung der Ausgangsmatrix: Mit NumPy wird eine Matrix A definiert. Dies ist der Ausgangspunkt für die SVD.
  2. Vollständige SVD: Die Funktion svd aus SciPy zerlegt A in drei Matrizen: U, s und VT. Diese repräsentieren die linken Singulärvektoren, die Singulärwerte und die rechten Singulärvektoren.
  3. Rekonstruktion mit allen Singulärwerten: Es wird eine Diagonalmatrix S_full aus den Singulärwerten erstellt und die Matrizen (U, S_full, VT) werden miteinander multipliziert, um die ursprüngliche Matrix wiederherzustellen. Dies zeigt, dass die SVD die Matrix perfekt rekonstruieren kann, wenn alle Singulärwerte verwendet werden.
  4. Trunkierung zur Approximation: Es wird eine neue Diagonalmatrix S_truncated erstellt, die nur den größten Singulärwert behält (die restlichen werden auf Null gesetzt). Die Multiplikation von U, S_truncated und VT ergibt eine Annäherung an die ursprüngliche Matrix. Dieser Schritt demonstriert die Dimensionsreduktion: Durch die Verwendung weniger Singulärwerte wird die Matrix vereinfacht, wobei die wichtigsten Merkmale erhalten bleiben.
  5. Ausgabe: Der Code gibt sowohl die vollständig rekonstruierte Matrix als auch die trunkierte Version aus, sodass die Auswirkungen der Dimensionsreduktion verglichen werden können. Die trunkierte Matrix erfasst die Hauptstruktur, verliert jedoch einige Details, was zeigt, wie SVD zur Datenkompression und Merkmalsextraktion eingesetzt werden kann.

SVD ist besonders wertvoll für die Dimensionsreduktion. Indem nur die größten Singulärwerte und ihre zugehörigen Vektoren beibehalten werden, kann die ursprüngliche Matrix mit deutlich weniger Dimensionen angenähert werden. Dieser Prozess entfernt Rauschen und redundante Informationen, wodurch die Daten leichter zu visualisieren und zu verarbeiten sind, während die wichtigsten Merkmale erhalten bleiben. In der Praxis bedeutet dies, dass Datensätze komprimiert, Machine-Learning-Algorithmen beschleunigt und die zugrunde liegende Struktur der Daten aufgedeckt werden kann.

1. Welche drei Matrizen entstehen bei der SVD?

2. Wie kann die SVD zur Datenkomprimierung verwendet werden?

3. Welche SciPy-Funktion wird für die Singulärwertzerlegung verwendet?

question mark

Welche drei Matrizen entstehen bei der SVD?

Wählen Sie die richtige Antwort aus

question mark

Wie kann die SVD zur Datenkomprimierung verwendet werden?

Wählen Sie die richtige Antwort aus

question mark

Welche SciPy-Funktion wird für die Singulärwertzerlegung verwendet?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 2. Kapitel 5
some-alt