离开很久啦,从Ph.D.套磁开始到全部settle down花费了太久的时间,在上周也终于把研究方向定下来了,终于手头的事告一段落了。未来是跨度三到四年的research生涯,无数师兄师姐告诫我,读博,尤其是在国外一个人读博是一个漫长和痛苦的过程(莫名心头响起“时间是一把刀【哭】”的声音)。慢慢的记录自己学过的东西和心得,借助网络和CSDN Blog这个平台大家一起讨论和进步!

之前关于Learning OpenCV 3的个人翻译后续会有更新,之前的工作因为个人水平所限虽然翻译了不少但是没有贴在网上,后续校准之后会陆续放出来。

另,提一句,本人研究方向大体是机器人立体视觉方向,身在大不列颠一所研究型大学读Ph.D.,如果有想聊机器人立体视觉方面的问题可以直接撩我哈~当然,想找大不列颠Ph.D.小伙伴也可以撩,小子不才在腐国也待了不短的一段时间了,多少能给一些建议的说。

  1. PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。

  2. 以下内容来自PCA数学原理

http://www.360doc.com/content/17/1006/09/48112216_692562036.shtml

  • 数据的向量表示及降维

比如淘宝某网店一天的统计数据为:(日期,浏览量,访客数,下单数,成交数,成交金额),这一组数据可以看做是一个6维空间中的向量。而许多数据算法的复杂度与数据的维度成指数关系。

所以过多的数据维度是不可接受的,那么这将会涉及到数据降维问题。比如“日期”仅为标识性数据,可以直接删除。而“访客数”和“下单数”成正相关,可以利用某种权重系数用更少的维度代表更多维度的信息。

  • 内积投影

向量的内积就是一向量在另一向量上的投影与另一向量的模的乘积。

如果向量B的模为1,则:

描述某一确定向量时会需要用到一组基底,和相应基底中的坐标值特征值)。例如向量(3,2)是在基底(1,0)和(0,1)中特征值分别为3和2的表示。

  • 基变换的矩阵表示

两个矩阵相乘的意义是将右边矩阵中的每一列向量变换到左边矩阵中每一行行向量为基所表示的空间中去

‘pi’是行向量,表示第i个基,‘aj’是列向量,表示第j个原始数据记录。

  • 协方差矩阵及优化目标

在第四步中讨论了对同一组数据在不同维度中转换的方法,而左边基的维度小于右边基则达到了降维目的。

1)降维逻辑

将一组N维向量降为K维(K大于0小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段方差则尽可能大(在正交的约束下,取最大的K个方差)

2)协方差矩阵

设有m个n维数据记录,将其按列排成n乘m的矩阵R。对每一行上的字段元素都减去这一字段的平均值,从而得到新矩阵X,这样X的字段平均值都为0。设,C是一个对称矩阵,其对角线为各个字段的方差,而第i行j列的元素与第j行i列的元素相同,表示i和j两个字段的协方差。

3)协方差矩阵对角化

设原始数据矩阵X对应的协方差矩阵为C(),经过基底P的变换之后X变为Y(),且假设Y的协方差矩阵为D(),则:

4)所以目的变为寻找一个矩阵P,满足是一个对角矩阵,并且对角元素按从大到小排列,那么P的前K行就是要寻找的基,用P的前K行组成矩阵乘以X就使得X从N维降到了K维,从而满足了降维条件。

  • 为何采用协方差矩阵:协方差矩阵度量的是维度与维度之间的关系,而非样本与样本之间。协方差矩阵的主对角线上的元素是各个维度上的方差(即能量),其他元素是两两维度间的协方差(即相关性)。让保留下的不同维度间的相关性尽可能小,也就是说让协方差矩阵中非对角线元素都基本为零。
  • 一个n行n列的实对称矩阵一定可以找到n个单位正交特征向量,设这n个向量为e1, e2, …, en,将其排列成矩阵:

其中为对角矩阵,其对角元素为各特征向量对应的特征值。

于是我们知道

  • PCA算法总结:

1)假设:有m条n维数据;

2)将原始数据组成n行m列矩阵X;

3)将矩阵X的每一行进行零均值化(减去这一行的均值);

4)求出协方差矩阵

5)求出协方差矩阵的特征值及对应的特征向量;

6)将特征向量按对应特征值的大小从上到下按行排列成矩阵,取前K行组成矩阵P;

Y=PX即为降维到K维后的数据。

  • PCA算法的局限性:

1)PCA算法可以很好的解决线性相关性,但是对于高阶的相关性作用不大(Kernel PCA);

2)PCA算法的主特征取得是正交方向上的,如果某情况主特征多分布在非正交情况,PCA算法的效果就会下降了;

3)PCA技术是一种通用技术,没有针对性,便于普遍实现,但是具体案例不同,PCA不一定是最合适的。

