自己关于PCA的一点乱想

好吧,咱就是有强迫症。有些东西不刨根问题,折腾个明白,就是不爽。

反正,看了很多解释之后,自己试着给出自己对于PCA的一丁点直观上的解释,咱发现自己终究是个笨蛋,很多抽象的文字解释,自己还是理解不能,所以自己尝试着能从更直观的理解上去解释PCA的行为。

PCA,i.e.主成分分析。它可以从一堆看似杂乱无章的信息中,合并和提取出重要的特征信息。。其核心就是特征值分解(方阵)或奇异值分解(任何矩阵)。

但是咱对它一直都搞不太清楚它的机理,然后昨天在看了一些资料之后,才稍微理解了它大概是怎么一回事,下面是一些简单的个人直观理解(可能是各种大误、各种疏漏),应该有各种认识错误,嘛,有错就改吧。

特征值分解,究竟告诉了我们一些什么,Ax=λx,A是矩阵,x是特征向量,λ是特征值。从公式上来看,矩阵A对x所施加线性变换和特征值λ的作用是一模一样的!!这个就很厉害了~ 而且对于矩阵来说,通常有不同的特征值和特征向量,也就是说如果我们能对这些信息经过一定的处理就可以得到我们想要的东西了。

换句话说,我们可以通过特征值得到些什么东西,答案是不同特征向量的能量,亦即矩阵所描述的线性变换的能量分布情况。

这里便要用到Spectral theorem,其内容如下:一个线性变换(用矩阵乘法表示)可表示为它的所有的特征向量的一个线性组合,其中的线性系数就是每一个向量对应的特征值。

特征向量究竟代表了什么,如果从线性变换的角度来看的话,那他就是线性变换的对象,矩阵就是变换的描述了,那么机器学习中的样本矩阵,本质上就是一堆线性变换的规则了。那么通过构建不同的对象(根据线性无关性),也就是每一个对象都是正交的,对应的特征值衡量矩阵所描述的不同方向上线性变换强度,可不可以从这方面去直观理解呢?I don’t know,但是咱还是想强行解释一波。

也就是说,我们需要重新构造我们的信息矩阵,让它可以表示出不同信息元素之间的关联度,从而通过Spectral theorem,便可以提取和整合出按能量大小排列的新信息咯?!

一开始,假设信息的冗余性并不可知,协方差便是提取信息关联度的工具。

这里所进行的构造就是协方差矩阵,它告诉我们信息元素之间关联度的大小,正或负或零。根据这些关联信息,就可以重新构造出新的信息来取代旧的信息,新信息描述不同信息元素之间对于整体的影响程度,咱尽量提取关联度大的,同时协方差矩阵也告诉了我们,关联度大的,信息的方差必然也大。

上面是用线性变换的角度来看的,矩阵就是线性变换的描述,然而请记住运动是相对的!矩阵的乘法既可以描述了对象所做的线性变换,也可以描述坐标系(基)的变换!

从坐标系转换角度上看,通过方差,我们也可以评估信息变化的主要方向,方差大小就代表了变化的剧烈程度,嘛,主成分,就是说对于数据影响大的成分嘛,主成分就是信息那些方差大的方向。

但问题是,怎么去找方差大的方向,那就是坐标变换,因为在某些坐标系中,数据的变化方向并不是这么好找的,而通过切换不同的基,我们就能得到信息的不同变化方向了。而PCA就是不停的切换坐标轴(特征向量),λ就是用于衡量某个坐标轴上,信息投影的变化大小!

Eureka!! 这些就是自己随便乱联系出来的东西,写得乱七八糟,嘛,反正算个自己的思考,先写到这,等想到啥新的东西,再补上。

Leave a Reply

Your email address will not be published. Required fields are marked *