@fsfzp888
2018-05-21T22:24:56.000000Z
字数 1934
阅读 1181
线性代数
机器学习基础
主成分分析(PCA)来源于SVD以及协方差矩阵,在前边的一篇总结中,已经简要的总结了协方差矩阵。可以说,在样本矩阵为的矩阵,且每一个样本为一个行向量的情况下,协方差矩阵为:
- (1) 将样本矩阵中心化得到,即每一个纬度的样本值都减去了对应的均值
- (2) 求解矩阵的奇异值分解,得到基变换矩阵
- (3) 通过得到在新的坐标基下的样本数据
- (4) 通过获得协方差矩阵得到各个方差方向的主成分
- (5) 对按照对角线上的数据大小从大到小排列得到,于此同时,也调整的列向量的顺序到
- (6) 设置一个阈值t,任何对角线上的数值小于t的都设置为0,这些值所对应的中的一些列向量纬度成分也可以被舍弃,从而达到了数据降纬的目的。此时假若还剩下个主成分,那么,数据相当于减少了原来的,得到的裁减后的样本数据可以用作进一步的数据分析用途。
上边的步骤,阐述了PCA的主要流程,可以看到,PCA的主要目的是为了给数据降纬,以便于减少需要分析的数据的数目,过滤掉不必要的纬度成分,节省计算开销。当然了,也可以用作数据压缩的用途,只不过不见得会多么理想。
关于PCA,这里还有一个问题:
为什么说协方差矩阵等于对角矩阵之后,各个基就是方差最大方向了呢?
这里我也没办法给出多么严谨的解释,只是像直观的说明一下:
各个两两不同纬度的数据成分协方差为零,这说明它们都是不相关的。当然了,协方差等于零不能推出独立,只是说它们是不相关的。不相关对应到正交,但是并不是说它们就没有共同的向量纬度成分在里边,可能在某一个方向它们都是有数值的。这个时候的列向量之间其实是两两正交,从投影的角度来说,对一个列向量与其自身求取方差,其实就是求数据点在某一个坐标轴上的投影的各个数值的平方和再取平均(此时认为已经中心化),在做了基变换之后,向量变成了,其实就是各个数据点在新的坐标系下,第个轴的投影取值,而它和数据点在任何其它坐标轴的投影的取值是正交的,这说明,的是完全落在坐标轴上边的,也就是它自己就是坐标轴,这个时候,数据点第个纬度成分的投影就是自身,所以没有因为投影导致大小的损失,所以自然此时就是最大的方差方向了。
这个说明我想肯定是不够严谨的,不过也就是意思一下罢了。毕竟我只不过就是个屌丝学渣,根本不想看太多复杂的公式推导。
@fsfzp888
2018 年 05月 21日