torch.cov¶
- torch.cov(input, *, correction=1, fweights=None, aweights=None) 张量 ¶
估计由
input
矩阵给出的变量的协方差矩阵,其中行是变量,列是观测值。协方差矩阵是一个方阵,给出每对变量之间的协方差。对角线包含每个变量的方差(变量与其自身的协方差)。根据定义,如果
input
表示单个变量(标量或一维),则返回其方差。变量 和 的样本协方差由以下公式给出:
其中 和 分别是 和 的简单平均值,并且 是
correction
。如果提供了
fweights
和/或aweights
,则计算加权协方差,其公式为:其中 表示
fweights
或aweights
(为简洁起见,f
和a
)基于提供的哪一个,或者如果两者都提供,则为 ,并且 是变量的加权平均值。如果没有提供,f
和/或a
可以被视为适当大小的 向量。- Parameters
输入 (张量) – 一个包含多个变量和观测值的二维矩阵,或表示单个变量的标量或一维向量。
- Keyword Arguments
校正 (int, 可选) – 样本大小与样本自由度之间的差异。 默认为贝塞尔校正,
correction = 1
,即使指定了fweights
和aweights
,也会返回无偏估计。correction = 0
将返回简单平均值。默认为1
。fweights (tensor, 可选) – 一个标量或1D张量,表示观测向量的频率,表示每个观测值应重复的次数。其numel必须等于
input
的列数。必须具有整数数据类型。如果为None
,则忽略。默认为None
。aweights (tensor, 可选) – 一个标量或一维观测向量权重数组。 这些相对权重通常对于被认为是“重要”的观测值较大,而对于被认为是较不“重要”的观测值较小。其数量必须等于
input
的列数。 必须具有浮点型数据类型。如果为None
,则忽略。默认为None
。
- Returns
(Tensor) 变量的协方差矩阵。
另请参阅
torch.corrcoef()
标准化协方差矩阵。- Example::
>>> 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]])