PCA主成分分析
PCA主成分分析
所谓主成分分析是要找到一组对原特征进行线性变换的变换向量。通过变换之后得到的新的变量,应该具有尽可能大的方差,这里的方差是在总体样本上计算的。
这里的变换向量的作用实际上就是线性组合的问题。
这种变换向量可能有多个,多种变换之间应该尽可能线性无关,实际上就是这些变换向量之间线性无关就可以了。
假设有N个训练样本
$X=[x_{1},x_{2},x_{3}...,x_{N}]$
$x_{i},i=1,2,3...,N$分别是一个列向量,因此X的每一列是一个训练样本
设变换向量为$\alpha_{j}$,一个列向量,所有的变换向量为$\alpha=[\alpha_{1},\alpha_{2},\alpha_{3},...,\alpha_{J}]$
则变换的结果是
$\alpha_{j}^{T}*X$
$\alpha_{j}*X$
一、在进行变换之前,我们首先对数据进行去中心化,将平均值设置为0
二、对其求方差变
$var(\alpha_{j}^{T}*X)=\frac{1}{N}((\alpha_{j}^{T}*X-mean)(\alpha_{j}^{T}*X)^{T}-mean)$
由于mean=0,所以上式等价于
$var(\alpha_{j}^{T}*X)=\frac{1}{N}((\alpha_{j}^{T}*X)(\alpha_{j}^{T}*X)^{T})$
如果将所有的变换向量考虑尽量,就变为
$var(\alpha^{T}*X)=\frac{1}{N}((\alpha^{T}*X)(\alpha^{T}*X)^{T})$
即
$var(\alpha^{T}*X)=\frac{1}{N}((\alpha^{T}*X)^{2})$
这里转化为一个最优化问题,这里的方差应该是尽可能的大,这样在变换之后才会保持尽可能多的信息。
上图是一个形象的说明,将所有数据如果投影到长轴上,会具有更大的区分性,同时方差较大。
由于变换向量的大小可以任意调整,那么上式的方差将无法确定,这里我们加一个限制
$||\alpha_{i}||=1,i=1,2,...,J$
因此模型变为
$argmax \frac{1}{N}((\alpha^{T}*X)^{2}) ---------------------------(1)$
s.t. $||\alpha_{i}||=1,i=1,2,...,J$
使用熟悉的拉格朗日内来进行计算
$argmax \frac{1}{N}((\alpha^{T}*X)^{2})- \lambda*||\alpha_{i}||^{2} ---------------------------(2)$
对上式求导,并且令其等于零,得到
$X*X*\alpha = \lambda*\alpha$
可以看到就是求取特征值,特征向量。
将其带入(1)得到
最大值为
$\frac{1}{N}((\alpha^{T}*X)^{2}) = \frac{1}{N}(\alpha^{T})*\lambda*\alpha $
由于
$||\alpha_{i}||=1,i=1,2,...,J$
上式结果是
$\frac{1}{N}\lambda$
一次需要选取较大的\lambda,也就是特征值。
posted on 2020-03-29 17:33 lightblueme 阅读(134) 评论(0) 编辑 收藏 举报