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主成分分析的主要内容,如果未能解决你的问题,请参考以下文章

主成分分析(PCA)

主成分分析-PCA

05-03 主成分分析(PCA)

主成分分析(PCA)原理及R语言实现

PCA(主成分分析) 一

主成分分析(PCA)