PCA作用
先从一个简单数据集开始
如果只测量一个基因,则可以将数据绘制在一个一维的数轴上
即使这是一个简单的图,它也展示了小鼠123之间的相似性要比它们与456的相似性更高
如果测量两个基因,则可以将数据绘制在一个二维XY图上
如果我们测量三个基因,我们将在图上添加另一个坐标轴,使其看起来像三维
如果我们测量四个基因,我们将无法再绘制数据
所以我们会讨论PCA如何进行四个或更多基因测量,并制作二维的PCA图,如下图
我们还将讨论PCA如何告诉我们哪个基因或变量对数据聚类最有价值?例如PCA可能告诉我们基因3承担了沿x轴分离样本,如下图
最后,我们将讨论PCA告诉我们2d图像准确性的启示,如下图
两个特征
要了解PCA的功能及其工作原理,让我们回到只有两个基因的数据集
将从绘制数据开始;
然后,我们计算基因1和基因2的平均测量数
通过平均值,我们可以计算数据的中心;
然后我们移动数据,使中心位于图形中的原点(0,0)之上。这个过程中,不会改变数据点之间的相对位置
现在数据以原点为中心了,我们可以尝试为其拟合一条线:
- 首先绘制一条穿过原点的随机线
- 然后我们旋转线,直到它尽可能地拟合数据,和仍然穿过原点的情形下
首先我们需要谈PCA如何判定拟合度的高低
- 为了量化这条线拟合数据的程度,PCA将数据投影到该线上
- 然后它可以测量数据到线的距离,并尝试找到使这些距离最小的线 / 尝试找到使投影点到原点的距离最大的线
如下图
可以发现,当线更拟合时,这些距离会变大
从数学角度解释:由于a(因此a的平方)固定不变,当b变大,c就会变小。如下图
因此,PCA可以最小化与线之间的距离 / 最大化从投影点到原点的距离
由于“ 最大化从投影点到原点的距离”更容易计算,所以PCA找到拟合线是通过“ 最大化从投影点到原点的平方和”
测量从投影点到原点的距离,计算所有分别的距离的平方;
然后我们将所有的距离求平方和(即SSD),简称为SS
旋转线,重复以上操作,直到得到一条有着最大的投影点到原点距离平方和的线。这条线就叫做主成分1(或PC1)
PC1的斜率是0.25,换句话说,我们沿着基因1轴每向外移动4个单位,沿着基因2轴上升一个单位。这意味着数据大部分沿着基因1轴分布,沿着基因2轴只扩散了一点点
见下图
同时,pca把最佳拟合线距离的平方和称为PC1的特征值;而PC1特征值的平方根成为PC1的奇异值
接下来讲PC2
由于这只是一个二维图,PC2就是一条通过原点的线,垂直于PC1,没有更多需要做的优化了
如下图
已经得到了PC1和PC2.要绘制最终的PCA图,我们只需旋转所有内容,使PC1呈水平状态
然后我们用投影点来定位PCA图中的样本位置
如下图
以上,这就是如何用SVD(奇异值分解)得到PCA的方式
一旦确定了这些,我们就能确定每个PC占的差异率
三个特征
现在让我们快速过一个稍微有点复杂的例子,3个变量的PCA
找到了最佳拟合线,如下图
然后找到PC2,第二拟合线,它穿过原点且和PC1垂直,如下图
最后我们找到PC3,穿过原点并垂直于PC1和PC2的最佳拟合线
实际上PC的数量要么是变量的个数,要么是样本数,谁小选谁
然后计算每个PC分别占的差异率
这意味着仅使用PC1和PC2的2d图形可以很好地近似话这个3d图形,因为它可以解释数据差异的94%
将3d图转换为二维的PCA图,我们就除掉所有东西,除了数据和PC1&PC2,如下图
然后将样本投影到PC1和PC2
然后旋转,使PC1呈水平,而PC2则垂直,便于视觉理解
最终效果如下
大于三个特征
如果我们对每只小鼠测量4个基因,我们无法绘制数据的四维图,但这不能阻止我们做PCA
在这里,PC1和PC2占了90%的差异,因此我们可以仅用它们绘制二维PCA图
注意,如果碎石图看起来像这样,那么仅使用前两个PC不能很精确地代表我们的数据
但是,即使像这样的不清晰的PCA图也可以用来识别数据团:这些样本彼此之间的相似性仍然高于其他样本