一、PCA入门
最近在看pca,pca可以用于将维,下面通过举一个具体的例子还说明pca的使用,为了便于可视化,我们假设数据是2维的。数据来源:下载
上面的是一个2维的数据x=(x1,x2),一个45对。下面绘制出这个45对数据在的图如下:
图1
第一步:对数据进行预处理,使得特征x1和x2的相应的均值为0,即数据中心化,然后通过公式:
,
计算协方差。
第二步:求解协方差矩阵的特征值和特征向量,公式为A*x=lambda*x,这里面可以通过svd求解得到特征向量,通过计算得到特征向量为U=[u1,u2],其中
u1=[-0.7071,-0.7071]',u2=[-0.7071,0.7071]',对应的特征值为:0.1607和0.0153。这里面u1表示主要特征向量,u2表示第二个特征向量。由于协方差矩阵是一个实对称矩阵,所以它的不同特征值对应的特征向量是正交的,因此在这里u1和u2是正交的,即u1和u2的点积为0,同时u1和u2的模都为1,即|u1|=|u2|=1。下面将向量u1和u2也绘制到图上。图如下:
图2
第三步:对于每个样本x,,表示x在向量u1上的投影长度,这是因为u1x=|u1||x|cos(theta),故x在u1上的投影为:u1x/|u1|=|x|cos(theta),因为|u1|=1,因此u1x=u1'x=|x|cos(theta)。同理x在u2上的投影长度为:u2'x,由于u1和u2是是正交的,可以以(u1,u2)为基底表示x,这样有x=(u1'x)u1 + (u2'x)u2成立,很显然,在以u1,u2为基底的坐标系中x可以使用[u1'x,u2'x]'来表示,下面是对于45对数据的在以u1,u2为基底的坐标系上的投影,图如下:
图3
在上图中,坐标系上的每个点中,对于某一个x而言,图中的横坐标是是u1'x的值,图中的纵坐标是u2'x的值,我们可以使用如下公式表示:
,
这样对于所有的训练样本有:,所有可以得到上面的图。
由于是一个正交矩阵,即,所以可以从到,进行转换,公式为:。