Spec-Zone.ru › PyTorch 2

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} соответствующего размера.

Parameters

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

Keyword Arguments
  • correction (int, optional) – разность между размером выборки и степенями свободы выборки. По умолчанию используется поправка Бесселя, correction = 1 которая возвращает несмещённую оценку, даже если оба fweights и aweights указаны. correction = 0 вернёт простое среднее. По умолчанию 1.
  • fweights (tensor, optional) – Скаляр или одномерный тензор частот наблюдения, представляющий количество раз, которое каждое наблюдение должно повторяться. Его numel должен равняться количеству столбцов input. Должен иметь целочисленный тип данных. Игнорируется, если None. По умолчанию None.
  • aweights (tensor, optional) – Скаляр или одномерный массив весов наблюдения. Эти относительные веса обычно велики для наблюдений, считающихся «важными», и меньше для наблюдений, считающихся менее «важными». Его numel должен равняться количеству столбцов input. Должен иметь тип с плавающей точкой. Игнорируется, если None. По умолчанию None.
Returns

(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]])

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

Spec-Zone.ru

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