从特征分解到协方差矩阵:详细剖析和实现PCA算法

本文先简要明了地介绍了特征向量和其与矩阵的关系,然后再以其为基础解释协方差矩阵和主成分分析法的基本概念,最后我们结合协方差矩阵和主成分分析法实现数据降维。本文不仅仅是从理论上阐述各种重要概念,同时最后还一步步使用 Python 实现数据降维。

首先本文的特征向量是数学概念上的特征向量,并不是指由输入特征值所组成的向量。数学上,线性变换的特征向量是一个非简并的向量,其方向在该变换下不变。该向量在此变换下缩放的比例称为特征值。一个线性变换通常可以由其特征值和特征向量完全描述。如果我们将矩阵看作物理运动,那么最重要的就是运动方向(特征向量)和速度(特征值)。因为物理运动只需要方向和速度就可以描述,同理矩阵也可以仅使用特征向量和特征值描述。

其实在线性代数中,矩阵就是一个由各种标量或变量构成的表格,它和 Excel 表格并没有什么本质上的区别。只不过数学上定义了一些矩阵间的运算,矩阵运算的法则和实际内部的值并没有什么关系,只不过定义了在运算时哪些位置需要进行哪些操作。因为矩阵相当于定义了一系列运算法则的表格,那么其实它就相当于一个变换,这个变换(物理运动)可以由特征向量(方向)和特征值(速度)完全描述出来。

线性变换  

在解释线性变换前,我们需要先了解矩阵运算到底是什么。因为我们可以对矩阵中的值统一进行如加法或乘法等运算,所以矩阵是十分高效和有用的。如下所示,如果我们将向量 v 左乘矩阵 A,我们就会得到新的向量 b,也即可以表述说矩阵 A 对输入向量 v 执行了一次线性变换,且线性变换结果为 b。因此矩阵运算 Av = b 就代表向量 v 通过一个变换(矩阵 A)得到向量 b。下面的实例展示了矩阵乘法(该类型的乘法称之为点积)是怎样进行的:


所以矩阵 A 将向量 v 变换为向量 b。下图展示了矩阵 A 如何将更短更低的向量 v 映射到更长更高的向量 b:


我们可以馈送其他正向量到矩阵 A 中,每一个馈送的向量都会投影到新的空间中且向右边变得更高更长。

专业用户独享

本文为机器之心深度精选内容,专业认证后即可阅读全文
开启专业认证
工程PCA算法工程矩阵数据降维算法
8
暂无评论
暂无评论~