GraphicalLassoCV#
- class sklearn.covariance.GraphicalLassoCV(*, alphas=4, n_refinements=4, cv=None, tol=0.0001, enet_tol=0.0001, max_iter=100, mode='cd', n_jobs=None, verbose=False, eps=np.float64(2.220446049250313e-16), assume_centered=False)[Quelle]#
Dünne Kovarianz mit kreuzvalidierter Auswahl der l1-Strafe.
Siehe Glossareintrag für Cross-validation-Schätzer.
Lesen Sie mehr im Benutzerhandbuch.
Geändert in Version v0.20: GraphLassoCV wurde in GraphicalLassoCV umbenannt
- Parameter:
- alphasint oder Array-artig der Form (n_alphas,), dtype=float, default=4
Wenn eine Ganzzahl gegeben wird, wird die Anzahl der Punkte im zu verwendenden Alpha-Raster festgelegt. Wenn eine Liste gegeben wird, wird das zu verwendende Raster angegeben. Siehe die Hinweise im Docstring der Klasse für weitere Details. Bereich ist [1, inf) für eine Ganzzahl. Bereich ist (0, inf] für ein Array-artig von Fließkommazahlen.
- n_refinementsint, default=4
Die Anzahl der Male, die das Raster verfeinert wird. Wird nicht verwendet, wenn explizite Werte von alphas übergeben werden. Bereich ist [1, inf).
- cvint, Kreuzvalidierungsgenerator oder Iterable, Standardwert=None
Bestimmt die Strategie der Kreuzvalidierungsaufteilung. Mögliche Eingaben für cv sind
None, um die standardmäßige 5-fache Kreuzvalidierung zu verwenden,
Ganzzahl, um die Anzahl der Folds anzugeben.
Eine iterierbare Liste, die (Trainings-, Test-) Splits als Indizes-Arrays liefert.
Für Ganzzahl-/None-Eingaben wird
KFoldverwendet.Siehe Benutzerhandbuch für die verschiedenen Kreuzvalidierungsstrategien, die hier verwendet werden können.
Geändert in Version 0.20: Der Standardwert von
cv, wenn None, änderte sich von 3-Falt zu 5-Falt.- 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
Maximale Anzahl von Iterationen.
- 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 die Anzahl der Merkmale größer ist als die Anzahl der Stichproben. Andernfalls bevorzugen Sie cd, das numerisch stabiler ist.
- n_jobsint, default=None
Anzahl der parallel auszuführenden Jobs.
Nonebedeutet 1, es sei denn, es befindet sich in einemjoblib.parallel_backendKontext.-1bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.Geändert in Version v0.20: Standardwert von
n_jobsvon 1 auf None geändert- verbosebool, default=False
Wenn verbose True ist, werden die Zielfunktion und die Dualitätslücke bei jeder Iteration ausgegeben.
- 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 Präzisionsmatrix (inverse Kovarianz).
- costs_Liste von (objective, dual_gap) Paaren
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.
- alpha_float
Ausgewählter Strafterm-Parameter.
- cv_results_dict von ndarrays
Ein Dict mit Schlüsseln
- alphasndarray der Form (n_alphas,)
Alle untersuchten Strafterm-Parameter.
- split(k)_test_scorendarray der Form (n_alphas,)
Log-Likelihood-Score auf ausgelassenen Daten über die (k)-te Faltung.
Hinzugefügt in Version 1.0.
- mean_test_scorendarray der Form (n_alphas,)
Mittelwert der Scores über die Faltungen.
Hinzugefügt in Version 1.0.
- std_test_scorendarray der Form (n_alphas,)
Standardabweichung der Scores über die Faltungen.
Hinzugefügt in Version 1.0.
- n_iter_int
Anzahl der Iterationen für das optimale Alpha.
- 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
XMerkmalnamen hat, die alle Zeichenketten sind.Hinzugefügt in Version 1.0.
Siehe auch
graphical_lassoL1-penalisierter Kovarianz-Schätzer.
GraphicalLassoSchätzung der dünnen Kovarianz mit einem l1-penalisierten Schätzer.
Anmerkungen
Die Suche nach dem optimalen Strafterm-Parameter (
alpha) erfolgt auf einem iterativ verfeinerten Raster: Zuerst werden die kreuzvalidierten Scores auf einem Raster berechnet, dann wird ein neues verfeinertes Raster um das Maximum zentriert und so weiter.Eine der Herausforderungen ist, dass die Solver möglicherweise nicht zu einer gut konditionierten Schätzung konvergieren. Die entsprechenden Werte von
alphawerden dann als fehlende Werte ausgegeben, aber das Optimum kann nahe diesen fehlenden Werten liegen.In
fitwird das Modell, sobald der beste Parameteralphadurch Kreuzvalidierung gefunden wurde, erneut mit dem gesamten Trainingsdatensatz trainiert.Beispiele
>>> import numpy as np >>> from sklearn.covariance import GraphicalLassoCV >>> 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 = GraphicalLassoCV().fit(X) >>> np.around(cov.covariance_, decimals=3) array([[0.816, 0.051, 0.22 , 0.017], [0.051, 0.364, 0.018, 0.036], [0.22 , 0.018, 0.322, 0.094], [0.017, 0.036, 0.094, 0.69 ]]) >>> np.around(cov.location_, decimals=3) array([0.073, 0.04 , 0.038, 0.143])
Für ein Beispiel, das
sklearn.covariance.GraphicalLassoCV,sklearn.covariance.ledoit_wolfShrinkage und die empirische Kovarianz auf hochdimensionalen Gaußschen Daten vergleicht, siehe Schätzung spärlicher inverser Kovarianzen.- 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
selfundcomp_covKovarianzschätzern.
- fit(X, y=None, **params)[Quelle]#
Fitze das GraphicalLasso-Kovarianzmodell an X.
- 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.
- **paramsdict, default=None
An die CV-Splitter- und die cross_val_score-Funktion zu übergebende Parameter.
Hinzugefügt in Version 1.5: Nur verfügbar, wenn
enable_metadata_routing=Truegesetzt ist, was durch Verwendung vonsklearn.set_config(enable_metadata_routing=True)erfolgen kann. Weitere Details finden Sie in der Benutzerhandbuch für Metadaten-Routing.
- 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.
Hinzugefügt in Version 1.5.
- Gibt zurück:
- routingMetadataRouter
Ein
MetadataRouter, der die 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_testunter dem geschätzten Gaußschen Modell.Das Gaußsche Modell ist definiert durch seinen Mittelwert und seine Kovarianzmatrix, die jeweils durch
self.location_undself.covariance_dargestellt werden.- Parameter:
- X_testarray-like der Form (n_samples, n_features)
Testdaten, deren Wahrscheinlichkeit wir berechnen, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.X_testwird 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_testmitself.location_undself.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.