通过数据降维处理可减少冗余信息所造成的误差,还可以通过降维算法来寻找数据内部的本质结构特征,便于后续计算以及实现数据的可视化。小编在这里将会和大家介绍几种常用的数据降维方法以及它们的原理。
一降维的目的
①简化数据,将多维、复杂的数据简化为二维;
②去除数据中的冗余部分;
③减少后续数据分析的时间;
④有助于聚类;
⑤实现数据可视化。
二降维方法分类
下图是一些降维算法的简介,主要分为三类:基于矩阵分解(Matrix Factorization)降维算法、基于作图的降维算法、基于神经网络的机器学习降维算法。
三单细胞数据分析中常用的降维方法
1.主成分分析PCA
PCA (Principal Component Analysis)是最常用的线性降维方法,数据从原来的坐标系转换到新的坐标系,新坐标系的选择是由数据本身决定的。第一个新坐标轴选择的是原始数据中方差最大的方向(即数据差异性最大的方向),第二个新坐标轴选择与第一个新坐标轴正交且具有最大方差的方向,以此类推,共建立与原始数据特征数目相等的新坐标轴。
大部分方差都包含在最前面的几个新坐标轴中,因此我们可以忽略余下的坐标轴,从而实现降维。(方差大代表不同数据之间的差异大,即包含的变异信息量大)
以上图的二维数据为例,新坐标轴以PC1为第一坐标轴,PC2为第二坐标轴,且PC1解释了大于98%的方差信息,PC2对样本来说无意义,可以舍弃,这样二维数据就降维到一维。
2.t-SNE
t-SNE全称为t-Stochastic Neighborhood Embedding,是一种非线性降维方法,它是基于在邻域图上随机游走的概率分布,可以在数据中找到其结构关系。t-SNE在高维空间中采用高斯核心函数定义了数据的局部和全局结构之间的软边界,可以同时保留数据的局部和全局结构。
局部方法寻求将流型上的附近点映射到低维表示中的附近点。另一方面,全局方法试图保留所有尺度的几何形状,即将附近的点映射到附近的点,将远处的点映射到远处的点。
根据t-分布,计算高维空间上点i与其附近的点j之间的距离Pij,然后按照该距离映射到低维空间上,而远处的点则不需要考虑,依次将所有点都映射到低维空间中。
如上图所示t-SNE首先会将二维空间上分布的这些点随机摆放在直线上,然后t-SNE会逐渐将这些点移动,直到它们聚在一起(保留二维空间上的分布特征)。
t-SNE降维后各个group之间的距离没有意义,且降维过程中迭代次数会影响最终降维效果。
3.UMAP
UMAP (Uniform Manifold Approximation and Projection)使用k-近邻的概念,并使用随机梯度下降来优化结果。它首先计算高维空间中的点之间的距离,将它们投影到低维空间,并计算该低维空间中的点之间的距离。然后使用随机梯度下降来最小化距离之间的差异。
它可以处理大型数据集和高维数据,并且结合了可视化的强大功能和减少数据维度的能力,UMAP将高维空间上的附近点映射到低维表示中的附近点,并对远点进行相同的映射。
如上图所示,UMAP将二维空间上的点按照点与点之间距离排列在一维空间上,临近点之间的距离需要计算,相距较远的点之间的距离也要计算并映射到低维空间上。
与其他几种graph-based降维方法相比,UMAP处理数据的速度快,比较适合处理比较大的数据集。
四总结
降维是数据处理工作流程必不可少的一个步骤,不但便于计算和实现数据可视化,其更深层次的意义在于有效信息的提取及无用信息的摈弃。上图是几种常见的单细胞数据处理工作流程,几种工作流程中都用到了PCA以及t-SNE降维方法,大部分也都用到了UMAP降维方法。