首页 > 其他分享 >【学习笔记】主成分分析

【学习笔记】主成分分析

时间:2024-01-20 09:55:06浏览次数:16  
标签:特征值 特征向量 矩阵 笔记 times 学习 协方差 成分 lambda

现在有 \(m\) 个 \(n\) 维的数据,想把它们降到 \(k\) 维,得到一个 \(m\times k\) 的矩阵,但是不能损失数据之间的关联性和差异性。

那么不难发现这肯定是让矩阵右乘一个大小为 \(n\times k\) 的矩阵,进行一个线性空间的映射。

做法是构造一个 \(n\) 维数据的协方差矩阵(矩阵的行列表示的是数据的维度,手上的 \(m\) 个数据变成了观测点),求其特征值和特征向量,把前 \(k\) 大特征值对应的特征向量 concat 起来就得到了要被右乘的矩阵。

这么做的道理是什么?

【Appendix】

什么是协方差矩阵

协方差 co-variance: 对于两个有 \(n\) 个观测点 \(\{(X_i,Y_i)\}_{i=1}^n\) 的随机变量 \(X,Y\),\(cov(X,Y)=\frac 1{n-1}\sum_{i=1}^n (X_i-\bar X)(Y_i-\bar Y)\)

为什么是 \(\frac{1}{n-1}\)?请自行百度 bessel 修正,我也不会,感性理解不了。

在 主成分分析 中,\(n\) 个维度两两协方差构成了协方差矩阵。求 cov matrix 其实蛮简单,以 \(m\times n\) 的数据矩阵为例,所有元素减去当列平均值之后得到 \(A'\)(更高大上的名字叫“零均值化”),那么 \(\frac 1{m-1} A' ^TA'\) 就是协方差矩阵

怎么求特征值和特征向量

对于一个 matrix A of size n\(\times\)n,我们希望它对一个向量 \(x\) 空间映射之后向量 \(x\) 还能保持在原方向。形式化的讲:\(Ax=\lambda x\Rightarrow (A-\lambda I_n)x=0\)

方程有非 \(0\) 解需要 \(|A-\lambda I_n|=0\) 那么可以写成关于 \(\lambda\) 的一元 \(n\) 次方程,得到的 \(\lambda_1\dots \lambda_n\) 就是矩阵特征值。既然 \(|A-\lambda I_n|=0\) 那么 \(x\) 必然不唯一,对于任一 \(\lambda_i\) 想得到一个合法的 \(x\) 是容易的。

标签:特征值,特征向量,矩阵,笔记,times,学习,协方差,成分,lambda
From: https://www.cnblogs.com/yspm/p/17976065/PCANotes

相关文章

  • 人工智能第三版 第一章笔记
    人工智能第三版第一章人工智能概述主要内容:基本概念,应用领域、近期的历史和未来的前景1.图灵测试艾伦·图灵(AlanTuring)寻求可操作的方式来回答智能的问题,他想把功能(functionality,即智能能做的事情)与实现(implementation,即如何实现智能)分离开来。模拟游戏:询问者在有帘子的......
  • 图论练习笔记
    P1606[USACO07FEB]LilypadPondG首先跳的过程肯定不会经过相同位置,所以之前经过的位置可以视为原状态,所以可以把添加的莲花数量视为当前路径长度,问题也就转化成了最短路计数。因为求的是添加莲花的方案数而不是经过路径的方案数,所以可以把已有的莲花连通块缩起来,以水格子为状......
  • 1/19 学习进度笔记
    1.Cache和Checkpoint区别Cache是轻量化保存RDD数据,可存储在内存和硬盘,是分散存储,设计上数据是不安全的(保留RDD血缘关系)CheckPoint是重量级保存RDD数据,是集中存储,只能存储在硬盘(HDFS)上,设计上是安全的(不保留RDD血缘关系)2.Cache和CheckPoint的性能对比?Cache性能更好,因为......
  • 吴恩达 机器学习 第二章
    监督学习从给出的正确答案中学习回归用直线或曲线拟合数据,从无限多可能的输出数字中预测数字分类对一个类别做出预测,从小部分可能的结果中预测类别无监督学习不给标签,找到一些结构或模式聚类算法获取没有标签的数据并尝试自动将它们分组到集群中将未标记的数据放入不同......
  • 2024/1/19 算法笔记
    题目1:最大公约数的延伸问题P1414又是毕业季II-洛谷|计算机科学教育新生态(luogu.com.cn)题目上提及了最大公约数,但是解答却没有直接使用最大公约数doge题目意思是给定n个数,再给定一个k,往这n个数中取k个,求这k个数的最大公约数是多少?然后题目的要求是k的取值为1到n全部取......
  • Servlet(JSP)学习笔记
    目录IDEA配置JSP基本语法page指令ScriptLet标签注释包含跳转JSP四大作用域applicationsessionrequestpageJSP九大内置对象responseoutpageContextconfigexceptionJavaBean组件JavaBean组件引入创建JavaBean设置属性值获取属性值JavaBean的保存范围JavaBean的删除ServletHelloWorld......
  • Java学习日记 Day5 今天开始十点准时下班,身体是革命的本钱。。
    JavaSE:今天终于把集合结束了,这周尽量看完IO、多线程和网络编程吧。①Map的常用方法:基本还是增删改查的那些东西,挑重要的讲了。一个是keySet(),能过获取map中所有的key值,values()方法能够获取map中所有的数据值。但其实获取了key之后通过get(key)遍历也能获得属性值。②HashMap、Ta......
  • 大三寒假学习进度笔记10
    今日学习SprackSQL的两种语言风格,分别是DLS风格和SQL风格,其中SQL风格的语句需要先将DataFrame注册成表才能使用接下来是学习中使用到的部分代码#coding:utf8frompyspark.sqlimportSparkSessionfrompyspark.sql.typesimportStructType,StringType,IntegerTypeimpor......
  • ARC刷题笔记
    arc064[ARC064E]CosmicRays建图跑dijkstra即可//Author:xiaruize#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineullunsignedlonglong#defineALL(a)(a).begin(),(a).end()#definepbpush_back#definemkmake_pair#defin......
  • Linked list reversal using stack【1月19日学习笔记】
    点击查看代码//Linkedlistreversalusingstack#include<iostream>#include<stack>//stackfromstandardtemplatelibrary(STL)usingnamespacestd;structnode{ chardata; node*next;};node*A;//全局头指针voidreverse(){ if(A==NULL)return;//空......