GraphicalLasso#

class sklearn.covariance.GraphicalLasso(alpha=0.01, *, mode='cd', covariance=None, tol=0.0001, enet_tol=0.0001, max_iter=100, verbose=False, eps=np.float64(2.220446049250313e-16), assume_centered=False)[Quelle]#

Schätzung der dünnen Kovarianz mit einem l1-penalisierten Schätzer.

Ein Anwendungsbeispiel finden Sie unter Visualizing the stock market structure.

Lesen Sie mehr im Benutzerhandbuch.

Geändert in Version v0.20: GraphLasso wurde in GraphicalLasso umbenannt

Parameter:
alphafloat, Standardwert=0.01

Der Regularisierungsparameter: je höher alpha, desto mehr Regularisierung, desto spärlicher ist die inverse Kovarianz. Bereich ist (0, inf].

mode{‘cd’, ‘lars’}, Standardwert=’cd’

Der zu verwendende Lasso-Solver: Coordinate Descent oder LARS. Verwenden Sie LARS für sehr spärliche zugrunde liegende Graphen, bei denen p > n. Andernfalls bevorzugen Sie cd, das numerisch stabiler ist.

covariance“precomputed”, Standardwert=None

Wenn covariance „precomputed“ ist, wird davon ausgegangen, dass die Eingabedaten in fit die Kovarianzmatrix sind. Wenn None, wird die empirische Kovarianz aus den Daten X geschätzt.

Hinzugefügt in Version 1.3.

tolfloat, Standard=1e-4

Die Toleranz, um die Konvergenz zu deklarieren: Wenn die duale Lücke unter diesen Wert fällt, werden die Iterationen gestoppt. Bereich ist (0, inf].

enet_tolfloat, Standardwert=1e-4

Die Toleranz für den Elastic-Net-Solver, der zur Berechnung der Abstiegsrichtung verwendet wird. Dieser Parameter steuert die Genauigkeit der Suchrichtung für eine gegebene Spaltenaktualisierung, nicht der gesamten Parameterschätzung. Wird nur für mode=’cd‘ verwendet. Bereich ist (0, inf].

max_iterint, default=100

Die maximale Anzahl von Iterationen.

verbosebool, default=False

Wenn verbose True ist, werden die Zielfunktion und die duale Lücke bei jeder Iteration geplottet.

epsfloat, Standardwert=eps

Die Regularisierung der Maschinengenauigkeit bei der Berechnung der Cholesky-Diagonalfaktoren. Erhöhen Sie dies für sehr schlecht konditionierte Systeme. Standard ist np.finfo(np.float64).eps.

Hinzugefügt in Version 1.3.

assume_centeredbool, Standard=False

Wenn True, werden die Daten vor der Berechnung nicht zentriert. Nützlich bei der Arbeit mit Daten, deren Mittelwert fast, aber nicht genau Null ist. Wenn False, werden die Daten vor der Berechnung zentriert.

Attribute:
location_ndarray der Form (n_features,)

Geschätzter Ort, d.h. der geschätzte Mittelwert.

covariance_ndarray der Form (n_features, n_features)

Geschätzte Kovarianzmatrix

precision_ndarray der Form (n_features, n_features)

Geschätzte pseudoinverse Matrix.

n_iter_int

Anzahl der durchgeführten Iterationen.

costs_Liste von Paaren (Zielfunktion, duale Lücke)

Die Liste der Werte der Zielfunktion und der dualen Lücke bei jeder Iteration. Wird nur zurückgegeben, wenn return_costs True ist.

Hinzugefügt in Version 1.3.

n_features_in_int

Anzahl der während des fits gesehenen Merkmale.

Hinzugefügt in Version 0.24.

feature_names_in_ndarray mit Form (n_features_in_,)

Namen der während fit gesehenen Merkmale. Nur definiert, wenn X Merkmalnamen hat, die alle Zeichenketten sind.

Hinzugefügt in Version 1.0.

Siehe auch

graphical_lasso

L1-penalisierter Kovarianz-Schätzer.

GraphicalLassoCV

Sparse inverse Kovarianz mit kreuzvalidierter Wahl des l1-Penalties.

Beispiele

>>> import numpy as np
>>> from sklearn.covariance import GraphicalLasso
>>> true_cov = np.array([[0.8, 0.0, 0.2, 0.0],
...                      [0.0, 0.4, 0.0, 0.0],
...                      [0.2, 0.0, 0.3, 0.1],
...                      [0.0, 0.0, 0.1, 0.7]])
>>> np.random.seed(0)
>>> X = np.random.multivariate_normal(mean=[0, 0, 0, 0],
...                                   cov=true_cov,
...                                   size=200)
>>> cov = GraphicalLasso().fit(X)
>>> np.around(cov.covariance_, decimals=3)
array([[0.816, 0.049, 0.218, 0.019],
       [0.049, 0.364, 0.017, 0.034],
       [0.218, 0.017, 0.322, 0.093],
       [0.019, 0.034, 0.093, 0.69 ]])
