在機器學習中經常需要計算協方差矩陣,本科時沒學過這個概念,一直對此非常頭疼。現在試圖通過例項的計算、圖形化的表示來梳理一下什麼是協方差矩陣。
問題:有一組資料(如下),分別為二維向量,這四個資料對應的協方差矩陣是多少?
解答:由於資料是二維的,所以協方差矩陣是乙個2*2的矩陣,矩陣的每個元素為:
元素(i,j) = (第 i 維所有元素 - 第 i 維的均值) * (第 j 維所有元素 - 第 j 維的均值) 。
其中「*」代表向量內積符號,即兩個向量求內積,對應元素相乘之後再累加。
我們首先列出第一維:
d1: (1,3,4,5) 均值:3.25
d2: (2,6,2,2) 均值:3
下面計算協方差矩陣第(1,2)個元素:
元素(1,2)=(1-3.25,3-3.25,4-3.25,5-3.25)*(2-3,6-3,2-3,2-3)=-1
類似的,我們可以把2*2個元素都計算出來:
這個題目的最終結果就是:
我們來分析一下上面的例子。首先看一下元素(1,1)的計算過程:
把所有資料的第乙個維度拿出來,求出均值,之後的求解過程完全是我們熟悉的「方差」的求法。也就是說,這完完全全就是在求所有資料第一維元素(共4個)的方差(8.75)嘛。類似地,元素(2,2)求的是第二維(共4個)元素的方差(12)。
再來看元素(1,2),這分明就是我們高數裡面學的求 x 和 y 的協方差,不再單獨計算某一維度的分散程度,而是把兩個維度的分散值結合起來,這裡才真正體現了「協方差矩陣」中「協方差」的意味。從計算過程和計算結果都能看出,元素(2,1)與元素(1,2)是一樣的。也就是說,所有協方差矩陣都是乙個對稱陣。
總結一下協方差矩陣的特點:
現在只需要了解這些就夠了。
這裡借鑑一下模式識別課件中的五個圖來形象地展示一下不同的協方差矩陣代表了什麼。這幾個都是二維的高斯分布(正態分佈),每個例子中有三個分布,分別給出了均值和協方差矩陣。均值代表正態分佈的中心點,方差代表其分布的形狀(黑色的分割線請 ignore)。請欣賞:
1.三個協方差矩陣相同,都為對角陣,對角線元素相同
2.三個協方差矩陣相同,都為對角陣,對角線元素不同
3.三個協方差矩陣相同,不是對角陣,對角線元素不同
4.三個協方差矩陣不同,都是對角陣,對角線元素相同
5.三個協方差矩陣不同,不是對角陣,對角線元素不同
從這五個圖可以看出:
參考:
詳解協方差與協方差矩陣
協方差的定義 對於一般的分布,直接代入 e x 之類的就可以計算出來了,但真給你乙個具體數值的分布,要計算協方差矩陣,根據這個公式來計算,還真不容易反應過來。網上值得參考的資料也不多,這裡用乙個例子說明協方差矩陣是怎麼計算出來的吧。記住,x y 是乙個列向量,它表示了每種情況下每個樣本可能出現的數。...
詳解協方差與協方差矩陣
來自 協方差的定義 對於一般的分布,直接代入e x 之類的就可以計算出來了,但真給你乙個具體數值的分布,要計算協方差矩陣,根據這個公式來計算,還真不容易反應過來。網上值得參考的資料也不多,這裡用乙個例子說明協方差矩陣是怎麼計算出來的吧。記住,x y是乙個列向量,它表示了每種情況下每個樣本可能出現的數...
詳解協方差與協方差矩陣
協方差的定義 對於一般的分布,直接代入e x 之類的就可以計算出來了,但真給你乙個具體數值的分布,要計算協方差矩陣,根據這個公式來計算,還真不容易反應過來。網上值得參考的資料也不多,這裡用乙個例子說明協方差矩陣是怎麼計算出來的吧。記住,x y是乙個列向量,它表示了每種情況下每個樣本可能出現的數。比如...