从物理意义上了解PCA

从物理意义上了解PCA

什么是线性变换

什么是线性变换?
一个变换同时具有以下2条性质,则它是一个线性变换:
1.变换前后,所有直线仍是直线。
2.变换前后,原点保持不变。
具体参考:https://www.cnblogs.com/joefish/p/8150006.html

如何描述一个线性变换
通常,要描述一个线性变换,我们可以通过一个矩阵来表示。
在表示一个向量时,我们最常使用的两个基分别是[1, 0]T 和[0, 1]T,在这两个基下,线性变换可以表示成以下这种形式。
从物理意义上了解PCA_第1张图片可以看到,此时向量[x, y]T的线性变换,被表达成了它左乘一个矩阵A的形式。

但在二维平面中,基是可以任意选择的,如果不选用[1, 0]T 和[0, 1]T作为基,线性变换应该怎样表示呢?
同样,在其它基下,向量做线性变换的过程同样可以表示成它左乘一个矩阵的形式。

如:[α1, α2]A[x, y]T

其中,α1和α2分别表示两个基(例如[1, 0]T 和[0, 1]T),A为线性变换的描述矩阵,类似第一张图片中的[[a, b], [c, d]],[x, y]T就是做线性变换的向量了。
不难发现,其实在基为[1, 0]T 和[0, 1]T,是符合以上式子的。因为此时两个基组成的矩阵[α1, α2]即为一个单位矩阵,而由EA = A的性质,就通常把最左边的[α1, α2]给省略了。

什么是相似矩阵

了解了什么是线性变换以及它如何描述,就可以看看什么是相似矩阵了。

所谓相似矩阵,就是同一个线性变换在不同基下的描述矩阵。

看下面这张图:
从物理意义上了解PCA_第2张图片
图片转自:https://zhidao.baidu.com/question/1243223137254287179.html
其中,α和β代表基,x和y代表同一向量在不同基下的表示。
由2式,A和B即为同一线性变换在不同基下的描述矩阵
P为基α到基β的过渡矩阵,在5式满足时,2式即满足,A和B即为相似矩阵。

从物理意义上了解PCA

PCA的作用就是降维。即:假设有N组数据,每组数据有M个特征(此处的特征就是事物的一些性质,例如预测房价时,这些特征可以是房屋的面积、卧室的面积、房屋的楼层、是否是学区房等等);PCA的作用就是从这M个特征中,提取出T个特征,使得T

下面给出PCA的运算步骤:
从物理意义上了解PCA_第3张图片转自:https://www.bilibili.com/video/av29441413/?p=3&t=453

下面从物理意义上,解释一下这个运算过程:

  1. 这个例子中有两行数据,每一行代表一个特征,此处有特定物理意义,例如第一行可以表示房屋面积、第二行可以表示楼层。(这里对数据做了预处理,即对每行的数据,都减去了这一行的平均值,使得每行的和为0,这么做是为了使得协方差矩阵中,从左上到右下那条对角线上的值可以代表每行数据的方差,不懂的可以看上面链接里的视频)。
  2. 计算协方差矩阵。C=1/N * S * ST (N代表数据的组数,S代表原始数据构成的矩阵)。这个矩阵是以从左上到右下这条对角线为对称轴的一个对称矩阵。矩阵中的值用a表示,其中,aii表示第i种特征的方差,方差越大代表这N组数据在这个特征上散布得越开,越利于我们对这N组数据进行分类aij(i不等于j)代表第i种特征和第j种特征的相关程度,正值代表正相关(正值越大正相关程度越高),0代表不相关,负值代表负相关(负值越小代表负相关程度越高)(这里也可以看出为什么是对称阵)。而我们的目标,就是找出一组基,使得在这组基下,协方差矩阵中从左上至右下这组数值越大越好,而其余数字全为0。这就代表在这组基下,数据可以分散得更开,而各个基之间是相互独立(垂直)的,这就是前文说到的PCA的作用。
  3. 怎么求这组基呢?神奇的是,这组基即为将协方差矩阵相似对角化的过程中,求得的可逆变换矩阵P中自左向右排列的各个向量。即,**假设可逆变换矩阵 P=(β1, β2),那么这组基即为β1和β2。**在我的理解上,这个相似对角化后的矩阵,从左上到右下这条对角线上的各个值,代表着原始数据在这组“新”的基下分散的程度。而其它数值全为0,代表这组基是相互独立的,这就是PCA的需求。
  4. 如何降维?刚刚说到,对角线上的值代表原始数据在这个基上的分散程度,数值越大,代表分散得越开,也就越利于分类。例如,假设对角化后的协方差矩阵中,aii的数值最大,代表这个基对这组数据最重要,表达的信息最多,最利于分类;显然,次大就代表次重要。我们只要从这个对角化后的协方差矩阵中,挑选出前T(Tii对应βi),这T组β就是我们最终使用的基
  5. “降维打击”。我们知道,两个向量a和b的内积=|a||b|cosx,x表示向量a和b之间的夹角。如果a为单位向量,那么这两个向量的内积也就表示b在a上的投影。在这T组β中,每个β都是一个单位向量。只要将每个β与每N组原始数据计算内积,就得到了这N组数据在这个基上的投影,也就是坐标。一共有T组β,所以一共进行T*N组内积(这个过程用矩阵乘法表示就是上面图片中的“降维”部分),仍得到N组数据,但每组数据的特征数量已经从M减少到T,实现了“降维”

