如何求協方差矩陣
一. 協方差定義
X、Y 是兩個隨機變量,X、Y 的協方差 cov(X, Y) 定義為:

其中:
、
二. 協方差矩陣定義
矩陣中的數據按行排列與按列排列求出的協方差矩陣是不同的,這里默認數據是按行排列。即每一行是一個observation(or sample),那么每一列就是一個隨機變量。協方差對角線處的元素表示的是方差,這個關系我們記住就行了。比如目前我們從之前的兩個變量過渡成了三個變量,則我們的協方差矩陣可以寫為:

從上面我們可以清楚的看到對角線上的數值是cov(x,x)=var(x),cov(y,y)=var(y),cov(y,y)=var(z),因此對角線處是我們的方差,有一個函數trace()專門則用於表示提取我們矩陣當中的對角線處的元素。下面我們把用cov函數表示的形式變化為更加普世的形式也就是用aij來表示我們的每一個協方差的數值。

協方差矩陣:

協方差矩陣的維度等於隨機變量的個數,即每一個 observation 的維度。在某些場合前邊也會出現 1 / m,而不是 1 / (m - 1).求解得到的樣本協方差是1 / (m - 1),總體協方差是1/m。
三. 求解協方差矩陣的步驟
舉個例子,矩陣 X 按行排列:
1. 求每個維度的平均值
2. 將 X 的每一列減去平均值
其中:
3. 計算協方差矩陣
也就是將所有的方差都相乘乘起來,然后再求出方差的平均數,就得到協方差,相當於二維情況下的標准差的平方。協方差在高維度的高斯分布當中非常重要。
注意:
有時候在書上或者網上會看到這樣的公式,協方差矩陣 Σ:
這里之所以會是 X * X’ 是因為原始數據集 X 是按列排列的,即:
備注:為什么協方差矩陣的最大特征向量能使得誤差較小?
回答:因為協方差矩陣表示向量兩兩之間的相似度,可以理解為向量之間的關系信息。協方差矩陣保存的信息越多,誤差越小。怎么保存更多信息呢?需要說明的是特征值代表特征向量的權重,所以挑最大的幾個特征向量就能保存更多的信息。
