一篇文章了解PCA,MDS的推导过程

对于PCA和MDS降维两种方法,在数据分析,还是建模中我用到了很多次,很多时候都是直接在sklearn中调函数,或者直接网上找现成的,现在终于到了分析它的处理原理(数学角度)。

PCA降维

PCA可谓是我用的第二多的,我知道的要晚一些,(我看好多人都是先知道PCA,然后知道MDS,我竟然是反的)这里只推导它的过程,矩阵的处理啥的。

公式推导

首先有个数据矩阵X,大小为m*n,一行为一个样本,也就是 x i x_i xi,共有n个样本,m表示数据的维度。

X X X

然后求X的平均值 X ‾ \overline{X} X后定义新的矩阵A

A = X − X ‾ A=X-\overline{X} A=XX

定义矩阵B,B为A的转置矩阵*A

B = A T A B=A^{T}A B=ATA

然后求B矩阵的特征值,特征向量。将特征值进行大到小排序,如果你想降维到2维,那么只需要找到前两个特征值对应的特征向量,并将其组成2*m的矩阵P,然后即可求得降维后的矩阵D

D = X P D = XP D=XP

在这里插入图片描述

MDS降维

公式推导

第一步,需要定义一个距离函数,一般纯数据多采用欧氏距离,其他距离也可以具体数据具体分析。

数据矩阵为X,大小为m*n,一行为一个样本,也就是 x i x_i xi,共有n个样本,m表示数据的维度。

X X X

首先求得两两样本的距离矩阵D(主对角线元素为0)

D : d i j = d i s t ( x i , x j ) D: d_{ij}=dist(x_i,x_j) D:dij=dist(xi,xj)

然后分别定义3个dist函数

d i s t i ∗ : d i j = 1 m ∑ j = 1 m d i s t i j 2 dist_{i*}: d_{ij}=\frac{1}{m}\sum_{j=1}^{m}{dist_{ij}^2} disti:dij=m1j=1mdistij2

d i s t j ∗ : d i j = 1 m ∑ i = 1 m d i s t i j 2 dist_{j*}: d_{ij}=\frac{1}{m}\sum_{i=1}^{m}{dist_{ij}^2} distj:dij=m1i=1mdistij2

d i s t i j ∗ : d i j = 1 m ∑ i = 1 m ∑ j = 1 m d i s t i j 2 dist_{ij*}: d_{ij}=\frac{1}{m}\sum_{i=1}^{m}\sum_{j=1}^{m}{dist_{ij}^2} distij:dij=m1i=1mj=1mdistij2

然后根据以上3个dist求得矩阵B

B : b i j = − 1 2 ( d i s t i j 2 − d i s t i ∗ − d i s t j ∗ + d i s t i j ∗ ) B:b_{ij}=-\frac{1}{2}(dist_{ij}^2-dist_{i*}-dist_{j*}+dist_{ij*}) Bbij=21(distij2distidistj+distij)

然后求B的特征值和特征向量,并对特征值排序并将其转换为矩阵,特征值在对角线,其他位置补充0,特征向量按特征值顺序也进行排序然后进行归一化处理(与PCA不同)。如果降维至2维,那么只需要从左上角开始取2*2的特征值,取前2个特征向量,分别定义为 B e B_e Be B n B_n Bn那么最终降维结果为

Z = B e B n T Z=\sqrt{B_e}B_n^T Z=Be BnT

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值