PCA方法学习

PCA是什么

PCA是一种降维方法,试图从高维数据提取出关键的特征,最后使得降维后的数据有最大可分性,也就是方差最大.

基变换

很容易理解,PCA的目的就是挑选K个基,使得原数据各个特征在新的基下的方差最大.下面从矩阵运算的角度讲述基变换.

假设一个向量

\mathbf{x} = \begin{bmatrix} a_1\\ a_2\\ \cdots \\ a_n \\ \end{bmatrix}

另外一组向量作为新的基

\mathbf{B} = \begin{bmatrix} \mathbf{b} _1^T \\ \mathbf{b} _2^T \\ \cdots \\ \mathbf{b} _K^T \\ \end{bmatrix}

那么x在新基中的坐标表示为

\mathbf{y} = \mathbf{Bx}

方差和协方差

协方差可以用来表示两个变量的线性相关性,当协方差为0可以说这两个变量完全线性不相关,当两个变量相同时,就退化为方差,协方差定义如下:

Cov(\mathbf{a},\mathbf{b}) = \frac{1}{n-1}\cdot \Sigma_{i=1}^n{(a_i-\mu _a)(b_i-\mu _b)}

下面我们认为一个特征就是一个变量

协方差矩阵

考虑m个n维向量代表m个样本,令

\mathbf{X} = \begin{bmatrix} \mathbf{x_1}, \mathbf{x_2}, \cdots , \mathbf{x_m} \end{bmatrix}

那么

\frac{1}{m} \mathbf{X}\cdot \mathbf{X}^T = \begin{bmatrix} Cov(f_1,f_1), Cov(f_1,f_2), \cdots , Cov(f_1,f_n) \\ Cov(f_2,f_1), Cov(f_2,f_2), \cdots , Cov(f_2,f_n) \\ \vdots \\ Cov(f_n,f_1), Cov(f_n,f_2), \cdots , Cov(f_n,f_n) \\ \end{bmatrix}

其中fi为第i维特征

注意到矩阵对角线上为方差其余位置为协方差,我们最终的目标是让协方差为0,而方差最大.又因为

\frac{1}{m} \mathbf{Y} \cdot \mathbf{Y}^T = \frac{1}{m} \mathbf{P\cdot X}\cdot \mathbf{X}^T \cdot \mathbf{P}^T

我们最终的目标就是找到一个P使得基变换后的协方差矩阵中对角线上的方差从大到小排列,并且其余位置为0,这样我们就可以提取前K个作为我们降维的得到的重要特征,也就是主成分.

线性代数的理论告诉我们这样的P是存在的,这里不细说了.

最后找到了PK,就得到了处理后的数据

\mathbf{Y} = \mathbf{P}_K \cdot \mathbf{X}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值