谈一谈我理解的PCA

程序小白一只,第一次写博客。。。文章内容来自于看了吴恩达老师cs229的视频课程,课程里门有关于PCA更细致的讲解,我只是简单的梳理一下。

PCA就是俗称的主成分分析,是机器学习中的无监督学习。它可以应用于数据可视化,压缩数据,减小过拟合风险等,这些都源于PCA的一个主要特性——维度约减,说白了,就是降维。

怎么做到降维呢。我们看下面这幅图:数据点本来为(x,y)二维的点,我们看到这些点的分布比较吻合z这条轴,于是将数据点投影到z轴上,即降维。注意:我们现在看第二幅图,如果将点沿着U轴投影呢,我们会发现这些点的投影点会特别的密集,而我们降维则需要避免这种情况,即尽可能使点的投影更为稀疏。

谈一谈我理解的PCA

 

谈一谈我理解的PCA

 

PCA计算过程:

1.数据预处理:0均值化(减去均值),统一数据量级(除以方差)。

2.求出协方差矩阵,找出协方差矩阵的特征向量和特征值(使用奇异值分解

3.按特征值大小对特征向量进行排序,取前K个特征向量形成矩阵U

4.Y=U*X,降到K维后的数据

统一数据量级:X(x1,x2,x3,...,xn),假设一个数据点有n个特征,比如描述一个成人,x1为身高(cm为单位),x2为体重(t吨为单位),那么大部分x1的值都是150+,x2则所有数据都小于1,那么我们就认为x1,x2的数据量级相差很大,故我们将每个xi除以自己的方差。(假设数据有j个人,则每个人都有自己的xi)。