码迷,mamicode.com
首页 > 其他好文 > 详细

PCA主成分分析

时间:2020-03-29 17:55:00      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:href   模型   http   技术   求导   作用   target   问题   ||   

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主成分分析

标签:href   模型   http   技术   求导   作用   target   问题   ||   

原文地址:https://www.cnblogs.com/lightblueme/p/12593597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!