oas
- sklearn.covariance.oas(X, *, assume_centered=False)[source]
-
Оценка ковариации с использованием метода Oracle Approximating Shrinkage.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- Xarray-like формы (n_samples, n_features)
-
Данные, используемые для вычисления оценки ковариации.
- assume_centeredbool, по умолчанию=False
-
Если True, данные не будут центрированы перед вычислением. Полезно для работы с данными, среднее значение которых приблизительно равно нулю, но не точно равно нулю. Если False, данные будут центрированы перед вычислением.
- Возвращает:
-
- shrunk_covarray-like формы (n_features, n_features)
-
Сжатая ковариация.
- shrinkagefloat
-
Коэффициент в выпуклой комбинации, используемой для вычисления сжатой оценки.
Примечания
Регуляризованная ковариация имеет вид:
(1 - shrinkage) * cov + shrinkage * mu * np.identity(n_features),
где mu = trace(cov) / n_features, а shrinkage определяется по формуле 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...)
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/oas-function.html