PCA:主成分分析

1. 介绍

又称主分量分析技术,旨在利用降维的思想,把多指标转化为少数几个综合指标。比如对于WINE数据集总共有178个样本,每个样本有13个属性,有1个分类标签。那么我们可以猜测是否这13个属性都能对我们的分类提供帮助,是否存在某些属性是在划水?如果能把这些属性降维能够帮助我们降低数据量。

2. 矩阵的内积

对于向量内积Y = P X Y=PX Y =P X代表X X X在经过P P P的变换下,变换到了新的空间中去,值为Y Y Y。

3. 协方差和协方差矩阵

协方差公式:
C o n v ( a , b ) = 1 m − 1 ∑ i = 1 m ( a i − μ a ) ( b i − μ b ) Conv(a,b)=\frac{1}{m-1}\sum_{i=1}^{m}(a_i-μ_a)(b_i-μ_b)C o n v (a ,b )=m −1 1 ​i =1 ∑m ​(a i ​−μa ​)(b i ​−μb ​)
对于a和b在计算时,会减去各自的均值,在实际应用中我们会j讲数据a和b进行标准化,即标准化到均值=0,方差=1,因为在这里就可以看出均值=0的好处,所以如果你使用了数据标准化,上式就可以写成如下:
C o n v ( a , b ) = 1 m ∑ i = 1 m a i b i Conv(a,b)=\frac{1}{m}\sum_{i=1}^{m}a_ib_i C o n v (a ,b )=m 1 ​i =1 ∑m ​a i ​b i ​

(当协方差为0时,表示两个变量完全独立。为了让协方差为0,问选择第二个基时只能与第一个基正交的方向上进行,因此最终选择的两个方向一定是正交的。)

对于a和b如果能够投影到新的空间时是投影到不同的坐标轴上,那么他们就是正交的,协方差一定为0。

就比如当你的向量X X X投影到P = ( 1 0 0 1 ) P=\left(\begin{array}{l}1 & 0 \0 & 1\end{array}\right)P =(1 0 ​0 1 ​)的空间上(或者对X X X做P变换),实际就是将X在笛卡尔直角坐标系中做分解,分别在X轴上和Y轴上映射。那么在X轴上和Y轴上的量协方差一定为0,所以在选择基(也就是P)时,各个基一定正交,则变换后的X各个分量也就一定正将,其协方差为0

哪么我们为什么要讨论协方差?
我们指导协方差是度量两个量的相关性,正如我们的WINE数据集,每个样本有13个属性,则是否这些属性中某些属性存在相关性?假设属性a和属性b存在相关性,a和b的变化一致,那我只需要取a或者b其中一个来帮助我描述数据即可啊。那么数据集中任意两个属性的协方差都为0,表示任意两个属性都是不相关的,是有各自特征谁也代替不了的。所以我们的目标就是把属性之间能够相互代替的找出来并使用其中一个来代表即可。

现在假设数据集X X X有a和b两个属性,则:
X = ( a 1 a 2 . . . a m b 1 b 2 . . . b m ) X=\left(\begin{array}{l}a_1 & a_2 & … & a_m \b_1 & b_2 & … & b_m\end{array}\right)X =(a 1 ​b 1 ​​a 2 ​b 2 ​​……​a m ​b m ​​),我们按如下凑出C o n v Conv C o n v的表达式,令C为X的协方差矩阵:
1 m X X T = ( 1 m ∑ i = 1 m a i 2 1 m ∑ i = 1 m a i b i 1 m ∑ i = 1 m a i b i 1 m ∑ i = 1 m b i 2 ) = ( C o n v ( a , a ) C o n v ( a , b ) C o n v ( b , a ) C o n v ( b , b ) ) \frac{1}{m}XX^T=\left(\begin{array}{l}\frac{1}{m}\sum_{i=1}^{m}a^2_i & \frac{1}{m}\sum_{i=1}^{m}a_ib_i\\frac{1}{m}\sum_{i=1}^{m}a_ib_i & \frac{1}{m}\sum_{i=1}^{m}b^2_i\end{array}\right)=\left(\begin{array}{l}Conv(a,a) & Conv(a,b) \Conv(b,a) & Conv(b,b)\end{array}\right)m 1 ​X X T =(m 1 ​∑i =1 m ​a i 2 ​m 1 ​∑i =1 m ​a i ​b i ​​m 1 ​∑i =1 m ​a i ​b i ​m 1 ​∑i =1 m ​b i 2 ​​)=(C o n v (a ,a )C o n v (b ,a )​C o n v (a ,b )C o n v (b ,b )​)
注意:C o n v ( a , a ) Conv(a,a)C o n v (a ,a )即为协方差的特殊形式,即a的方差
此时我们可以看出,因为我们希望X的不同属性之间的协方差(非对角线)为0(代表属性之间不相关),相同属性之间的协方差(对角线)越大越好。于是我们希望对角线的值越大,非对角线的值为0,那么应该如何去变换?

