torch.cov¶
- torch.cov(input, *, correction=1, fweights=None, aweights=None) Tensor¶
估計由
input矩陣給出的變數的協方差矩陣,其中行是變數,列是觀測。協方差矩陣是一個方陣,給出每對變數的協方差。對角線包含每個變數的方差(變數與其自身的協方差)。根據定義,如果
input表示單個變數(標量或 1D),則返回其方差。變數 和 的樣本協方差由以下公式給出:
其中 和 分別是 和 的簡單平均值, 是
correction。如果提供了
fweights和/或aweights,則計算加權協方差,其由以下公式給出:其中 表示根據提供的權重型別(為簡潔起見,使用
f和a表示fweights或aweights),如果兩者都提供,則為 ,而- 引數
input (Tensor) – 一個包含多個變數和觀測的 2D 矩陣,或表示單個變數的標量或 1D 向量。
- 關鍵字引數
correction (int, optional) – 樣本大小與樣本自由度之間的差值。預設為 Bessel 校正,即
correction = 1,即使同時指定了fweights和aweights,也會返回無偏估計。correction = 0將返回簡單平均值。預設為1。fweights (tensor, optional) – 一個標量或 1D 張量,表示觀測向量的頻率,即每個觀測應重複的次數。其元素數量必須等於
input的列數。必須具有整型 dtype。如果為None則忽略。預設為None。aweights (tensor, 可選) – 觀測向量權重的標量或一維陣列。這些相對權重對於被認為“重要”的觀測值通常較大,而對於被認為不太“重要”的觀測值則較小。其元素個數(numel)必須等於
input的列數。必須具有浮點資料型別(dtype)。如果為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]])