seegongsik
我的单词本
工程数学

主成分就是最分散的方向

在数据云里找出最分散的方向,主成分是协方差矩阵的特征向量,只留下它们就降了维

想象你往桌上撒了一把谷粒。如果它们不是落成一团圆斑,而是朝一个方向铺得长长的,谁都能一眼指出"这个方向铺得最开"。主成分分析(PCA)问的正是这个:在一片数据点云里,哪个方向最分散?那个方向就是第一主成分(PC1),与它成直角、第二分散的方向就是 PC2。令人惊讶的是,这两个方向正是数据协方差矩阵的特征向量,而每个方向的分散程度(方差)正好是它的特征值。第8讲见过的那个特征思想,这回原样用到了数据的分散上。

拖动点云把它转一圈。抓住手柄旋转,整片云就跟着倾斜。无论转到哪个角度,包住点的金色椭圆(按一倍标准差画出的协方差)都随云一起转。在那椭圆里,最长的轴(绿)是 PC1,与它成直角的短轴(橙)是 PC2。两条轴的长度是各方向方差的平方根,也就是标准差。无论你怎么转动点云,PC1 总是精确指向铺得最开的方向。这些轴正是用这些点算出的协方差矩阵的特征向量。

这回只用滑块改变云的角度。两支箭头,PC1(绿)和 PC2(橙),全程跟随。PC1 是方差最大的方向,PC2 是与它成精确直角的第二个方向。无论你把滑块放在哪里,两条轴始终保持90度,因为对称协方差矩阵的特征向量永远彼此正交。所以主成分把数据干净地分解到互不重叠的方向上。这意味着一条轴上的信息绝不会漏到另一条轴。

亲手量一量为什么 PC1 特别。滑块转动一条方向线时,每个点都垂直投影到那条线上,留下一个落点。这些落点沿线铺得多开,就是那个方向的方差,长条显示出它的值。把线转来转去,方差在线与 PC1 对齐时升到最大,在与 PC2 对齐时落到最小。所以 PC1 也可以定义为"使方差最大的方向"。最分散的方向,正是信息保留得最多的方向。

现在到真正的用处了:降维。用开关只保留 PC1 或 PC2 其中一条轴。点被压扁到那条轴上,被丢弃的直角方向以虚线短尾(重建误差)显示出来。读数是被丢轴的方差,也就是你丢失的信息量。保留 PC1 时短尾最短,因为你扔掉的是最不分散的方向,所以丢得最少。把 2D 缩到 1D 同时把损失压到最小,这正是 PCA 压缩数据的方式。

最后,这是一个问你到底需要几个维度的工具。用滑块把云从圆形拉伸到非常细长。两条长条显示特征值的比例:上面是 lambda1/(lambda1+lambda2),下面是 lambda2/(lambda1+lambda2)。云圆时两条长条几乎五五开,所以只留一条轴就丢掉一半。越细长,PC1 的长条越接近100百分比,PC2 越趋近于零。那时只留一条轴也几乎守住全部信息。这个"被解释的方差"比例,正是衡量数据能安全缩到几维的尺子。

实际应用PCA 是在数据点云中找出最分散方向的工作。构造这些点的协方差矩阵并取它的特征向量:PC1 是方差最大的方向,PC2 是与它成直角的下一个方向,两个特征值就是沿这两个方向的方差。这和第8讲的特征思想一模一样,只是这回矩阵是数据的协方差而非变换矩阵,而且是无监督学习,在没有答案表的情况下找出结构。投影到 PC1 上能用最少的数字守住最多的信息,于是成了降维,而被解释的方差比例告诉你几个维度就够。人脸识别里的特征脸、基因数据的概括、去噪,全都立在这一个思想上。
工程数学
如果有帮助,请支持我们