我的任务是使用给定的 2 维 5000 数据进行 PCA 和白化变换。
我对 PCA 的理解是用协方差矩阵的特征向量分析数据的主轴并将主轴旋转到 x 轴!
所以这就是我所做的。
[BtEvector,BtEvalue]=eig(MYCov);% Eigen value and vector using built-in function
我首先计算了特征值和向量。结果是
BtEvalue=[4.027487815706757,0;0,8.903923357227459]
和
BtEvector=[0.033937679569230,-0.999423951036524;-0.999423951036524,-0.033937679569230]
所以我发现主轴的特征值为 8.903923357227459,[-0.999423951036524,-0.033937679569230]
其特征向量是第二个对应项。
之后,因为它是二维数据,我让 cos(theta) 为 -0.9994.. 和sin(theta)=-0.033937
. 因为我认为数据的主轴(特征向量 [-0.999423951036524,-0.033937679569230]
)必须是 x 轴,所以我做了旋转轴R= [cos(-Theta)-sin(-theta);sin(-theta) cos(-theta)]
。让原始数据集A=>2*5000
,我做A*R
了旋转数据。
此外,对于美白情况,使用 Cholesky 美白,我将美白变换矩阵设为inv(Covariance Matrix)
.
我的算法有问题吗?如果有错误或误解,有人可以作证吗?非常感谢您。