1.简介

Principal component analysis (PCA) is a statistical procedure that uses an orthogonal transformation to convert a set of observations of possibly correlated variables into a set of values of linearly uncorrelated variables called principal components.
从本质上来讲,主成分分析法是一种空间映射的方法,将在常规正交坐标系(我们看到的)的变量通过矩阵变换操作映射到另一个正交坐标系中的主元。做这个映射的目的是为了减少变量间的线性相关性。

2.作用

本来变量之间有线性相关性,现在都变成了相互独立。如果变量是作为分类的特征的话,那么主成分分析法起到了一种特征重建的作用;从最后的表示来看,主元是由原来的变量线性组合而成,原来的变量之间是线性相关的,而主元之间是相互独立的,直观上的可以通过主成分分析法进行聚类;当然,从主成分求解的过程来看,PCA还可以用来降维

3.算法原理

1、协方差原理
样本X和样本Y的协方差(Covariance):

协方差为正时说明X和Y是正相关关系,协方差为负时X和Y是负相关关系,协方差为0时X和Y相互独立。Cov(X,X)就是X的方差(Variance)。当样本是n维数据时,它们的协方差实际上是协方差矩阵(对称方阵),方阵的边长是Cn2。比如对于3维数据(x,y,z),计算它的协方差就是:

2、SVD分解原理

若AX=λX,则称λ是A的特征值,X是对应的特征向量。实际上可以这样理解:矩阵A作用在它的特征向量X上,仅仅使得X的长度发生了变化,缩放比例就是相应的特征值λ。当A是n阶可逆矩阵时,A与P-1Ap相似,相似矩阵具有相同的特征值。

特别地,当A是对称矩阵时,A的奇异值等于A的特征值,存在正交矩阵Q(Q-1=QT),使得:

对A进行奇异值分解就能求出所有特征值和Q矩阵。A∗Q=Q∗D,D是由特征值组成的对角矩阵由特征值和特征向量的定义知,Q的列向量就是A的特征向量。
3、PCA原理及实现

PCA主要通过把数据从高维映射到低维来降低特征维度。
PCA主成分分析法的过程是一个构造转换矩阵的过程。
PCA的算法步骤如下:
a.输入数据集x={x(1),x(2),x(3),…..,x(m)}、需要降到K维;
b.对变量矩阵x所有样本进行均值归零处理

c.求协方差矩阵

d.根据奇异值分解SVD(singular value decomposition),求出协方差矩阵的特征值和特征向量,特征向量组成的矩阵就是变换矩阵

e.将特征向量按照特征值大小进行排序,选取最大的前K个特征值对应的特征向量u(1),u(2),u(3),…..,u(k)

f.输出降维的投影特征矩阵Ureduce={u(1),u(2),u(3),…..,u(k)}
g.输出降维后的数据集z=UreduceTx

4、选择降维后的维度K(主成分的个数)

由于Ureduce是正交矩阵(下面Ureduce简记为U),即U’ = U-1, 所以
xapprox = (U’)-1×z = (U-1)-1×z = Uz (PS:这里的逆操作为伪逆操作)
注意:这里恢复出的xapprox并不是原先的x,而是向量x的近似值。(恢复后相当于将2D到1D时,将投影作为原先的点)
如何选择主成分个数K呢?先来定义两个概念:

选择不同的K值,然后用下面的式子不断计算,选取能够满足下列式子条件的最小K值即可。

其中t值可以由自己定,比如t值取0.01,则代表了该PCA算法保留了99%的主要信息。当误差需要更小,可以把t值设的更小。上式还可以用SVD分解时产生的S矩阵来表示,如下面的式子:

定义一个threshold,如果error ratio< threshold,说明这样选取主成分是可以接受的

注意1:虽然PCA有降维的效果,也许对避免过拟合有作用,但是最好不要用PCA去作用于过拟合。

注意2:在训练集中找出PCA的主成分,(可以看做为映射 mapping),然后应用到测试集和交叉验证集中。而不是对所有数据集使用PCA然后再划分训练集,测试集和交叉验证集。

附:








参考文档:
https://blog.csdn.net/u011470552/article/details/54862484

