1.将原始数据排列成n行m列的矩阵,n为数据的维度,m为数据的个数,即将每个数据竖着展示每个维度的值,然后将他们合成一个矩阵x
2.将x的每一行进行零均值化处理,即每一行的数据全部加起来,然后除以m,然后得到一个常数a,将这一行的每个数据都进行-a处理,其余的每一行以此类推。
3.求出协方差矩阵,c =
X
X
X
X
T
X^\mathrm T
XT / m ;其中x和xt已经是进行零均值化处理过后的举证了
4.求出c的特征值以及对应的特征值向量,同时对特征向量进行单位化处理(一定要做,切记不能忘了)
5.特征向量按照特征值的大小从上到下按行排列成举证,取前k行组成矩阵p(k表示我们需要降低到的维度,例如如果我们要把数据降低到1维,我们取第一行就可以了)
6.Y =px,Y即为我们所求的的矩阵
1.计算类内散度矩阵Sw
Sw求法,首先按照类别分别进行计算u,即1类计算u1,2类计算u2
u的计算方法为每行为每一类别的总和除以数量(即同类别的每一行全部加起来,除以个数),
然后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类别里面的数据,x1为u1类别里面的数据,即各自处理各自的数据
2.计算类间散度矩阵Sb
Sb=(u0-u1)(u0-u1)T
3.求c = Sw-1Sb
4.计算c的特征值和特征向量,按特征值的大小把特征向量从左到右按列进行排序,取前k列组成矩阵p
5.Y=PT*X,Y即为我们所求的矩阵
我们给予两个种类的二维数据(拿竖线进行划分,左边的种类为1类,右边的种类为2类),求PCA和LDA将其进行降一维后的结果,即降低为一维数据
[
−
1
−
1
0
2
0
−
2
0
0
1
1
]
(例子)
\left[ −1−1020−20011
我们可以看到数据为2维5项数据,求出他的均值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 [ 00
将五个数据分别减去u得到了新的X,因为这题比较特殊,经过0均值化处理后数据没有改变,所以x还是原来的数值没有发生改变
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 [ −1−1020−20011
求出c的特征值和单位特征向量(这一步不会的可以移步考研数学李永乐,因为markdown写latex太难写了,题主就直接给出求得之后的答案了)
所求得的特征值为:
λ
1
\lambda_1
λ1=2,
λ
2
\lambda_2
λ2=2/5
然后我们求得对应的单位向量矩阵为(通过特征值的大小对特征向量进行按行排序)
p
=
1
2
[
1
1
−
1
1
]
p=\frac{1}{\sqrt[]{2}}\left [ 11−11
因为我们要将数据从2维降低到1维,所以我们选择P的第一行数据进行降维度,p的第一行我们记作m,注意,此时的x为进行过0均值化后的数据
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 [ 11
我们所得到的y即为我们所求的结果
[
−
1
−
1
0
2
0
−
2
0
0
1
1
]
(例子)
\left[ −1−1020−20011
本题已知前三个数据为一个种类,后两个数据为一个种类
所以u0第一行为(-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 [ −23−23
然后我们选择套公式进行Sw的计算,将前三个值带入到前面的x0中,后面的两个值带入到后面的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的结果为:
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 [ 23232383
然后我们求出Sw-1,求逆矩阵的方法也可以参照考研数学,求出来之后的值为:
S
w
−
1
=
[
2
5
−
1
10
−
1
10
2
5
]
S_w^{-1}=\left [ 25−110−11025
计算类间散度矩阵Sb
Sb=(u0-u1)(u0-u1)T
求出Sb的值为:
S
b
=
[
25
9
25
9
25
9
25
9
]
S_b=\left [ 259259259259
然后我们计算c=Sw-1*Sb。
求得c为:
c
=
[
6
5
6
5
6
5
6
5
]
c=\left [ 65656565
求出c的特征值和单位特征向量,将单位特征向量按列排序(按照特征值大小进行排序),得到的单位特征向量为:
特征向量为
=
1
2
[
1
−
1
1
−
1
]
特征向量为=\frac{1}{\sqrt[]{2}}\left [ 1−11−1
取出第一列组成矩阵p,然后
y =pT*x,y即为我们所需要的降维之后的数据
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 [ 11