>>> np.around(cov.location_, decimals=3)
array([0.073, 0.04 , 0.038, 0.143])
error_norm(comp_cov, norm='frobenius', scaling=True, squared=True)[Quelle]#

Berechnet den mittleren quadratischen Fehler zwischen zwei Kovarianzschätzern.

Parameter:
comp_covarray-like der Form (n_features, n_features)

Die zu vergleichende Kovarianz.

norm{„frobenius“, „spectral“}, Standard=„frobenius“

Die Art der Norm, die zur Berechnung des Fehlers verwendet wird. Verfügbare Fehlertypen: - „frobenius“ (Standard): sqrt(tr(A^t.A)) - „spectral“: sqrt(max(Eigenwerte(A^t.A))), wobei A der Fehler ist (comp_cov - self.covariance_).

scalingbool, Standard=True

Wenn True (Standard), wird die quadrierte Fehlernorm durch n_features geteilt. Wenn False, wird die quadrierte Fehlernorm nicht skaliert.

squaredbool, Standard=True

Ob die quadrierte Fehlernorm oder die Fehlernorm berechnet werden soll. Wenn True (Standard), wird die quadrierte Fehlernorm zurückgegeben. Wenn False, wird die Fehlernorm zurückgegeben.

Gibt zurück:
resultfloat

Der mittlere quadratische Fehler (im Sinne der Frobenius-Norm) zwischen self und comp_cov Kovarianzschätzern.

fit(X, y=None)[Quelle]#

Passen Sie das GraphicalLasso-Modell an X an.

Parameter:
Xarray-like der Form (n_samples, n_features)

Daten, aus denen die Kovarianzschätzung berechnet werden soll.

yIgnoriert

Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.

Gibt zurück:
selfobject

Gibt die Instanz selbst zurück.

get_metadata_routing()[Quelle]#

Holt das Metadaten-Routing dieses Objekts.

Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.

Gibt zurück:
routingMetadataRequest

Ein MetadataRequest, der Routing-Informationen kapselt.

get_params(deep=True)[Quelle]#

Holt Parameter für diesen Schätzer.

Parameter:
deepbool, default=True

Wenn True, werden die Parameter für diesen Schätzer und die enthaltenen Unterobjekte, die Schätzer sind, zurückgegeben.

Gibt zurück:
paramsdict

Parameternamen, zugeordnet ihren Werten.

get_precision()[Quelle]#

Getter für die Präzisionsmatrix.

Gibt zurück:
precision_array-like der Form (n_features, n_features)

Die Präzisionsmatrix, die dem aktuellen Kovarianzobjekt zugeordnet ist.

mahalanobis(X)[Quelle]#

Berechnet die quadrierten Mahalanobis-Abstände gegebener Beobachtungen.

Ein detailliertes Beispiel dafür, wie Ausreißer den Mahalanobis-Abstand beeinflussen, finden Sie unter Robuste Kovarianzschätzung und die Relevanz von Mahalanobis-Abständen.

Parameter:
Xarray-like der Form (n_samples, n_features)

Die Beobachtungen, deren Mahalanobis-Abstände wir berechnen. Es wird davon ausgegangen, dass die Beobachtungen aus derselben Verteilung stammen wie die in fit verwendeten Daten.

Gibt zurück:
distndarray der Form (n_samples,)

Quadrierte Mahalanobis-Abstände der Beobachtungen.

score(X_test, y=None)[Quelle]#

Berechnet die Log-Wahrscheinlichkeit von X_test unter dem geschätzten Gaußschen Modell.

Das Gaußsche Modell ist definiert durch seinen Mittelwert und seine Kovarianzmatrix, die jeweils durch self.location_ und self.covariance_ dargestellt werden.

Parameter:
X_testarray-like der Form (n_samples, n_features)

Testdaten, deren Wahrscheinlichkeit wir berechnen, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist. X_test wird angenommen, aus derselben Verteilung zu stammen wie die in fit verwendeten Daten (einschließlich Zentrierung).

yIgnoriert

Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.

Gibt zurück:
resfloat

Die Log-Wahrscheinlichkeit von X_test mit self.location_ und self.covariance_ als Schätzern für den Mittelwert und die Kovarianzmatrix des Gaußschen Modells.

set_params(**params)[Quelle]#

Setzt die Parameter dieses Schätzers.

Die Methode funktioniert sowohl bei einfachen Schätzern als auch bei verschachtelten Objekten (wie Pipeline). Letztere haben Parameter der Form <component>__<parameter>, so dass es möglich ist, jede Komponente eines verschachtelten Objekts zu aktualisieren.

Parameter:
**paramsdict

Schätzer-Parameter.

Gibt zurück:
selfestimator instance

Schätzer-Instanz.