oas#

sklearn.covariance.oas(X, *, assume_centered=False)[Quelle]#

Schätzt Kovarianz mit dem Oracle Approximating Shrinkage.

Lesen Sie mehr im Benutzerhandbuch.

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

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

assume_centeredbool, Standard=False

Wenn True, werden die Daten vor der Berechnung nicht zentriert. Nützlich für die Arbeit mit Daten, deren Mittelwert signifikant gleich Null ist, aber nicht exakt Null. Wenn False, werden die Daten vor der Berechnung zentriert.

Gibt zurück:
shrunk_covarray-like, Shape (n_features, n_features)

Geschrumpfte Kovarianz.

shrinkagefloat

Koeffizient in der konvexen Kombination, die zur Berechnung der geschrumpften Schätzung verwendet wird.

Anmerkungen

Die regularisierte Kovarianz ist

(1 - shrinkage) * cov + shrinkage * mu * np.identity(n_features),

wobei mu = trace(cov) / n_features und shrinkage gegeben ist durch die OAS-Formel (siehe [1]).

Die hier implementierte Schrumpfungsformulierung unterscheidet sich von Gl. 23 in [1]. Im Originalartikel besagt Formel (23), dass 2/p (p ist 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
>>> rng = np.random.RandomState(0)
>>> real_cov = [[.8, .3], [.3, .4]]
>>> X = rng.multivariate_normal(mean=[0, 0], cov=real_cov, size=500)
>>> shrunk_cov, shrinkage = oas(X)
>>> shrunk_cov
array([[0.7533, 0.2763],
       [0.2763, 0.3964]])
>>> shrinkage
np.float64(0.0195)