Das Zerlegen von Signalen in Komponenten

Machine LearningMachine LearningBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir das Thema der Zerlegung von Signalen in Komponenten mit Hilfe von Matrixfaktorisierungstechniken aus scikit-learn untersuchen. Wir werden Techniken wie die Hauptkomponentenanalyse (PCA), die unabhängige Komponentenanalyse (ICA), die nicht-negative Matrixfaktorisierung (NMF) und mehr behandeln. Dieses Lab wird Sie Schritt für Schritt durch den Prozess der Zerlegung von Signalen in ihre Komponenten führen.

Tipps für die VM

Nachdem die VM gestartet ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/AdvancedDataAnalysisandDimensionalityReductionGroup(["Advanced Data Analysis and Dimensionality Reduction"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/AdvancedDataAnalysisandDimensionalityReductionGroup -.-> sklearn/decomposition("Matrix Decomposition") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/decomposition -.-> lab-71118{{"Das Zerlegen von Signalen in Komponenten"}} ml/sklearn -.-> lab-71118{{"Das Zerlegen von Signalen in Komponenten"}} end

Hauptkomponentenanalyse (PCA)

Exakte PCA und probabilistische Interpretation

Die Hauptkomponentenanalyse (PCA) wird verwendet, um einen multivariate Datensatz in eine Reihe aufeinanderfolgender orthogonaler Komponenten zu zerlegen, die die maximale Varianz erklären. Die PCA kann mit der Klasse PCA aus scikit-learn implementiert werden. Die fit-Methode wird verwendet, um die Komponenten zu lernen, und die transform-Methode kann verwendet werden, um neue Daten auf diese Komponenten zu projizieren.

from sklearn.decomposition import PCA

## Erstellen eines PCA-Objekts mit n_components als Anzahl der gewünschten Komponenten
pca = PCA(n_components=2)

## Anpassen des PCA-Modells an die Daten
pca.fit(data)

## Transformation der Daten, indem sie auf die gelernten Komponenten projiziert werden
transformed_data = pca.transform(data)

Unabhängige Komponentenanalyse (ICA)

ICA zur Trennung von Blindquellen

Die Unabhängige Komponentenanalyse (ICA) wird verwendet, um gemischte Signale in ihre ursprünglichen Quellenkomponenten zu trennen. Sie geht davon aus, dass die Komponenten statistisch unabhängig sind und durch einen linearen Entmischungsprozess extrahiert werden können. Die ICA kann mit der Klasse FastICA aus scikit-learn implementiert werden.

from sklearn.decomposition import FastICA

## Erstellen eines ICA-Objekts mit n_components als Anzahl der gewünschten Komponenten
ica = FastICA(n_components=2)

## Anpassen des ICA-Modells an die gemischten Signale
ica.fit(mixed_signals)

## Trennen der gemischten Signale in die ursprünglichen Quellenkomponenten
source_components = ica.transform(mixed_signals)

Nicht-negative Matrixfaktorisierung (NMF)

NMF mit der Frobenius-Norm

Die Nicht-negative Matrixfaktorisierung (NMF) ist eine alternative Methode zur Zerlegung, die von nicht-negativen Daten und Komponenten ausgeht. Sie findet eine Zerlegung der Daten in zwei Matrizen aus nicht-negativen Elementen, indem sie die Distanz zwischen den Daten und dem Matrizenprodukt der beiden Matrizen optimiert. Die NMF kann mit der Klasse NMF aus scikit-learn implementiert werden.

from sklearn.decomposition import NMF

## Erstellen eines NMF-Objekts mit n_components als Anzahl der gewünschten Komponenten
nmf = NMF(n_components=2)

## Anpassen des NMF-Modells an die Daten
nmf.fit(data)

## Zerlegen der Daten in die zwei nicht-negativen Matrizen
matrix_W = nmf.transform(data)
matrix_H = nmf.components_

Latent Dirichlet Allokation (LDA)

LDA für die Themensuche

Die Latent Dirichlet Allokation (LDA) ist ein generatives probabilistisches Modell, das zur Entdeckung abstrakter Themen aus einer Sammlung von Dokumenten verwendet wird. Die LDA geht davon aus, dass Dokumente eine Mischung von Themen sind und dass Wörter von diesen Themen generiert werden. Die LDA kann mit der Klasse LatentDirichletAllocation aus scikit-learn implementiert werden.

from sklearn.decomposition import LatentDirichletAllocation

## Erstellen eines LDA-Objekts mit n_components als Anzahl der gewünschten Themen
lda = LatentDirichletAllocation(n_components=5)

## Anpassen des LDA-Modells an die Dokument-Term-Matrix
lda.fit(document_term_matrix)

## Abrufen der Thema-Term-Matrix und der Dokument-Thema-Matrix
topic_term_matrix = lda.components_
document_topic_matrix = lda.transform(document_term_matrix)

Zusammenfassung

In diesem Lab haben wir verschiedene Techniken zur Zerlegung von Signalen in ihre Komponenten untersucht. Wir haben uns mit der Hauptkomponentenanalyse (PCA), der Unabhängigen Komponentenanalyse (ICA), der Nicht-negativen Matrixfaktorisierung (NMF) und der Latenten Dirichlet-Allokation (LDA) vertraut gemacht. Diese Techniken werden in verschiedenen Anwendungen wie der Dimensionsreduzierung, der Trennung von Blindquellen, der Themensuche und vielen anderen eingesetzt. Durch die Anwendung dieser Techniken können wir Einblicke gewinnen und sinnvolle Informationen aus hochdimensionalen Signalen und Datensätzen extrahieren.