[原创] 主成分分析(PCA)思路梳理
作者:Steven Yang(steven_yang_0502 at outlook.com)
读本教程前,假定你的线性代数和概率论数理统计已经学得很好了。
在一组多维度的数据中,如果找出他的各个主成分?
假如数据是二维的,也就是如图中由(x1, y1)(x2, y2)(x3, y3)...的蓝色点构成的,
现在要找出他的两个主成分,当然,这显而易见。
但我们的目的是让这个问题变得一般化和机械化,所以问题转化为Fisher线性判别那样的最优化问题:
找出一个主成分,使得数据投影在向量上的点(如图)尽可能的离散,也就是方差最大。
方差最大,也就意味着产生一个独立的“维度”。
紧接着,我们把这种情况推广到更高的维度和更一般的情况。
在实际应用中,我们会把数据整理为一个矩阵。
比如拿模式识别来说,一张图片的所有像素被平铺为一列或一行。
于是有协方差矩阵(仅拿3变量的例子来举例)如下,
Cov(A)对角线上的元素是变量维度的方差,其他则为矩阵A中两个变量之间的协方差。
因为Cov(A1,A2)=Cov(A2,A1),所以协方差矩阵是实对称矩阵。
它有个简便的计算公式,
其中,m为样本的个数。
为了方差最大,矩阵变量间的协方差为0,而且协方差矩阵是对称的,我们把协方差矩阵对角化。
对角化一个实对称的矩阵,得求出特征值和特征向量。
只有方阵才能求特征值。求得特征值和特征变量后,只有特征值相等的变量才不是正交的,但是是线性无关的。其他都是正交的。
最后按特征值从大到小排序,按行,取前k个特征向量组成矩阵P。
因此,将原始特征投影到新的特征空间,Y是投影后的特征
就是降到k维后的数据。
用一般方法计算特征值和特征向量太慢,可以用SVD分解求得,这样效率更高。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下