營(yíng)銷(xiāo)型企業(yè)網(wǎng)站項(xiàng)目策劃表武漢seo 網(wǎng)絡(luò)推廣
PCA算法和LDA算法可以用于對(duì)數(shù)據(jù)進(jìn)行降維,例如可以把一個(gè)2維的數(shù)據(jù)降低維度到一維,本文通過(guò)舉例子來(lái)對(duì)PCA算法和LDA算法的計(jì)算過(guò)程進(jìn)行教學(xué)展示。
PCA算法計(jì)算過(guò)程(文字版,想看具體計(jì)算下面有例子)
1.將原始數(shù)據(jù)排列成n行m列的矩陣,n為數(shù)據(jù)的維度,m為數(shù)據(jù)的個(gè)數(shù),即將每個(gè)數(shù)據(jù)豎著展示每個(gè)維度的值,然后將他們合成一個(gè)矩陣x
2.將x的每一行進(jìn)行零均值化處理,即每一行的數(shù)據(jù)全部加起來(lái),然后除以m,然后得到一個(gè)常數(shù)a,將這一行的每個(gè)數(shù)據(jù)都進(jìn)行-a處理,其余的每一行以此類(lèi)推。
3.求出協(xié)方差矩陣,c = X X X X T X^\mathrm T XT / m ;其中x和xt已經(jīng)是進(jìn)行零均值化處理過(guò)后的舉證了
4.求出c的特征值以及對(duì)應(yīng)的特征值向量,同時(shí)對(duì)特征向量進(jìn)行單位化處理(一定要做,切記不能忘了)
5.特征向量按照特征值的大小從上到下按行排列成舉證,取前k行組成矩陣p(k表示我們需要降低到的維度,例如如果我們要把數(shù)據(jù)降低到1維,我們?nèi)〉谝恍芯涂梢粤?
6.Y =px,Y即為我們所求的的矩陣
LDA算法計(jì)算過(guò)程(文字版,想看具體計(jì)算下面有例子)
1.計(jì)算類(lèi)內(nèi)散度矩陣Sw
Sw求法,首先按照類(lèi)別分別進(jìn)行計(jì)算u,即1類(lèi)計(jì)算u1,2類(lèi)計(jì)算u2
u的計(jì)算方法為每行為每一類(lèi)別的總和除以數(shù)量(即同類(lèi)別的每一行全部加起來(lái),除以個(gè)數(shù)),
然后Sw = Σ u \Sigma_u Σu? Σ \Sigma Σ = Σ x 0 \Sigma_{x_0} Σx0??(x-u0)(x-u0)T+ Σ x 1 \Sigma_{x_1} Σx1??(x-u1)(x-u1)T,其中前面的x為u0類(lèi)別里面的數(shù)據(jù),x1為u1類(lèi)別里面的數(shù)據(jù),即各自處理各自的數(shù)據(jù)
2.計(jì)算類(lèi)間散度矩陣Sb
Sb=(u0-u1)(u0-u1)T
3.求c = Sw-1Sb
4.計(jì)算c的特征值和特征向量,按特征值的大小把特征向量從左到右按列進(jìn)行排序,取前k列組成矩陣p
5.Y=PT*X,Y即為我們所求的矩陣
例子:
我們給予兩個(gè)種類(lèi)的二維數(shù)據(jù)(拿豎線進(jìn)行劃分,左邊的種類(lèi)為1類(lèi),右邊的種類(lèi)為2類(lèi)),求PCA和LDA將其進(jìn)行降一維后的結(jié)果,即降低為一維數(shù)據(jù)
[ ? 1 ? 1 0 2 0 ? 2 0 0 1 1 ] (例子) \left[ \begin{array}{ccc|cc} -1 & -1 & 0 & 2 &0\\ -2 & 0 & 0 & 1 &1 \end{array} \right] \tag{例子} [?1?2??10?00?21?01?](例子)
PCA:
我們可以看到數(shù)據(jù)為2維5項(xiàng)數(shù)據(jù),求出他的均值u0
u0第一行為(-1-1+0+2+0)/5= 0;
u0第二行為(-2 + 0 +0 + 1 +1)/5 = 0;
所以 u 0 = [ 0 0 ] (1) u_0=\left [ \begin{array}{c} 0\\ 0 \end{array} \right] \tag{1} u0?=[00?](1)
將五個(gè)數(shù)據(jù)分別減去u得到了新的X,因?yàn)檫@題比較特殊,經(jīng)過(guò)0均值化處理后數(shù)據(jù)沒(méi)有改變,所以x還是原來(lái)的數(shù)值沒(méi)有發(fā)生改變
c = [ ? 1 ? 1 0 2 0 ? 2 0 0 1 1 ] ? [ ? 1 ? 2 ? 1 0 0 0 2 1 0 1 ] / 5 = [ 6 / 5 4 / 5 4 / 5 6 / 5 ] c=\left [ \begin{array}{ccccc} -1 & -1 & 0 & 2 &0\\ -2 & 0 & 0 & 1 &1 \end{array} \right] * \left [ \begin{array}{cc} -1 & -2 \\ -1 & 0 \\ 0 & 0 \\ 2 & 1 \\ 0 & 1 \\ \end{array} \right] /5=\left [ \begin{array}{ccccc} 6/5 & 4/5 \\ 4/5 & 6/5 \\ \end{array} \right] c=[?1?2??10?00?21?01?]? ??1?1020??20011? ?/5=[6/54/5?4/56/5?]
求出c的特征值和單位特征向量(這一步不會(huì)的可以移步考研數(shù)學(xué)李永樂(lè),因?yàn)閙arkdown寫(xiě)latex太難寫(xiě)了,題主就直接給出求得之后的答案了)
所求得的特征值為: λ 1 \lambda_1 λ1?=2, λ 2 \lambda_2 λ2?=2/5
然后我們求得對(duì)應(yīng)的單位向量矩陣為(通過(guò)特征值的大小對(duì)特征向量進(jìn)行按行排序)
p = 1 2 [ 1 1 ? 1 1 ] p=\frac{1}{\sqrt[]{2}}\left [ \begin{array}{ccccc} 1 & 1 \\ -1 & 1 \end{array} \right] p=2?1?[1?1?11?]
因?yàn)槲覀円獙?shù)據(jù)從2維降低到1維,所以我們選擇P的第一行數(shù)據(jù)進(jìn)行降維度,p的第一行我們記作m,注意,此時(shí)的x為進(jìn)行過(guò)0均值化后的數(shù)據(jù)
y = m ? x = 1 2 [ 1 1 ] ? [ ? 1 ? 1 0 2 0 ? 2 0 0 1 1 ] = 1 2 [ ? 3 ? 1 0 3 1 ] y=m*x=\frac{1}{\sqrt[]{2}}\left [ \begin{array}{ccccc} 1 & 1 \\ \end{array} \right]* \left [ \begin{array}{ccccc} -1& -1 &0 &2 &0 \\ -2 & 0 & 0 & 1& 1 \end{array} \right]=\frac{1}{\sqrt[]{2}}\left [ \begin{array}{ccccc} -3& -1 &0 &3 &1 \\ \end{array} \right] y=m?x=2?1?[1?1?]?[?1?2??10?00?21?01?]=2?1?[?3??1?0?3?1?]
我們所得到的y即為我們所求的結(jié)果
LDA:
[ ? 1 ? 1 0 2 0 ? 2 0 0 1 1 ] (例子) \left[ \begin{array}{ccc|cc} -1 & -1 & 0 & 2 &0\\ -2 & 0 & 0 & 1 &1 \end{array} \right] \tag{例子} [?1?2??10?00?21?01?](例子)
本題已知前三個(gè)數(shù)據(jù)為一個(gè)種類(lèi),后兩個(gè)數(shù)據(jù)為一個(gè)種類(lèi)
所以u(píng)0第一行為(-1-1+0)/3 = -2/3
u0第二行為(-2+0+0)/3 = -2/3;
u1第一行為(2+0)/2=1
u1第二行為(1+1)/2=1
所求得的u0u1如下所示:
u 0 = [ ? 2 3 ? 2 3 ] u 1 = [ 1 1 ] u_0=\left [ \begin{array}{ccccc} -\frac{2}{3}\\ -\frac{2}{3} \end{array} \right] u_1=\left [ \begin{array}{ccccc} {1}\\ {1}\\ \end{array} \right] u0?=[?32??32??]u1?=[11?]
然后我們選擇套公式進(jìn)行Sw的計(jì)算,將前三個(gè)值帶入到前面的x0中,后面的兩個(gè)值帶入到后面的x1中,求得的Sw。
Sw = Σ u \Sigma_u Σu? Σ \Sigma Σ = Σ x 0 \Sigma_{x_0} Σx0??(x-u0)(x-u0)T+ Σ x 1 \Sigma_{x_1} Σx1??(x-u1)(x-u1)T
Sw的結(jié)果為:
S w = [ 2 3 2 3 2 3 8 3 ] + [ 2 0 0 0 ] = [ 8 3 2 3 2 3 8 3 ] S_w=\left [ \begin{array}{ccccc} \frac{2}{3} & \frac{2}{3}\\ \frac{2}{3} & \frac{8}{3} \\ \end{array} \right]+\left[ \begin{array}{ccccc} 2& 0\\ 0 & 0 \\ \end{array} \right] =\left[ \begin{array}{ccccc} \frac{8}{3} & \frac{2}{3}\\ \frac{2}{3} & \frac{8}{3} \\ \end{array} \right] Sw?=[32?32??32?38??]+[20?00?]=[38?32??32?38??]
然后我們求出Sw-1,求逆矩陣的方法也可以參照考研數(shù)學(xué),求出來(lái)之后的值為:
S w ? 1 = [ 2 5 ? 1 10 ? 1 10 2 5 ] S_w^{-1}=\left [ \begin{array}{ccccc} \frac{2}{5} & -\frac{1}{10}\\ -\frac{1}{10} & \frac{2}{5} \\ \end{array} \right] Sw?1?=[52??101???101?52??]
計(jì)算類(lèi)間散度矩陣Sb
Sb=(u0-u1)(u0-u1)T
求出Sb的值為:
S b = [ 25 9 25 9 25 9 25 9 ] S_b=\left [ \begin{array}{ccccc} \frac{25}{9} & \frac{25}{9}\\ \frac{25}{9} & \frac{25}{9} \\ \end{array} \right] Sb?=[925?925??925?925??]
然后我們計(jì)算c=Sw-1*Sb。
求得c為:
c = [ 6 5 6 5 6 5 6 5 ] c=\left [ \begin{array}{ccccc} \frac{6}{5} & \frac{6}{5}\\ \frac{6}{5} & \frac{6}{5} \\ \end{array} \right] c=[56?56??56?56??]
求出c的特征值和單位特征向量,將單位特征向量按列排序(按照特征值大小進(jìn)行排序),得到的單位特征向量為:
特征向量為 = 1 2 [ 1 ? 1 1 ? 1 ] 特征向量為=\frac{1}{\sqrt[]{2}}\left [ \begin{array}{ccccc} 1 & -1\\ 1 & -1 \\ \end{array} \right] 特征向量為=2?1?[11??1?1?]
取出第一列組成矩陣p,然后
y =pT*x,y即為我們所需要的降維之后的數(shù)據(jù)
y = 1 2 [ 1 1 ] ? [ ? 1 ? 1 0 2 0 ? 2 0 0 1 1 ] = 1 2 [ ? 3 ? 1 0 3 1 ] y=\frac{1}{\sqrt[]{2}}\left [ \begin{array}{ccccc} 1 & 1\\ \end{array} \right] * \left[ \begin{array}{cccccccccccc} -1 & -1 & 0 & 2 &0\\ -2 & 0 & 0 & 1 &1 \end{array} \right] =\frac{1}{\sqrt[]{2}}\left[ \begin{array}{cccccccccccc} -3 & -1 & 0 & 3 & 1 \end{array} \right] y=2?1?[1?1?]?[?1?2??10?00?21?01?]=2?1?[?3??1?0?3?1?]