PCA主成分分析
Posted lightblueme
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,也就是特征值。
[1] http://blog.csdn.net/porly/article/details/7874701
[2] http://blog.csdn.net/passball/article/details/24037593
以上是关于PCA主成分分析的主要内容,如果未能解决你的问题,请参考以下文章