PCA降维原理
PCA最重要的降維方法之一,在數(shù)據(jù)壓縮消除冗余和數(shù)據(jù)噪音消除等領(lǐng)域都有廣泛的應(yīng)用,一般我們提到降維最容易想到的算法就是PCA,目標是基于方差提取最有價值的信息,屬于無監(jiān)督問題。
方差
方差描述的是樣本集合的各個樣本點到均值的距離之平均,一般用來描述一維數(shù)據(jù)的離散程度的度量,在概率論和統(tǒng)計方差用來度量隨機變量和數(shù)據(jù)期望之間的偏離程度。
Var(a)=1m∑i=1m(ai?μ)2Var(a) = \frac{1}{m}\sum_{i=1}^m(a_i-\mu)^2 Var(a)=m1?i=1∑m?(ai??μ)2
協(xié)方差
方差和協(xié)方差的關(guān)系:方差是用來度量單個變量的“自身變異大小”的總體參數(shù),方差越大表明該變量變化越大。協(xié)方差是兩個變量相互影響大小的參數(shù),協(xié)方差的參數(shù)越大,則兩個變量相互影響越大。
可以通俗的理解為:兩個變量在變化過程中是同方向變化?還是反方向變化?同向或反向程度如何?你變大,同時我也變大,說明兩個變量是同向變化的,這時協(xié)方差就是正的。你變大,同時我變小,說明兩個變量是反向變化的,這時協(xié)方差就是負的。從數(shù)值來看,協(xié)方差的數(shù)值越大,兩個變量同向程度也就越大。反之亦然。
協(xié)方差公式如下:
Cov(X,Y)=E[(X?μx)(Y?μy)]Cov(X,Y) = E[(X-\mu_x)(Y-\mu_y)] Cov(X,Y)=E[(X?μx?)(Y?μy?)]
如果有X,Y兩個變量,每個時刻的“X值與其均值之差”乘以“Y值與其均值之差”得到一個乘積,再對這每時刻的乘積求和并求出均值,也可以寫成如下形式:
Cov(X,Y)=1m∑i=1m(Xi?μx)(Yi?μy)Cov(X,Y) = \frac{1}{m}\sum_{i=1}^{m}{(X_i-\mu_x)(Y_i-\mu_y)} Cov(X,Y)=m1?i=1∑m?(Xi??μx?)(Yi??μy?)
假設(shè)均值為0
如果協(xié)方差為0,表示兩個特征是線性無關(guān)的,所以為了盡可能的展示數(shù)據(jù)更多的原始信息,我們需要特征之間是線性無關(guān)的,也即協(xié)方差為0。
優(yōu)化目標:將一組N維向量降為K(0<k<n)維,目標選擇K個單位正交基,使得原始數(shù)據(jù)變換到這組基上后,各字段兩兩間協(xié)方差為0,字段的方差盡可能最大。
X=(a1a2?amb1b2?bm)1mXXT=(1m∑i=1mai21m∑i=1maibi1m∑i=1maibi1m∑i=1mbi2)X= \begin{pmatrix} a_1&a_2&\cdots&a_m\\ b_1&b_2&\cdots&b_m\\ \end{pmatrix} \\ \frac{1}{m}XX^\mathrm{ T }= \begin{pmatrix} \frac{1}{m}\sum_{i=1}^ma_i^2&\frac{1}{m}\sum_{i=1}^ma_ib_i\\ \frac{1}{m}\sum_{i=1}^ma_ib_i&\frac{1}{m}\sum_{i=1}^mb_i^2\\ \end{pmatrix} X=(a1?b1??a2?b2?????am?bm??)m1?XXT=(m1?∑i=1m?ai2?m1?∑i=1m?ai?bi??m1?∑i=1m?ai?bi?m1?∑i=1m?bi2??)
協(xié)方差矩陣對角線上的元素分別是字段的方差,而其他元素是a和b的協(xié)方差。并且是實對稱矩陣。
舉例
數(shù)據(jù):
(?1?1020?20011)\begin{pmatrix} -1&-1&0&2&0\\ -2&0&0&1&1\\ \end{pmatrix} (?1?2??10?00?21?01?)
協(xié)方差矩陣:
C=15(?1?1020?20011)(?1?2?10002101)=(65454565)C=\frac{1}{5} \begin{pmatrix} -1&-1&0&2&0\\ -2&0&0&1&1\\ \end{pmatrix} \begin{pmatrix} -1&-2\\ -1&0\\ 0&0\\ 2&1\\ 0&1 \end{pmatrix} =\begin{pmatrix} \frac{6}{5}&\frac{4}{5}\\ \\ \frac{4}{5}&\frac{6}{5}\\ \end{pmatrix} C=51?(?1?2??10?00?21?01?)????????1?1020??20011????????=???56?54??54?56?????
特征值:
λ1=2,λ2=25\lambda_1=2, \lambda_2=\frac{2}{5} λ1?=2,λ2?=52?
特征向量:
c1=(11)c2=(?11)c_1= \begin{pmatrix} 1\\ 1\\ \end{pmatrix} \\ c_2= \begin{pmatrix} -1\\ 1\\ \end{pmatrix} c1?=(11?)c2?=(?11?)
對角化:
PCPT=(1212?1212)(65454565)(12?121212)=(20025)PCP^\mathrm{ T }= \begin{pmatrix} \frac{1}{\sqrt2}&\frac{1}{\sqrt2}\\ \\ \frac{-1}{\sqrt2}&\frac{1}{\sqrt2}\\ \end{pmatrix} \begin{pmatrix} \frac{6}{5}&\frac{4}{5}\\ \\ \frac{4}{5}&\frac{6}{5}\\ \end{pmatrix} \begin{pmatrix} \frac{1}{\sqrt2}&\frac{-1}{\sqrt2}\\ \\ \frac{1}{\sqrt2}&\frac{1}{\sqrt2}\\ \end{pmatrix} =\begin{pmatrix} 2&0\\ \\ 0&\frac{2}{5}\\ \end{pmatrix} PCPT=???2?1?2??1??2?1?2?1????????56?54??54?56????????2?1?2?1??2??1?2?1?????=???20?052?????
降維:
Y=(1212)(?1?1020?20011)=(?32?1203212)Y= \begin{pmatrix} \frac{1}{\sqrt2}&\frac{1}{\sqrt2} \end{pmatrix} \begin{pmatrix} -1&-1&0&2&0\\ -2&0&0&1&1\\ \end{pmatrix}= \begin{pmatrix} \frac{-3}{\sqrt2}&\frac{-1}{\sqrt2}&0&\frac{3}{\sqrt2}&\frac{1}{\sqrt2} \end{pmatrix} Y=(2?1??2?1??)(?1?2??10?00?21?01?)=(2??3??2??1??0?2?3??2?1??)
使用sklearn實現(xiàn)PCA降維
輸出結(jié)果如下:
one two three a 0 1 2 b 3 4 5 c 6 7 8 ======== shape: (3, 3) [[ 5.19615242][-0. ][-5.19615242]] ======== 降維后shape: (3, 1)one two three a 0 1 2 b 3 4 5 c 6 7 8 ======== shape: (3, 3) [[ 5.19615242][ 0. ][-5.19615242]] ======== 降維后shape: (3, 1)總結(jié)
- 上一篇: 100可爱简笔画(日记可爱小插画简笔画)
- 下一篇: 两个路由器怎么连接连俩个路由器怎么连接