Kovarianzmatrixschätzung mit Scikit-Learn

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

Die Kovarianzschätzung ist eine wichtige statistische Technik, die zur Schätzung der Kovarianzmatrix einer Population verwendet wird. Die Kovarianzmatrix beschreibt die Beziehung zwischen Variablen in einem Datensatz und kann wertvolle Einblicke in die Form des Streudiagramms der Daten liefern. In diesem Lab werden wir verschiedene Methoden zur Schätzung der Kovarianzmatrix mit dem Python-Paket sklearn.covariance untersuchen.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu öffnen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen von 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/covariance("Covariance Estimators") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/covariance -.-> lab-71119{{"Kovarianzmatrixschätzung mit Scikit-Learn"}} ml/sklearn -.-> lab-71119{{"Kovarianzmatrixschätzung mit Scikit-Learn"}} end

Empirische Kovarianz

Die empirische Kovarianzmatrix ist eine häufig verwendete Methode zur Schätzung der Kovarianzmatrix eines Datensatzes. Sie basiert auf dem Prinzip der Maximum-Likelihood-Schätzung und nimmt an, dass die Beobachtungen unabhängig und identisch verteilt (i.i.d.) sind. Die Funktion empirical_covariance im Paket sklearn.covariance kann verwendet werden, um die empirische Kovarianzmatrix eines gegebenen Datensatzes zu berechnen.

from sklearn.covariance import empirical_covariance

## Compute the empirical covariance matrix
covariance_matrix = empirical_covariance(data)

Verkürzte Kovarianz

Der Maximum-Likelihood-Schätzer, obwohl er nicht verzerrt ist, kann die Eigenwerte der Kovarianzmatrix möglicherweise nicht genau schätzen, was zu ungenauen Ergebnissen führt. Um dieses Problem zu mildern, wird eine Technik namens Shrinking eingesetzt. Shrinking verringert das Verhältnis zwischen dem kleinsten und dem größten Eigenwert der empirischen Kovarianzmatrix und verbessert die Genauigkeit der Schätzung. Das sklearn.covariance-Paket bietet eine Klasse ShrunkCovariance, die verwendet werden kann, um einen verkürzten Schätzer an die Daten anzupassen.

from sklearn.covariance import ShrunkCovariance

## Create a ShrunkCovariance object and fit it to the data
shrunk_estimator = ShrunkCovariance().fit(data)

## Compute the shrunk covariance matrix
shrunk_covariance_matrix = shrunk_estimator.covariance_

Ledoit-Wolf-Schrumpfung

Die Ledoit-Wolf-Schrumpfungsmethode liefert einen optimalen Schrumpfungskoeffizienten, der den mittleren quadratischen Fehler zwischen der geschätzten und der wahren Kovarianzmatrix minimiert. Das sklearn.covariance-Paket enthält eine Funktion ledoit_wolf, die verwendet werden kann, um den Ledoit-Wolf-Schätzer für einen gegebenen Datensatz zu berechnen.

from sklearn.covariance import ledoit_wolf

## Compute the Ledoit-Wolf estimator of the covariance matrix
ledoit_wolf_covariance_matrix = ledoit_wolf(data)[0]

Sparse Inverse Kovarianz

Die schnelle Inverse Kovarianzschätzung, auch als Kovarianzselektion bekannt, zielt darauf ab, eine spärliche Präzisionsmatrix zu schätzen, wobei die Matrixinverse der Kovarianzmatrix die partielle Korrelationsmatrix darstellt. Das sklearn.covariance-Paket enthält eine Klasse GraphicalLasso zur Schätzung der spärlichen Inverse Kovarianzmatrix unter Verwendung einer l1-Strafe.

from sklearn.covariance import GraphicalLasso

## Create a GraphicalLasso object and fit it to the data
graphical_lasso = GraphicalLasso().fit(data)

## Compute the sparse inverse covariance matrix
sparse_inverse_covariance_matrix = graphical_lasso.precision_

Robuste Kovarianzschätzung

Echte Welt-Datensätze enthalten oft Ausreißer oder Messfehler, die die geschätzte Kovarianzmatrix erheblich beeinflussen können. Robuste Kovarianzschätzungsmethoden wie der Minimum Covariance Determinant (MCD) können verwendet werden, um solche Situationen zu behandeln. Das sklearn.covariance-Paket bietet eine Klasse MinCovDet zur Berechnung der MCD-Schätzung.

from sklearn.covariance import MinCovDet

## Create a MinCovDet object and fit it to the data
min_cov_det = MinCovDet().fit(data)

## Compute the robust covariance matrix
robust_covariance_matrix = min_cov_det.covariance_

Zusammenfassung

Die Kovarianzschätzung ist eine grundlegende statistische Technik, die zur Schätzung der Kovarianzmatrix eines Datensatzes verwendet wird. In diesem Lab haben wir verschiedene Methoden zur Kovarianzschätzung mit dem sklearn.covariance-Paket in Python untersucht. Wir haben die empirische Kovarianzschätzung, Schrumpfungstechniken, die schnelle Inverse Kovarianzschätzung und die robuste Kovarianzschätzung behandelt. Es ist wichtig, die geeignete Methode aufgrund der Eigenschaften des Datensatzes und der spezifischen Anforderungen der Analyse auszuwählen.