主成分分析法Principal component analysis (PCA)介绍相关推荐

  1. 主成分分析(principal component analysis, PCA)公式

    主成分分析(principal component analysis, PCA)公式 主成分分析 摘要 什么是主成分 求解 PCA 的公式 数学证明 程序验证 参考文献 主成分分析 摘要 主成分分析作 ...

  2. 主成分分析(Principal Component Analysis, PCA)原理全面解析与应用

    目录 1. PCA算法概述 2. 数据预处理 3. 协方差矩阵计算 4. 特征值与特征向量 5. 选择主成分 6. 数据投影 7. PCA的优缺点 8. PCA算法应用 主成分分析(Principal ...

  3. SPSS 主成分分析(Principal Component Analysis,PCA)

    定义 主成分分析是利用降维的思想,在损失很少信息的前提下把多个指标转化为几个综合指标的多元统计方法. 转化生成的综合指标称之为主成分,其中每个主成分都是原始变量的线性组合,且各个主成分之间互不相关,这 ...

  4. 主成分分析(Principal Component Analysis,PCA)

    文章目录 1. 总体主成分分析 2. 样本主成分分析 3. 主成分分析方法 3.1 相关矩阵的特征值分解算法 3.2 矩阵奇异值分解算法 4. sklearn.decomposition.PCA 主成 ...

  5. pca降维python实例_主成分分析(Principal component analysis, PCA)例子–Python | 文艺数学君...

    摘要这一篇是关于PCA的实战, 我们会举一个例子, 看一下PCA具体在实战中是如何来进行的. 同时我们会比较同一个数据下, 使用PCA(主成分分析)和FA(因子分析)得到结果的不同. 简介 这一篇文章 ...

  6. 主成分分析(Principal Component Analysis)

    主成分分析(Principal Component Analysis) 主成分分析(PCA)是一个被广泛用于降维.有损数据压缩.特征提取和数据可视化的技术.PCA有两种常用的定义,分别是从最大化投影后 ...

  7. Principal Component Analysis(PCA)

    Principal Component Analysis(PCA) Principal Component Analysis(PCA) 概念 去中心化(零均值化): 将输入的特征减去特征的均值, 相当 ...

  8. 机器学习与高维信息检索 - Note 4 - 主成分分析及其现代解释(Principal Component Analysis, PCA)及相关实例

    主成分分析及其现代解释 4. 主成分分析及其现代解释 Principal Component Analysis and Its Modern Interpretations 4.1 几何学解释 The ...

  9. SAS:主成分分析(Principal Component Analysis,PCA)

    from:http://blog.csdn.net/archielau/article/details/7989735 进行主成分分析主要步骤如下: 1. 指标数据标准化( SPSS软件 自动执行), ...

  10. SAS进行主成分分析(Principal Component Analysis,PCA)

    进行主成分分析主要步骤如下: 1. 指标数据标准化( SPSS软件自动执行),目的是消除不同量纲的影响: 2. 指标之间的相关性判定: 3. 确定主成分个数m: 4. 主成分Fi表达式: 5. 主成分 ...

最新文章

  1. eclipse快捷键操作
  2. Windows Server 2012 之配置AD DS
  3. 浏览新闻oracle的数据结构,oracle 数据结构探索之旅二 [2]
  4. Local Response Normalization作用——对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力...
  5. 【java的多态性】
  6. python_面向对象
  7. 云时代架构阅读笔记十五——架构设计思维(一)
  8. ashx误删后,未能创建类型
  9. resx文件在X64位编译,提示“未能加载文件或程序集”的问题?
  10. vue生命周期大白话篇
  11. Git(2)-- Git安装后首次配置与第一次使用Git和Github管理自己的代码(超详细纯小白图文教程)
  12. python小工具脚本批量处理_压缩文件批量处理(附Python脚本代码)
  13. 并查集路径压缩_并查集简单教学
  14. 层次分析法——matlab实操
  15. Thinkphp6快速入门一
  16. 计算机毕业设计springcloud基于微服务的家居体验平台的设计与实现
  17. 太上玄门日诵早晚功课经序
  18. 人人5功盖世时候,我在支持国产
  19. 网络层(三)构成超网
  20. C# Newtonsoft.Json

热门文章

  1. Java基础编程实现2-面向对象-类
  2. PHP 导出 Excel 换行不显示
  3. VB.NET合并图片
  4. nexus4刷机 android6.0,谷歌nexus 5刷机工具
  5. 自我救赎段子_为什么技术可以成为现代教育和学习的救赎之恩
  6. 手机浏览器下载IOS版APP
  7. 创建不带参数的存储过程
  8. 如何写出真正触动人心的广告文案(二)
  9. ccf201412-3集合竞价
  10. 融360第三季度营收4.44亿 营销费用占比大幅降低