补充知识:
- 方差var(X)=E((X−E(X)2)
- 协方差cov(X,Y)=E((X−E(X))(Y−E(Y)))
- 相关系数ρ(X,Y)=var(X)var(Y)voc(X,Y)
1.思路:主成分分析就是一种降维,要把坐标(x1,x2)降维到坐标(y1,y2)中的y1;具体的思路就是让下图中的OA′2+OB′2+OC′2(方差)最大(图中把原本的三个向量压缩到y = x这一直线上,实际上就是找到一条直线,使上述方差最大)

2.总体主成分:
随机变量:x=(x1,⋯,xm)T
均值向量:μ=(μ1,⋯,μm)T
协方差矩阵:Σ=cov(x,x)=E((x−μ)(x−μ)T)
将x映射到y=(y1,y2,⋯,ym)T
αi=(α1i,⋯,αmi)Tyi=αix=α1ix1+⋯+αmixm
可以得到y的相关数据
⎩⎪⎨⎪⎧E(yi)=αiTμivar(yi)=αiTΣαicov(yi,yj)=αiTΣαj
定义主成分:(上述)线性变换满足如下条件
(1)αi是单位向量αiTαj=1,i=1,2,⋯,m
(2)yi与yj不相关,即cov(yi,yj)=0,(i=j)
(3)y1是x所有线性变换中,方差最大的,即var(y1)最大;y2与y1不相关,且方差最大……
3.计算主成分:
Σ是x协方差矩阵
Σ特征值为λ1≥λ2≥⋯≥λm>0
对应的单位特征向量为α1,⋯,αm
则第k主成分是yk=αkTx
推论:y=(y1,⋯,ym)T的分量依次是x的1到m主成分的充要条件为
(1)y=ATx,A=(α1,⋯,αm),这里αk为λk对应的单位特征向量
(2)cov(y)=diag(λ1,⋯,λm),λ1≥⋯,λm
4.总体主成分y的性质
(1)cov(y)=Λ=diag(λ1,⋯,λm)
(2)∑i=1mλi=∑i=1mσii,其中σii为x的方差,也就是Σ矩阵的对角线元素
(3)相关系数ρ(yk,xi)称为因子负荷量
ρ(yk,xi)=σiiλkαik
(4)∑i=1mσiiρ2(yk,xi)=λk
(5)∑k=1mρ2(yk,xi)=1
(6)贡献率ηk=∑i=1mλiλk
前k个主成分y1,⋯,yk对的贡献率
∑mηi=∑i=1mλi∑i=1kλi
5.主成分个数:如果要取前q个主成分,则用y=AqTx,其中Aq是_计算主成分的推论_中的正交矩阵A的前q列
6.规范化变量
思路:为了消除量纲不同造成的方差大小的不一样,令xi∗=var(xi)xi−E(xi),此时协方差矩阵Σ∗就是相关矩阵R,设e1∗,⋯,em∗是矩阵R的单位特征向量
(1)cov(y∗)=Λ∗=diag(λ1∗,⋯,λm∗)
(2)∑k=1mλk=m
(3)ρ(yk∗,xi∗)=λ∗eik∗,其中eik∗在单位特征向量中ek∗=(e1k∗,⋯,emk∗)
(4)∑i=1mρ2(yk∗,xi∗)=∑i=1mλk∗eik∗2=λk∗
(5)∑k=1mρ2(yk∗,xi∗)=1
7.样本主成分分析
X=(x1,⋯,xn)用n个样本,每个样本m维
样本协方差绝阵S=[sij]m×n,sij=n−11∑k=1n(xik−xˉi)(xjk−xˉj)
其中均值xˉi=n1∑k=1nxik,xˉj=n1∑k=1nxjk
相关矩阵$ R = [r_{ij}]{m \times m}, r{ij} = \frac{s_{ij}}{\sqrt{s_{ii}s_{jj}}}$
同理,主成分的计算如下
y=(y1,⋯,ym)T=ATxyi=αiTxA=(α1,⋯,αm)
得到方差:var(yi)=n−11∑j=1n(αiTxj−αiTxˉ)=αiTSαi
协方差:cov(yi,yk)=αiTSαk
规范化样本:xij∗=siixij−xˉi
在规范化的样本下:协方差矩阵S = 相关矩阵R = n−11XXT
8.相关矩阵特征值分解算法(规定贡献率g)
(1)规范化数据(为方便表示,规范化的数据省略星号)
(2)相关矩阵R=[rij]m×m=n−11XXT
(3)解特征方程∣R−λI∣=0,求出特征向量λ1≥⋯≥λm
保留贡献率之和达到g的k个主成分
求出对应单位特征向量αi=(α1i,⋯,αmi)T,i=1,2,⋯,k
(4)第i个样本主成分yi=αix
注:普遍的理解是,我们先确定贡献率然后再确定到底保留多少个主成分,但是再sklearn实际应用的过程中是确定保留多少个主成分,然后才能用explained_variance_ratio_看这些主成分的贡献率是多少
而且在实际使用的过程中,哪怕是高维的向量,一般前几个主成分就可以达到99%的贡献率,贡献率并不能完全反映对信息的保留程度
9.奇异值主成分分析算法
思路:协方差S=n−11XXT=X′TX′,其中X′=n−11XT
容易看到X′=UΣVT中Vt的列向量记为单位特征向量
输入:m×n样本矩阵X,其每一行元素的均值为0(以规范化),主成分个数k
输出:k×n样本主成分矩阵Y
(1)工造新的n×m矩阵X′=n−11XT
(2)对X’进行截断奇异值分解,得到X′=UkΣkVkT
(3)样本主成分矩阵Y=VTX