机器学习--单细胞聚类(二)

本篇仍旧看一篇综述
机器学习和统计方法在单细胞测序数据聚类中的应用

Machine learning and statistical methods for clustering single-cell RNA-sequencing data
Raphael Petegrosso, Zhuliu Li, Rui Kuang

Dimesion Reduction

1.PCA投影的特征向量(主分量)与协方差矩阵的最大特征值相关联的数据点,以保留原始数据的大部分方差。例如,pcaReduce在聚类之前投射一个表达式矩阵,其中包含前K-1个主成分。SC3[26]对距离矩阵应用PCA和拉普拉斯变换来获得其共识聚类的输入。PCA在scRNA-seq数据聚类后也被广泛应用于二维或三维数据可视化。主成分分析是一种假设数据为高斯分布的线性投影方法。为了捕获数据中的非线性结构,核主成分分析可以应用于非线性核映射。
2.MDS,也称为主坐标分析(PCoA),是一种基于距离保持技术的降维算法。MDS将数据点投影到低维空间中,通过最小化所有数据对在原始空间中的距离和在投影空间中的距离的差来保持原始高维空间中数据点之间的距离。例如,CIDR在一个不同矩阵上应用MDS,然后取顶层主坐标进行分层聚类。MDS的优点是在低维投影中保持原始的成对距离,易于进行非线性特征嵌入。然而,由于必须计算成对距离以最小化目标函数,因此MDS无法扩展到大规模数据。
3.t-SNE是一种概率保持距离的方法。t-SNE根据投影后原始空间和低维空间的数据点之间的相似性构建一个概率分布,然后最小化两个分布之间的Kullback-Leibler散度相对于数据点在地图上的位置。t-SNE在单细胞数据分析中被广泛用于数据可视化。
4.CCA是一种基于数据集交叉协方差的降维方法。在给定两个或多个数据集的情况下,该方法找到每个数据集的投影,以最大限度地提高投影数据集之间的相关性。在scRNA-seq数据分析中,CCA适用于多源数据的集成。例如,Seurat 2.0在多个单单元数据集上应用CCA来识别共享组件
5.LDA最初在自然语言处理中提出。LDA假设文档是这样生成的:首先从具有Dirichlet先验的主题上的多项分布中抽样主题,然后从具有Dirichlet先验的每个主题上的词的多项分布中抽样文档中的词。然后,每个文档都可以在ktopics的低维空间中表示。cellTree使用LDA学习“主题”作为潜在特征来代表细胞,其中单词是与所选潜在特征相适应的基因表达水平。LDA的生成过程产生了一组可解释的潜在特征。
6.自组织映射(SOM)或Kohonen神经网络是一种无监督竞争学习算法,可以通过神经网络输出单元的数量和排列来进行聚类和降维。当用于可视化时,SOM在一个2D网格中组织神经网络的输出单元,以允许直接可视化数据点的集群。
7.Model-embedded dimension reduction是将模型内的降维结合起来进行数据处理。ZIFA 和ZINB-WaVE模型通过零膨胀丢失事件数据降维。

部分算法实现见https://blog.csdn.net/weixin_44743001/article/details/121615678?spm=1001.2014.3001.5501。

Clustering techniques

1.Partitioning-based clustering(基于划分的聚类方法)
识别出最好的k个中心,将数据点划分为k簇,其中中心要么是质心(均值),称为-均值,要么是中位体,称为-中位体。
k-means方法找到质心,使每个数据点与其最近的质心之间的欧氏距离的平方和最小。它具有时间复杂度低的优点。但是,它对离群值很敏感,用户必须预先指定簇的数量。k-means的时间复杂度使用Lloyd的算法isO(KND)每次迭代聚类的维数到k类的数据点。一些分析scRNA-seq数据的方法使用k-means。SAIC 结合k-means和ANOVA在聚类单细胞的迭代中。SCUBA使用kmeans指在每个时间点将细胞分为两组,并使用间隙统计来识别分岔事件。SC3的步骤之一是在细胞成对距离矩阵的投影上使用k-means,并将个体k-means聚类结果与共识函数相结合。pcaReduce和scVDMC 使用k-means初始化它们的算法。
k-medoids方法将原始样本中的数据点识别为中位体,以最小化数据点到中位体的距离之和。它最适合于以有意义的中位数作为聚类中心的离散数据。然而,类似k-means,它对离群值很敏感,用户必须预先指定簇的数量。针对从N个数据点中选择最佳点的组合问题,采用中间点周围划分算法的K -medoid的时间复杂度为O(K(N - K)2)。RaceID2,被提出用于用scRNA-seq数据鉴定罕见细胞类型,表明用k-medoids代替k-means聚类可以改善聚类结果。

