oas#
- sklearn.covariance.oas(X, *, assume_centered=False)[источник]#
Оценить ковариацию с Oracle Approximating Shrinkage.
Подробнее в Руководство пользователя.
- Параметры:
- Xarray-like формы (n_samples, n_features)
Данные, по которым вычисляется оценка ковариации.
- assume_centeredbool, по умолчанию=False
Если True, данные не будут центрироваться перед вычислением. Полезно для работы с данными, среднее значение которых значительно равно нулю, но не точно нулю. Если False, данные будут центрироваться перед вычислением.
- Возвращает:
- shrunk_covarray-like формы (n_features, n_features)
Сжатая ковариация.
- сжатиеfloat
Коэффициент в выпуклой комбинации, используемой для вычисления сжатой оценки.
Примечания
Регуляризованная ковариация:
(1 - shrinkage) * cov + shrinkage * mu * np.identity(n_features),
где mu = trace(cov) / n_features, а сжатие задается формулой OAS (см. [1]).
Формулировка сжатия, реализованная здесь, отличается от уравнения 23 в [1]В исходной статье формула (23) утверждает, что 2/p (где p — количество признаков) умножается на Trace(cov*cov) как в числителе, так и в знаменателе, но эта операция опущена, потому что для большого p значение 2/p настолько мало, что не влияет на значение оценщика.
Ссылки
Примеры
>>> 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)