Spec-Zone.ru › PyTorch 2.14

torch.cov

torch.cov(input, *, correction=1, fweights=None, aweights=None) → Tensor

Оценивает ковариационную матрицу переменных, заданных матрицей input, в которой строки соответствуют переменным, а столбцы — наблюдениям.

Ковариационная матрица — это квадратная матрица, содержащая ковариации каждой пары переменных. На диагонали находятся дисперсии каждой переменной (ковариация переменной с самой собой). По определению, если input представляет одну переменную (скаляр или одномерный вектор), возвращается её дисперсия.

Выборочная ковариация переменных xx и yy задаётся формулой:

cov(x,y)=∑i=1N(xi−xˉ)(yi−yˉ)max⁡(0,N−δN)\text{cov}(x,y) = \frac{\sum^{N}_{i = 1}(x_{i} - \bar{x})(y_{i} - \bar{y})}{\max(0,~N~-~\delta N)}

где xˉ\bar{x} и yˉ\bar{y} — простые средние значений xx и yy соответственно, а δN\delta N — correction.

Если указаны fweights и/или aweights, вычисляется взвешенная ковариация, которая задаётся формулой:

covw(x,y)=∑i=1Nwi(xi−μx∗)(yi−μy∗)max⁡(0,∑i=1Nwi−∑i=1Nwiai∑i=1NwiδN)\text{cov}_w(x,y) = \frac{\sum^{N}_{i = 1}w_i(x_{i} - \mu_x^*)(y_{i} - \mu_y^*)} {\max(0,~\sum^{N}_{i = 1}w_i~-~\frac{\sum^{N}_{i = 1}w_ia_i}{\sum^{N}_{i = 1}w_i}~\delta N)}

где ww обозначает fweights или aweights (для краткости f и a) в зависимости от того, что указано, либо w=f×aw = f \times a, если указаны оба параметра, а μx∗=∑i=1Nwixi∑i=1Nwi\mu_x^* = \frac{\sum^{N}_{i = 1}w_ix_{i} }{\sum^{N}_{i = 1}w_i} — это взвешенное среднее переменной. Если f и/или a не указаны, их можно считать вектором 1\mathbb{1} подходящего размера.

Параметры:

input (Tensor) – Двумерная матрица, содержащая несколько переменных и наблюдений, либо скаляр или одномерный вектор, представляющий одну переменную.

Именованные аргументы:
  • correction (int, необязательный) – разность между размером выборки и числом степеней свободы выборки. По умолчанию используется поправка Бесселя, correction = 1 которая возвращает несмещённую оценку, даже если заданы и fweights, и aweights. correction = 0 вернёт простое среднее. Значение по умолчанию — 1.
  • fweights (tensor, необязательный) – скаляр или одномерный тензор частот вектора наблюдений, задающий количество повторений каждого наблюдения. Число элементов должно равняться количеству столбцов input. Тип данных должен быть целочисленным. Игнорируется, если None. Значение по умолчанию — None.
  • aweights (tensor, необязательный) – скаляр или одномерный массив весов вектора наблюдений. Эти относительные веса обычно выше для наблюдений, считающихся «важными», и ниже для наблюдений, считающихся менее «важными». Число элементов должно равняться количеству столбцов input. Тип данных должен быть с плавающей точкой. Игнорируется, если None. Значение по умолчанию — None.
Возвращает:

(Tensor) Ковариационная матрица переменных.

См. также

torch.corrcoef() нормированная ковариационная матрица.

Пример:

>>> x = torch.tensor([[0, 2], [1, 1], [2, 0]]).T
>>> x
tensor([[0, 1, 2],
        [2, 1, 0]])
>>> torch.cov(x)
tensor([[ 1., -1.],
        [-1.,  1.]])
>>> torch.cov(x, correction=0)
tensor([[ 0.6667, -0.6667],
        [-0.6667,  0.6667]])
>>> fw = torch.randint(1, 10, (3,))
>>> fw
tensor([1, 6, 9])
>>> aw = torch.rand(3)
>>> aw
tensor([0.4282, 0.0255, 0.4144])
>>> torch.cov(x, fweights=fw, aweights=aw)
tensor([[ 0.4169, -0.4169],
        [-0.4169,  0.4169]])

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.cov.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API