以上过程举个直观点的例子:
假设坐标系中分布着5个点,[1,1],[2,2],[2,4],[4,4],[5,5]。
从物理意义上了解PCA_第4张图片
用矩阵形式表示为:
1 2 2 4 5 1 2 4 4 5 \begin{matrix} 1 & 2 & 2 & 4 & 5\\ 1 & 2 & 4 & 4 & 5 \end{matrix} 1122244455
此时的基为[1, 0]T 和[0, 1]T。不难发现,此时的基“表现并不好”。因为两个特征之间,明显存在正相关的关系,计算出的协方差肯定为正值。不妨计算一下,首先预处理:
− 1.8 − 0.8 − 0.8 1.2 2.2 − 2.2 − 1.2 0.8 0.8 1.8 \begin{matrix} -1.8 & -0.8 & -0.8 & 1.2 & 2.2\\ -2.2 & -1.2 & 0.8 & 0.8 & 1.8 \end{matrix} 1.82.20.81.20.80.81.20.82.21.8
然后计算一下协方差矩阵:
2.16 1.84 1.84 2.16 \begin{matrix} 2.16 & 1.84\\ 1.84 & 2.16 \end{matrix} 2.161.841.842.16
可以看到,a12=a21>0,说明此数据的两个特征在当前基下并不独立(正相关)。
我们的目标是找到一组“新”的基,在这组新的基下,这些数据尽可能散布得开,且相互独立。
不难发现,在这组数据中,新的基应该与图中两条虚线平行,即 [1/√2, 1/√2]T以及 [-1/√2, 1/√2]T
下面用PCA算法验证一下:
求可逆变换矩阵:
从物理意义上了解PCA_第5张图片可以看到,β1和β2即为求出的基,分别为[-1/√2, 1/√2]T以及 [1/√2, 1/√2]T,验证了我们的猜想。而数据在β2方向上的离散程度更大,在分类时就更需要参考原始数据在这个基上的投影。所谓“降维打击”,就是指将原始数据在以β1和β2为基的二维平面中,“强迫”它投影到一维的直线上,这个直线的选取,就参照数据在各个基方向上的离散程度,离散程度越大,代表这个基越容易被选取。
此处显然选取β2作为原始数据被降维到的那个基,由于此时β2已经是单位向量,只要将它与原始数据相乘,得出的结果即为原始数据在这个基上的投影,以下是计算结果:
1.4142 2.8284 4.2426 5.6569 7.0711 \begin{matrix} 1.4142 & 2.8284 & 4.2426 & 5.6569 & 7.0711 \end{matrix} 1.41422.82844.24265.65697.0711
以上结果即为用PCA对原始数据降维后的结果。

你可能感兴趣的:(从物理意义上了解PCA)