过程
1、1对原始数据进行标准化
xi=Xi−Xi¯Si
协方差:
Cov(X,Y)=∑ni=1(Xi−X¯)(Yi−Y¯)n−1=E[(Xi−E(x))(Yi−E(Y))]相关系数:
Corr(X,Y)=Cov(X,Y)var(X)‾‾‾‾‾‾√var(Y)‾‾‾‾‾‾√=Cov(X,Y)σxσy
1.2计算协方差矩阵
Cn×n=(ci,j,ci,j=cov(Dimi,Dimj))
若数据集有{x,y,z}三个维度,则协方差矩阵为
C=⎛⎝⎜⎜cov(x,x)cov(y,x)cov(z,x)cov(x,y)cov(y,y)cov(z,y)cov(x,z)cov(y,z)cov(z,z)⎞⎠⎟⎟
1.3计算特征值和特征向量
1.4计算贡献率和累计贡献率
贡献率
λi∑pk=1λk(i=1,2,...,p)
累计贡献率
∑ik=1λi∑pk=1λk(i=1,2,...,p)
2、原理
2.1 最大方差理论
在信号处理中认为信号具有较大的方差,噪声有较小的方差。如下图,样本在横轴上的投影方差较大,在纵轴上的投影方差较小,那么认为纵轴上的投影是由噪声引起的。
下面将样本投影到某一维上,这里用一条过原点的直线表示(前处理的过程实质是将原点移到样本点的中心点)。
假设我们选择两条不同的直线做投影,那么左右两条中哪个好呢?根据我们之前的方差最大化理论,左边的好,因为投影后的样本点之间方差最大
2.2公式推导
投影点的方差为:
1m∑i=1m(x(i)Tu)2=1m∑i=1muTx(i)x(i)Tu=uT(1m∑i=1mx(i)x(i)T)u(2.1)
u为单位向量|u|=1,所以投影点到远点距离:
|xi|⋅cosθ=|xi|⋅x(i)Tu|xi|⋅|u|=x(i)Tu
令λ=1m∑mi=1(x(i)Tu)2,λ为点到此向量投影的方差。
令Σ=1m∑mi=1x(i)x(i)T,因为x(i)的均值等于0,所以Σ为数据的协方差矩阵。
所以2.1能改写成如下形式:
λ=uTΣu(2.2)
由于u是单位向量,即uTu=1,上式两边都左乘u,uλ=λu=uuTΣu=Σu,最终得到:
λu=Σu(2.3)
λ为Σ的特征值,u为特征向量。最近的投影直线是特征值λ最大时对应的特征向量。
yi=⎡⎣⎢⎢⎢⎢⎢uT1x(i)uT2x(i)⋮uTkx(i)⎤⎦⎥⎥⎥⎥⎥∈ℝ(2.4)