有没有免费建网站,做一个高端网站,北京网聘信息技术有限公司,做微信的网站有哪些功能PCA算法和LDA算法可以用于对数据进行降维#xff0c;例如可以把一个2维的数据降低维度到一维#xff0c;本文通过举例子来对PCA算法和LDA算法的计算过程进行教学展示。
PCA算法计算过程(文字版#xff0c;想看具体计算下面有例子)
1.将原始数据排列成n行m列的矩阵#xf…PCA算法和LDA算法可以用于对数据进行降维例如可以把一个2维的数据降低维度到一维本文通过举例子来对PCA算法和LDA算法的计算过程进行教学展示。
PCA算法计算过程(文字版想看具体计算下面有例子)
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 pxY即为我们所求的的矩阵
LDA算法计算过程(文字版想看具体计算下面有例子)
1.计算类内散度矩阵Sw Sw求法首先按照类别分别进行计算u即1类计算u12类计算u2 u的计算方法为每行为每一类别的总和除以数量(即同类别的每一行全部加起来除以个数) 然后Sw Σ u \Sigma_u Σu Σ \Sigma Σ Σ x 0 \Sigma_{x_0} Σx0x-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.YPT*XY即为我们所求的矩阵
例子:
我们给予两个种类的二维数据(拿竖线进行划分左边的种类为1类右边的种类为2类)求PCA和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−10002101](例子)
PCA:
我们可以看到数据为2维5项数据求出他的均值u0 u0第一行为(-1-1020)/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) 将五个数据分别减去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 [ \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−10002101]∗ −1−1020−20011 /5[6/54/54/56/5] 求出c的特征值和单位特征向量(这一步不会的可以移步考研数学李永乐因为markdown写latex太难写了题主就直接给出求得之后的答案了) 所求得的特征值为: λ 1 \lambda_1 λ12, λ 2 \lambda_2 λ22/5 然后我们求得对应的单位向量矩阵为(通过特征值的大小对特征向量进行按行排序) p 1 2 [ 1 1 − 1 1 ] p\frac{1}{\sqrt[]{2}}\left [ \begin{array}{ccccc} 1 1 \\ -1 1 \end{array} \right] p2 1[1−111] 因为我们要将数据从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 ] ym*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] ym∗x2 1[11]∗[−1−2−10002101]2 1[−3−1031] 我们所得到的y即为我们所求的结果
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−10002101](例子) 本题已知前三个数据为一个种类后两个数据为一个种类
所以u0第一行为(-1-10)/3 -2/3 u0第二行为(-200)/3 -2/3; u1第一行为(20)/21 u1第二行为(11)/21 所求得的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] 然后我们选择套公式进行Sw的计算将前三个值带入到前面的x0中后面的两个值带入到后面的x1中求得的Sw。 Sw Σ u \Sigma_u Σu Σ \Sigma Σ Σ x 0 \Sigma_{x_0} Σx0x-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 [ \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[32323238][2000][38323238]
然后我们求出Sw-1求逆矩阵的方法也可以参照考研数学求出来之后的值为: 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−10152] 计算类间散度矩阵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[925925925925] 然后我们计算cSw-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[56565656] 求出c的特征值和单位特征向量,将单位特征向量按列排序(按照特征值大小进行排序)得到的单位特征向量为: 特征向量为 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*xy即为我们所需要的降维之后的数据 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] y2 1[11]∗[−1−2−10002101]2 1[−3−1031]
可以看到 PCA与LDA降维所得到的答案是一样的证明了我们计算的正确性
码字不易主要是写latex的语法的矩阵实在是太复杂了写的十分折磨点个赞再走把