PCA和LDA数据降维计算(含数学例子推导过程)

本文详细介绍了PCA和LDA算法的计算步骤,通过二维数据降维示例展示了如何计算协方差矩阵、特征值和特征向量,以实现数据的降维效果,最后验证了PCA和LDA在相同数据上的结果一致性。

PCA算法和LDA算法可以用于对数据进行降维,例如可以把一个2维的数据降低维度到一维,本文通过举例子来对PCA算法和LDA算法的计算过程进行教学展示。

PCA算法计算过程(文字版,想看具体计算下面有例子)

1.将原始数据排列成n行m列的矩阵,n为数据的维度,m为数据的个数,即将每个数据竖着展示每个维度的值,然后将他们合成一个矩阵x
2.将x的每一行进行零均值化处理,即每一行的数据全部加起来,然后除以m,然后得到一个常数a,将这一行的每个数据都进行-a处理,其余的每一行以此类推。
3.求出协方差矩阵,c =XXXXTX^\mathrm TXT / m ;其中x和xt已经是进行零均值化处理过后的举证了
4.求出c的特征值以及对应的特征值向量,同时对特征向量进行单位化处理(一定要做,切记不能忘了)
5.特征向量按照特征值的大小从上到下按行排列成举证,取前k行组成矩阵p(k表示我们需要降低到的维度,例如如果我们要把数据降低到1维,我们取第一行就可以了)
6.Y =px,Y即为我们所求的的矩阵

LDA算法计算过程(文字版,想看具体计算下面有例子)

1.计算类内散度矩阵Sw
Sw求法,首先按照类别分别进行计算u,即1类计算u1,2类计算u2
u的计算方法为每行为每一类别的总和除以数量(即同类别的每一行全部加起来,除以个数),
然后Sw = Σu\Sigma_uΣuΣ\SigmaΣ =Σx0\Sigma_{x_0}Σx0(x-u0)(x-u0)T+Σx1\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−1020−20011](例子) \left[ \begin{array}{ccc|cc} -1 & -1 & 0 & 2 &0\\ -2 & 0 & 0 & 1 &1 \end{array} \right] \tag{例子} [1210002101](例子)

PCA:

我们可以看到数据为2维5项数据,求出他的均值u0
u0第一行为(-1-1+0+2+0)/5= 0;
u0第二行为(-2 + 0 +0 + 1 +1)/5 = 0;
所以u0=[00](1) u_0=\left [ \begin{array}{c} 0\\ 0 \end{array} \right] \tag{1} u0=[00](1)
将五个数据分别减去u得到了新的X,因为这题比较特殊,经过0均值化处理后数据没有改变,所以x还是原来的数值没有发生改变
c=[−1−1020−20011]∗[−1−2−10002101]/5=[6/54/54/56/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=[1210002101] 1102020011 /5=[6/54/5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值