【碎片知识(9)】PCA (Principal Component Analysis) [主成分分析]相关推荐

  1. pca主成分分析结果解释_SKLEARN中的PCA(Principal Component Analysis)主成分分析法

    PCA(Principal Component Analysis)主成分分析法是机器学习中非常重要的方法,主要作用有降维和可视化.PCA的过程除了背后深刻的数学意义外,也有深刻的思路和方法. 1. 准 ...

  2. Principal Component Analysis 主成分分析 【学习笔记】

    Principal Component Analysis 主成分分析笔记 文章目录 Principal Component Analysis 主成分分析笔记 PCA是什么? 数据的线性变换 拉伸操作: ...

  3. 主成分分析PCA(principal component analysis)原理

    PCA在很多方面均有应用,但是之前没有仔细探究过,最近看了一些博客和论文,做一下总结. 主成分分析(Principal Component Analysis,PCA), 是一种统计方法.通过正交变换将 ...

  4. JAVA实现PCA主成分分析_主成分分析PCA(principal component analysis)原理

    PCA在很多方面均有应用,但是之前没有仔细探究过,最近看了一些博客和论文,做一下总结. 主成分分析(Principal Component Analysis,PCA), 是一种统计方法.通过正交变换将 ...

  5. 【机器学习sklearn】主成分分析PCA(Principal Component Analysis)

    主成分分析方法PCA 前言 一.PCA是什么? 二.代码实践 使用MNIST数据集实现sklearn库里的主成分分析方法 不同主成分个数对应的可解释方差分析(Explained Variance) 总 ...

  6. 机器学习降维算法一:PCA (Principal Component Analysis)

    引言: 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达 ...

  7. 主成分分析碎石图_R: 主成分分析 ~ PCA(Principal Component Analysis)

    本文摘自:http://www.cnblogs.com/longzhongren/p/4300593.html 以表感谢.感谢 综述: 主成分分析 因子分析 典型相关分析,三种方法的共同点主要是用来对 ...

  8. PCA(Principal Component Analysis 主成分分析)原理及MATLAB实现

    关于PCA的原理参见: PCA原理 PCA:一种通过特征的线性组合来实现降维的方法,目的就是在尽可能好的代表原始数据的前提下,通过线性变换将样本数据投影到地位空间中. 如图示意,二维样本分别投影到e1 ...

  9. 如何利用PCA(Principal component analysis)来简化数据

    本博文的的内容为以下: 降维技术 主成分分析(PCA) 对半导体数据进行降维处理 降维(dimensionality reduction)的目标就是对输入的数目进行消减,由此剔除数据中的噪声并提高机器 ...

最新文章

  1. Web Service 的工作原理
  2. Spring 执行 sql 脚本(文件)
  3. Python学习(七) 流程控制if语句
  4. php制作软件工具,开源10款热门教学相关的开源软件(教学平台和制作工具)
  5. 什么是map评测指标
  6. 机器学习算法-09-深度学习、BP神经网络、Hopfield神经网络、基于数学原理的神经网络、径向基函数RBF(B站一条会说666的咸鱼)
  7. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-2.微服务下登录检验解决方案 JWT讲解...
  8. SQL替换字段中一部分字符串
  9. 微型计算机系统的五大组成部分,计算机系统的组成计算机硬件的五大部分是什么...
  10. [CTF攻防世界] WEB区 关于备份的题目
  11. [经验] 我想加入阿里,我该怎么做
  12. 设置共享文件夹在主机与本地VMware虚拟机之间传输文件
  13. endl 和 \n 的区别
  14. 【考研英语语法】形容词练习题
  15. 如何配置java环境_vscode配置java环境
  16. k8s-滚动更新与健康检查
  17. xtrabackup 实现mysql的全量备份与增量备份
  18. FastAPI(55)- Events: startup - shutdown 启动/关闭事件
  19. 360视频:CMP和ACP投影
  20. 大学英语六级历年真题Word,PDF,和音频 下载

热门文章

  1. c mysql项目案例_C语言项目案例分析 目录
  2. 重拾C语言基础 进阶成为JAVA小老板
  3. 想学习如何把excel图片转表格?1分钟教会你图片转表格怎么转
  4. 334个地级市名单_334个地级市的“基层”演出,李志说“如果我死了,得留下点什么”...
  5. 2次心态变化和27个问题——机制落地的部分全貌与节奏控制
  6. IoT设备如何“守门”?厂商拖慢修复节奏,设备出厂设置弱密码
  7. Second,Millisecond,Microsecond
  8. 还是搞不懂Anaconda是什么?读这一篇文章就够了
  9. 心眼者 pat basic 练习六十九 微博转发抽奖
  10. 2020数模国赛c题论文latex