2.Mixture Model(混合模型聚类)
假设数据点是从几个概率分布的混合物中采样,每个概率分布代表一个聚类。样本的聚类是通过从每个分布中学习其产生的概率来推断的。混合模型聚类常用的方法有连续数据的高斯混合模型(GMM)计数数据的分类混合模型。混合模型的优点包括概率建模的严格性和在模型中引入先验知识的灵活性。然而,求解混合模型需要先进的优化或采样技术,计算复杂度高,依赖于对数据分布假设的准确性。混合模型的学习通常采用期望最大化的方法,即交替推导混合参数和类分配似然或者采用采样和变分的方法来学习图形概率模型。混合模型的时间复杂度取决于混合物的分布情况。

3.Graph-based clustering(基于图的聚类)
数据点用图中的节点表示,边缘用数据点之间的两两相似性表示。基于聚类是基于密集社区的简单假设图中表示为稠密子图或谱成分。然而,计算需求是一个主要的限制。最常见的两种基于图的聚类算法是谱聚类派系检测。在谱聚类中,利用RBF核等相似函数建立亲和矩阵及其图拉普拉斯算子。利用方法计算了图拉普拉斯算子的顶特征向量,用于后续的聚类。谱聚类往往不能直接适用于大型数据集。基于tcc的聚类建立一个亲和矩阵与转录相容性计数使用Jensen-Shannon距离细胞之间的光谱聚类时,细胞类型的数量是先验的;否则将应用亲和传播。SIMLR[39]是一个使用秩约束和图扩散来学习细胞相似性度量的框架,通过它学习到的潜在分量可以用于光谱聚类。在图论中,一个团被定义为每一对节点相邻的子图。因此,小团体代表图中的数据点集群。因为在图中发现小集团是一个np困难的问题,所以通常使用启发式方法。SNN-Cliq[18]利用团检测与scRNA-seq数据聚类细胞。由于派系在稀疏图中通常是罕见的,SNN- cliq检测在SNN图中密集但不完全连接的准派系。
另一种基于图的单细胞聚类算法是Louvain算法。Louvain是一种比其他基于图的算法更具可扩展性的社区检测算法,它通过贪婪的方式将节点分配给社区并更新网络以获得更粗粒度的表示。SCANPY是一个集成了Louvain算法的API,提供了一个能够分析大规模scRNA-seq数据集的工具。Seurat还利用Louvain算法在细胞的SNN图上发现细胞类型。

4.Density-based clustering(基于密度的聚类)
将聚类定义为输入空间中数据点密度较高的区域。密度聚类的两个例子是DBSCAN密度峰聚类

5.Hierarchical clustering(层次聚类)
是基因表达数据分析中应用最广泛的聚类方法。分层集群在数据点之间构建一个分层结构,它自然地通过分层树中的分支定义集群。许多scRNA-seq数据聚类算法都是基于层次聚类或者将层次聚类作为分析的步骤之一。分层聚类对数据点的总体分布几乎没有任何假设。因此,它适用于多种不同形状的数据集。另一个重要的优点是所有数据点之间的层次关系表示,以解释结果。分层集群主要有两种实现:聚集型聚类分裂型聚类

6.Ensemble clustering(集成聚类)
又称共识聚类,是一种被广泛使用的聚类策略,在该策略中,对相同的数据集使用几种不同的场景(如不同的聚类算法、相似度度量和特征选择/投影)进行聚类。然后,通过共识函数将个别结果根据它们之间的一致性进行合并。集成学习可以捕获不同数据表示和聚类模型的多样性,并已被证明比单一模型更健壮,导致更好的结果。集成聚类的局限性在于依赖于其他数据转换技术和基本聚类方法。

7.Neural networks(神经网络)
Kohonen神经网络,也被称为SOMs执行竞争学习聚类;使用每个训练数据点迭代更新训练数据点与每个中心之间的相似度(距离)加权的聚类中心,并采用随机梯度下降法。SOM是相当可扩展的,因为随机梯度下降不需要在内存中保存所有的数据点。此外,中心之间的预定义结构可以引入先验知识,并提供集群之间可解释的关系。然而,SOM对参数调整很敏感,比如用于更新权重的学习率。它可以用类似于k-means的算法求解。SOM已被用于可视化和聚类scRNA-Seq数据。

部分算法实现见https://blog.csdn.net/weixin_44743001/article/details/121660315?spm=1001.2014.3001.5501

机器学习--单细胞聚类(二)_第1张图片

博主有话说:
这里只包含了降维和聚类两个内容,有关数据预处理,丢失值插补等内容可从原文获得。所以说,这么多方法学起来多费头发。想要从中找到一个创新点也很难。你能想到的别人也能想到,你想不到的别人还是能想到(叹气)。
任重而道远呐。

你可能感兴趣的:(机器学习--单细胞聚类,聚类,机器学习)