主成分分析,Principal Component Analysis (PCA),是现代数据分析的标准工具,它可以把庞大复杂的高维数据集,通过数学变换,转化成较低维度的数据集,并去除掉维度之间的相关性。本文会以一种直观的方式来解释PCA,便于大家对其开箱即用。
1. 举例
假设我们是实验人员,正在尝试通过测量系统中的各种数据(如频谱、电压、电流等)来理解某种现象。但数据很多,且很混乱,不好判断哪些是有用的,哪些是多余的。现实工作和生活中,有很多类似的问题,比如神经系统、网页索引、气象和海洋学等复杂系统,需要我们抽丝剥茧,找到问题的本质。
以物理学中的一个理想弹簧为例,如Figure 1所示。该系统由无质量、无摩擦的沿x轴方向的弹簧和附着其上的质量为m的小球组成。沿x轴把小球拉开一段距离,弹簧处理拉伸状态。放开小球,系统会沿着x轴振动,也就是说,它的运动方程是关于单变量x的。假设在做实验之前,我们并不知道这一结论,因此我们在三维空间中的位置,放置了三台摄像机A,B,C(它们的角度并非互相垂直),这三台摄像机同时开始以同样的频率拍摄系统的运动轨迹。有了这三台摄像机的观察数据之后,我们怎么能根据这些数据,最终得到关于x的方程呢?
如果实验前我们有先验知识的话,我们会选择沿着x轴进行拍摄,并不需要记录y轴方向的数据。 但现实生活中我们往往并没有足够的先验知识,不清楚用什么样的方式来测量数据,可能统计出来的数据超出了实际需要。另外,我们还需要处理噪声,比如上面的例子中的空气阻力、摩擦力。噪声会污染数据集,增加了我们获取信息的难度。
PCA的目的是,找出数据集中最有意义的数据,能够过滤掉噪声并揭示隐藏的结构。在上面的弹簧示例中,PCA的明确目标是确定运动方向是沿着x轴的,换句话说,确定x轴方向的数据是最重要的。我们有3个相机A、B、C,每个相机都记录了x轴方向和y轴方向的坐标,把同一时刻的样本数据放在一起,就可以表示成6维列向量:
如果我们观察了10分钟,并以120HZ的频率拍照,那么我们便记录了
我们用一般化的数学语言来描述:
样本向量
每一行都是一个包含
2. 用数学语言描述PCA
PCA要解决的问题是,是否存在另一组基(原基的线性组合),可以更好地表达我们的数据集?令
-
是的行
-
是的列
-
是的列
也就是说: