oas
- sklearn.covariance.oas(X, *, assume_centered=False)[исходный код]
-
Оценить ковариацию с помощью приближения сжатия по оракулу (Oracle Approximating Shrinkage).
Подробнее см. в руководстве пользователя.
- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features)
-
Данные, по которым вычисляется оценка ковариации.
- assume_centeredbool, по умолчанию=False
-
Если True, данные не будут центрированы перед вычислением. Полезно для работы с данными, среднее значение которых практически равно нулю, но не равно ему точно. Если False, данные будут центрированы перед вычислением.
- Возвращает:
-
- shrunk_covмассивоподобный объект формы (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–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/oas-function.html