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