4. 矩阵对角化

假设我们已经找到了变换矩阵P P P,使得Y = P X Y=PX Y =P X,因为我们希望对原始数据X X X变换后的Y Y Y,是理想的,即不同属性之间独立。那么意味着Y Y Y的协方差矩阵D应当是对角线大,但是非对角线为0,这就是对角矩。那么我们如何去变换去找到这个变换矩阵P P P?
我们已知:
Y = P X C = 1 m X X T Y=PX\C=\frac{1}{m}XX^T Y =P X C =m 1 ​X X T
则:
D = 1 m Y Y T = 1 m P X ( P X ) T = 1 m P X X T P T = P 1 m X X T P T = P C P T D=\frac{1}{m}YY^T\=\frac{1}{m}PX(PX)^T\=\frac{1}{m}PXX^TP^T\=P\frac{1}{m}XX^TP^T\=PCP^T D =m 1 ​Y Y T =m 1 ​P X (P X )T =m 1 ​P X X T P T =P m 1 ​X X T P T =P C P T

至此,我们明了了,直接找P P P不好找,但是在这里P P P是可以将X的协方差矩阵(实对称矩阵)变换为对角矩阵。

C为实对称矩阵,它有以下好的性质:

  • 实对称矩阵的不同特征值对应的特征向量必然正交
  • 设特征向量λ重数为 r,则必然存在 r 个线性无关的特征向量对应于λ ,因此可以将这 r 个特征向量单位正交化。

由上面两条可知,一个 n 行 n 列的实对称矩阵一定可以找到 n 个单位正交特征向量,设这 n 个特征向量为( e 1 , e 2 , . . . , e n ) ({e_1,e_2,…,e_n})(e 1 ​,e 2 ​,…,e n ​) ,我们将其按列组成矩阵E = ( e 1 , e 2 , . . . , e n ) E=({e_1,e_2,…,e_n})E =(e 1 ​,e 2 ​,…,e n ​)。则对实对称矩阵C有如下结论:
E T C E = Λ = ( λ 1 λ 2 . . . λ n ) = D E^TCE=\varLambda=\left(\begin{array}{l}λ_1 & \ & λ_2 \ & & … \ &&&λ_n \end{array}\right)=D E T C E =Λ=⎝⎜⎜⎛​λ1 ​​λ2 ​​…​λn ​​⎠⎟⎟⎞​=D
λ为特征值,从大到小排序。
而:
P C P T = D PCP^T=D P C P T =D
故得到P P P:
P = E T P=E^T P =E T

至此P P P已经得解。

5. 如何降维(使用 P P P )?

我们得到了P = E T P=E^T P =E T,如果我们想要将X X X经P P P转换到1维空间,那么我们将P中的第一个λ保留即可,转换到几维,就保留前几个λ。然后再计算P X PX P X即可得到最终的Y Y Y。

同时我们计算每个λ占总λ和的比例,可以看出每个λ对数据描述的贡献度。

Original: https://blog.csdn.net/qq_40243750/article/details/121927534
Author: 我是一个对称矩阵
Title: PCA:主成分分析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/700345/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球