OAS#
- class sklearn.covariance.OAS(*, store_precision=True, assume_centered=False)[source]#
Oracle Approximating Shrinkage Estimator.
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- store_precisionbool, Standard=True
Gibt an, ob die geschätzte Präzision gespeichert wird.
- 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 (Standard), werden die Daten vor der Berechnung zentriert.
- Attribute:
- covariance_ndarray der Form (n_features, n_features)
Geschätzte Kovarianzmatrix.
- location_ndarray der Form (n_features,)
Geschätzter Ort, d.h. der geschätzte Mittelwert.
- precision_ndarray der Form (n_features, n_features)
Geschätzte inverse Pseudomatrix. (nur gespeichert, wenn store_precision True ist)
- shrinkage_float
Koeffizient in der konvexen Kombination, die zur Berechnung der geschrumpften Schätzung verwendet wird. Bereich ist [0, 1].
- 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
EllipticEnvelopeObjekt zur Erkennung von Ausreißern in einem Gauß'schen Datensatz.
EmpiricalCovarianceMaximale Likelihood Kovarianz-Schätzer.
GraphicalLassoSchätzung der dünnen Kovarianz mit einem l1-penalisierten Schätzer.
GraphicalLassoCVSparse inverse Kovarianz mit kreuzvalidierter Wahl des l1-Penalties.
LedoitWolfLedoitWolf-Schätzer.
MinCovDetMinimum Covariance Determinant (robuster Schätzer der Kovarianz).
ShrunkCovarianceKovarianz-Schätzer mit Schrumpfung.
Anmerkungen
Die regularisierte Kovarianz ist
(1 - shrinkage) * cov + shrinkage * mu * np.identity(n_features),
wobei mu = trace(cov) / n_features ist und shrinkage durch die OAS-Formel gegeben ist (siehe [1]).
Die hier implementierte Schrumpfungsformulierung unterscheidet sich von Gleichung 23 in [1]. Im Originalartikel besagt Formel (23), dass 2/p (p sei die Anzahl der Merkmale) mit Trace(cov*cov) sowohl im Zähler als auch im Nenner multipliziert wird, aber diese Operation wird weggelassen, da für ein großes p der Wert von 2/p so klein ist, dass er den Wert des Schätzers nicht beeinflusst.
Referenzen
Beispiele
>>> import numpy as np >>> from sklearn.covariance import OAS >>> from sklearn.datasets import make_gaussian_quantiles >>> real_cov = np.array([[.8, .3], ... [.3, .4]]) >>> rng = np.random.RandomState(0) >>> X = rng.multivariate_normal(mean=[0, 0], ... cov=real_cov, ... size=500) >>> oas = OAS().fit(X) >>> oas.covariance_ array([[0.7533, 0.2763], [0.2763, 0.3964]]) >>> oas.precision_ array([[ 1.7833, -1.2431 ], [-1.2431, 3.3889]]) >>> oas.shrinkage_ np.float64(0.0195)
Siehe auch Schrumpfung der Kovarianzschätzung: LedoitWolf vs OAS und Maximum-Likelihood und Ledoit-Wolf vs OAS Schätzung für detailliertere Beispiele.
- error_norm(comp_cov, norm='frobenius', scaling=True, squared=True)[source]#
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)[source]#
Passen Sie das Oracle Approximating Shrinkage Kovarianzmodell an X an.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Trainingsdaten, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.- 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()[source]#
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)[source]#
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()[source]#
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)[source]#
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)[source]#
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)[source]#
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.
Galeriebeispiele#
Normale, Ledoit-Wolf und OAS Lineare Diskriminanzanalyse zur Klassifikation
Schrumpfkovarianzschätzung: LedoitWolf vs OAS und Maximum-Likelihood