十个技巧,让你成为“降维”专家

大数据 数据分析
在分析高维数据时,降维(Dimensionality reduction,DR)方法是我们不可或缺的好帮手。本文为从业者提供了一套有用的指南,指导其如何正确进行降维,解释其输出并传达结果。

[[270642]]

大数据文摘出品

来源:PLOS

编译:啤酒泡泡、刘兆娜、李雷、sirin、邢畅、武帅、钱天培

在分析高维数据时,降维(Dimensionality reduction,DR)方法是我们不可或缺的好帮手。

作为数据去噪简化的一种方法,它对处理大多数现代生物数据很有帮助。在这些数据集中,经常存在着为单个样本同时收集数百甚至数百万个测量值的情况。

由于“维度灾难”(curse of dimensionality)的存在,很多统计方法难以应用到高维数据上。虽然收集到的数据点很多,但是它们会散布在一个庞大的、几乎不可能进行彻底探索的高维空间中。

通过降低数据的维度,你可以把这个复杂棘手的问题变得简单轻松。除去噪音但保存了所关注信息的低维度数据,对理解其隐含的结构和模式很有帮助。原始的高维度数据通常包含了许多无关或冗余变量的观测值。降维可以被看作是一种潜在特征提取的方法。它也经常用于数据压缩、数据探索以及数据可视化。

虽然在标准的数据分析流程中已经开发并实现了许多降维方法,但它们很容易被误用,并且其结果在实践中也常被误解。

本文为从业者提供了一套有用的指南,指导其如何正确进行降维,解释其输出并传达结果。

技巧1:选择一个合适的方法

当你想从现有的降维方法中选择一种进行分析时,可用的降维方法的数量似乎令人生畏。事实上,你不必拘泥于一种方法;但是,你应该意识到哪些方法适合你当前的工作。

降维方法的选择取决于输入数据的性质。比如说,对于连续数据、分类数据、计数数据、距离数据,它们会需要用到不同的降维方法。你也应该用你的直觉和相关的领域知识来考虑收集到的数据。通常情况下,观测可以充分捕获临近(或类似)数据点之间的小规模关系,但并不能捕获远距离观测之间的长期相互作用。对数据的性质和分辨率的考虑是十分重要的,因为降维方法可以还原数据的整体或局部结构。一般来说,线性方法如主成分分析(Principal Component Analysis, PCA)、对应分析(Correspondence Analysis, CA)、多重对应分析(Multiple Correspondence Analysis, MCA)、经典多维尺度分析(classical multidimensional scaling, cMDS)也被称为主坐标分析(Principal Coordinate Analysis, PCoA) 等方法,常用于保留数据的整体结构;而非线性方法,如核主成分分析(Kernel Principal Component Analysis, Kernel PCA)、非度量多维尺度分析(Nonmetric Multidimensional Scaling, NMDS)、等度量映射(Isomap)、扩散映射(Diffusion Maps)、以及一些包括t分布随机嵌入(t-Distributed Stochastic Neighbor Embedding, t-SNE)在内的邻近嵌入技术,更适合于表达数据局部的相互作用关系。NE技术不会保留数据点之间的长期相互作用关系,其可视化报告中的非临近观测组的排列并没有参考价值。因此,NE的图表不应该被用于数据的大规模结构的推测。有关线性和非线性降维方法的综述可分别参考如下两篇文章。

相关链接:

  • https://scholar.google.com/scholar?q=Linear+Dimensionality+Reduction%3A+Survey%2C+Insights%2C+and+Generalizations+Cunningham+2015
  • https://arxiv.org/abs/1803.02432)

如果你的观测值带有类别标签,并且你的目标是将观测值分类到已知的与其最匹配的类别中去时,则可以考虑使用监督降维技术。监督降维技术包括偏最小二乘法(Partial Least Squares, PLS)、线性判别分析(Linear Discriminant Analysis, LDA)、近邻成分分析(Neighborhood Component Analysis)和Bottleneck神经网络分类器。与之前提到的非监督降维方法不同的是,非监督方法并不知道观测值所属的类别,而监督降维方法可以直接利用类别信息把相同标签的数据点聚集到一起。

对于收集多领域数据的情况,例如基因表达、蛋白质组学以及甲基化的数据,你可能需要先将降维技术分别应用到每张数据表中,然后再使用普鲁克变换(Procrustes transformation,相关链接:https://onlinelibrary.wiley.com/doi/abs/10.1002/bs.3830070216)或是其他可以将多个数据集整合的方法,如用于多个表的联合分析方法(称为STATIS);和用于多个距离矩阵的联合分析(称为DisTATIS,相关链接:)(详细信息请参考技巧9)。表1给出了降维技术的基本属性的分类和总结。为了帮助从业者,我们也把本文讨论过的降维技术的实现方法总结到表2中。

降维方法

表1.降维方法

降维方法

表2.案例实现

技巧2:对连续型和计数型输入数据进行预处理

在应用降维技术之前,先对数据进行适当的预处理通常十分必要。例如,数据中心化,变量的观测值减去该变量观测值的平均值,就是主成分分析处理连续数据的必要步骤,并且在大多数标准实现中是默认应用的。另一种常用的数据转换方法则是缩放,将变量的每一个测量值乘以一个缩放因子,使得缩放后的变量的方差为1。缩放处理保证了每一个变量都产生等价的贡献,这对于那些包含具有高度可变范围或不同单位异构的数据集尤其重要,如患者临床数据,环境因素数据等。

当所有变量的单位都相同时,如在高通量测定中,则不建议进行方差标准化,因为这会导致强信号特征的收缩以及无信号特征的膨胀。根据具体的应用、输入数据的类型、使用的降维方法,可能会需要用到其他的数据变换方法。举个例子,如果数据的变化具有可乘性,比如你的变量测定的是百分比的增加或减少,那么你应该考虑在使用主成分分析之前对该其进行对数变换。在处理基因组测序数据时,需要先解决两个问题,才能进行数据降维。***个问题:每个序列样本都有一个大小不同的库(也称为测序深度),这是一个人为的区分观测值的讨厌参数。为了让观测值之间可比较,需要先使用特定的方法(如DESeq2,edgeR)估算出一个样本大小的因子,然后用对应的样本中的每个观测值去除以这个因子,将样本标准化;第二个问题:分析数据往往会表现出均值-方差的正相关趋势,即高均值意味着高方差。该情况下,需要使用方差稳定变换去调节这种影响,使其避免倾向于较多的特征。对于那些服从负二项分布的计数数据,如序列计数,则推荐使用反双曲函数正弦变换或者类似的方法[28-30]。对于高通量数据,样本标准化和方差稳定化相结合的办法是高吞吐量数据的有效的预处理步骤。

技巧3:正确处理含有分类变量的输入数据

在许多情况下,可用的测量不是数值的,而是定性的或分类的。对应的数据变量表示类别,而不是数值数量,例如表型、队列成员、样本测序运行、调查应答评级等。当关注点是两个分类变量的水平(不同的值)之间的关系时,对应分析(CA)会用于分析列联表中类别的共现频率。如果有两个以上的分类变量时,多重对应分析(MCA)可以用来分析观测点之间的关系以及变量类别之间的联系。多重对应分析是对应分析的泛化,其本质就是将对应分析应用到一个将分类变量独热编码(one-hot encoding)的指示矩阵中。当输入数据既包括数值变量又包括分类变量时,则有两种策略可用。如果只有少数几个分类变量,那么可以对数值变量进行主成分分析处理,分类变量每个水平的平均值则可以通过投影为补充点(不加权)。另一方面,如果这个混合数据集包含大量的分类变量,则可以使用多因子分析法(MFA)。这个方法是对数值变量使用主成分分析,对分类变量使用多因子分析,然后加权并合并变量组的结果。

处理分类或混合数据的另一种方法是采用“***量化”的思想,利用PCA(即主成分分析法,下文直接采用PCA)对变量进行转换。由于目标是***化方差,故传统PCA只能对数值型变量实行降维,不能作用在分类变量上。要想对定类(无序)或定序(有序)分类变量实行PCA降维,一种方式是将方差替换成由基于各类别的频数计算出的卡方距离(如在对应分析中),或者可以在执行PCA之前进行适当的变量变换。这里提供两种变量变换的方式:一种是将分类变量虚拟化编码为二分类特征;另一种是使用***缩放分类主成分分析法(CATPCA)。***缩放法的原理是将原有的分类变量进行类别量化,从而转换成新变量的方差***化。通过***缩放可以将分类主成分分析转化成***化问题,通过成分得分、成分加载和成分量化的交替变换,经过不断迭代使得量化后的数据和主成分之间的平方差最小。

***缩放的一个优点是它无需预先假定变量之间存在线性关系。 实际上,即使输入数据都是数值型时,分类主成分分析法在处理变量之间非线性关系的能力也很重要。 因此,当变量之间存在非线性关系且标准PCA只能解释方差的低比例时,***缩放法提供了可能的补救措施。

技巧4:使用嵌入方法降低输入数据的相关性和相异性

在既没有可用的定量特征也没有可用的定性特征时,用相异性(或相关性)度量的数据点之间的关系可以采用低维嵌入的方法进行降维。即使可以进行可变测量,计算相异性和使用基于距离的方式也是一种有效的方法。但要,你要确保你选择了一个能够***地概括数据特征的相异度量标准。例如,如果源数据是二进制的,那就不能使用欧几里德距离,这时选择曼哈顿距离更好。但是,如果特征是稀疏,则应该优选Jaccard距离。

经典多尺度分析(cMDS)、主坐标分析(PCoA)和非度量多尺度分析(NMDS)使用成对数据之间的差异性来找到欧几里德空间中的嵌入,从而实现对所提供距离的***近似。尽管经典多尺度分析(cMDS)是一种类似于主成分分析(PCA)的矩阵分解方法,但非度量多尺度分析(NMDS)是一种力求仅保留相异性排序的优化技术。当对输入距离值的置信度较低时,后一种方法更适用。当相异性数据是非标准的、定性数据时,可以使用更专业的序数嵌入方法,可以参考Kleindessner和von Luxburg的详细讨论。当使用基于优化的多维缩放(MDS)时,可以选择仅通过局部交互将最小化问题限制在从数据点到其邻居(例如,k-最近邻)的距离。该方法称为“局部”MDS。

相异性也可以用作t分布随机嵌入(t-SNE)的输入。与局部MDS类似,t分布随机嵌入(t-SNE)专门用于于表示短程交互。然而,该方法通过使用小尾的高斯核函数将所提供的距离转换为邻近度量,从而以不同的方式实现了局部性。目前,已经开发了一种基于神经网络的词向量(word2vec) 方法,该方法使用相似性数据(共现数据)来生成连续欧几里德空间中的对象的向量嵌入。 事实证明,这项技术在从由文本语料库衍生的数据中生成单词嵌入方面非常有效。 但是,这些高级计算方法的鲁棒性尚未在很多生物数据集上进行广泛测试。

技巧5:有意识地决定要保留的维数

在对数据进行降维时,关键问题是选择一个合适的新维度的数量。这一步决定了能否在在降维后的数据中捕获到感兴趣的信号,降维时维度数量的选择在统计分析或机器学习任务如聚类之前的数据预处理步骤中尤为重要。即使你的主要目标是进行数据可视化,但是由于可视化时一次只能显示两个或三个轴,你仍要选择降维后要保留的合适的新维度数量。例如,如果前两个或三个主成分对方差的解释不足时,就应该保留更多的成分,在这种时候就需要对成分的多种组合进行可视化(例如,成分1与成分2,成分2与成分4,成分3与成分5之间的对比等)。在某些情况下,***信息是一个复杂的因子,并且有用的信息被高阶成分捕获。在这种情况,就必须使用高阶成分来显示其模式。

要保留的***维度数很大程度上取决于数据本身。在了解数据之前,您无法确定正确的输出维度数。请记住,***的维度数量是数据集中记录数(行数)和变量数(列数)的最小值。例如,如果你的数据集包含10,000个基因的表达式,但只有10个样本,则降维时行不能超过10个(如果输入数据已居中,则为9个)。对于基于光谱分解的降维方法,例如主成分分析(PCA)或主坐标分析(PCoA),你可以根据特征值的分布情况来进行维度的选择。在实践中,人们在做决定时通常依赖于碎石图“scree plot”(见图1)和“肘部法则(也称为拐点法则)”。碎石图直观展示了输出结果中的每个特征的值,或者等价地展示,每个特征如一个成分对方差的解释比例。通过观察图形,你能够找到一个拐点,这个位置的特征的值比它之前紧挨着它的位置的值显著下降。或者,你可以观察特征值的直方图,并从所有特征中找出“脱颖而出”的值比较大的特征。马尔琴科—巴斯德分布(Marchenko-Pastur distribution)在形式上近似地模拟了大量随机矩阵的奇异值的分布。因此,对于记录数量和特征数量都很大的数据集,你使用的规则是只保留拟合的马尔琴科—巴斯德分布支持之外的特征值;但请记住,这仅在数据集至少包含数千个样本和数千个特征的情况下才可用。

图1.碎石图

根据优化方法,特征值可用于确定保留多少维度是充分的。根据“肘部规则”,可以选择要保留的维度的数量。在上面的示例中,你应该保留前五个主成分。

对于非优化方法,通常在降维之前预先指定成分的数量。当使用这些方法时,可以通过迭代的方法不断增加维度的数量,并评估每次迭代中增加的维度是否能够使损失函数显著减小,来最终选择降维时要保留的成分的数量。例如t分布随机嵌入的情况下,由KL散度(KL)定义的输入变量和输出变量之间的转换概率。理想情况下,你肯定愿意你的发现(例如,可视化中观察到的模式)对维度数量的选择具有鲁棒性。

技巧6:在可视化时使用正确的宽高比

可视化是数据探索过程的重要组成部分。因此,你生成的DR图能否准确反映降维方法的输出至关重要。关于可视化,一个重要但经常被忽视的属性是其宽高比。2D(和3D)图的高度和宽度(以及深度)之间的比例关系可以强烈影响你对数据的感知; 因此,DR图应遵循与显示的输出轴所解释的相对信息量相一致的宽高比。

在PCA或PCoA的情况下,每个输出维度都具有相应特征值,该特征值与其所代表的方差值成比例。如果图表的高宽比是任意的,则不能获得数据的完整图像。由于用于分析生物数据的流行软件通常默认生成方形(2D)或立方形(3D)的图形,因此高宽相等的二维PCA图很常见,但也经常使人产生误解。其实,PCA图表的高宽比应与相应特征值之间的比率相一致。由于特征值反映了相关主成分坐标的变化,因此只需要确保在图表中,一个PC方向上的单位长度与另一PC方向单位长度相同。(如果你使用ggplot2 R软件包来生成图表,添加+ coords_fixed(1)将确保正确的宽高比。)

我们用图2所示的模拟示例来说明宽高比问题。在矩形(图2A)和正方形(图2B)图中,宽高比与PC1和PC2坐标的方差不一致; 结果是明显地将数据点(错误地)分组到图表的顶部和底部。相反,图2C,垂直两轴的长度比与相应特征值之间的比率一致,因此可以显示正确的分组,与真实的分类一致。

图2. PCA图的宽高比

两个模拟高斯群集投射在***和第二个主成分上。矩形(a)和方形(b)图中的宽高比不正确。将(c,d)图中的宽高比进行校正,其中调整图表的高度和宽度以匹配PC1和PC2坐标中的方差。(d)图中显示的颜色表示真正的高斯分组关系。Dim1,维度1; Dim2,维度2; PC,主成分; PCA,主成分分析。

在许多基于优化的降维方法中,维度的排序没有意义。例如,在t-SNE的情况下,你可以在生成新的数据表示之前选择输出维度的个数(通常为两个或三个)。与主成分不同,t-SNE的各维度是无序且同等重要的,因为它们在通过优化算法的最小化损失函数中具有相同的权重。因此,对于t-SNE,通常的做法是使投影图形为正方形或立方形。

技巧7:理解新维度的含义

许多线性DR方法,包括PCA和CA,都为观测值和变量提供了约化表示。特征映射(Feature maps)或相关性圆图(correlation circles)可用于确定哪些原始变量彼此相互关联,或与新生成的输出维度相关联。特征向量之间的夹角或与PC轴之间的夹角包含如下信息:两个夹角大约在0°(180°)的向量,其相应的变量间的关系也是是密切正(或负)相关的,而具有90°夹角的两个向量可以看作相对独立的。

图3A展示了具有变量投影的缩放坐标的相关性圆图。该图表明PC1的高值表示“Flav”(类黄酮)和“Phenols”(总酚类)中的低值以及“Malic Acid”( 苹果酸)和“AlcAsh”(灰分的碱度)中的高值。此外,“AlcAsh”(灰分的碱度)水平似乎与“NonFlav Phenols”(非黄烷类酚)密切负相关并且与“Alcohol”(酒精)水平无关。

图3.变量的投影

葡萄酒数据集上的PCA显示了怎样用变量的表示来理解新维度的含义。相关性圆图(a)和PC1贡献图(b)。AlcAsh,灰分的碱度; Dim1,维度1; Dim2,维度2; Flav,黄酮类; NonFlav Phenols,非黄烷类酚类; OD,OD280 / OD315稀释的葡萄酒; PC,主成分; PCA,主成分分析; Phenols,总酚类; Proa,原花青素。

可以用贡献条形图来展示原始变量对新维度的重要性。变量对给定新轴线的贡献为其坐标平方(在此轴线上)与相应的所有变量总和之比; 该比率通常用百分比表示。许多程序将变量的贡献作为标准输出; 不仅可以为单个轴线定义贡献值,还可以通过对选定成分相对应的值求和为多个DR轴定义贡献值。图3B显示的是变量对PC1的百分比贡献; 请注意,百分比贡献不包含关联方向的信息。当使用高通量分析等高维数据集时,数千个或更多变量的贡献条图就不实用了; 相反,你可以限制图表的取值,仅显示具有***贡献的前几个(例如,20个)特征。

变量和观测值可以包含在同一图形中 - 称为“双时隙”。这个术语是由Kuno Ruben Gabriel 于1971年创造的,但是Jolicoeur和Mosimann早在1960年就提出了类似的观点。如图4所示的双时隙图可以同时展示数据样本和特征的趋势; 同时查看两者,你可能会发现类似(近距离)观察的组,这些观测值对于某些测量变量具有高值或低值(更多详细信息,请参见技巧8)。

图4. 主成分双标图

葡萄酒数据集的单时隙图将样本和变量的投影组合到前两个主成分中。AlcAsh,灰分的碱度; Dim1,维度1; Dim2,维度2; Flav,黄酮类; NonFlav Phenols,非黄烷类酚类; OD,OD280 / OD315稀释的葡萄酒; PCA,主成分分析; Phenols,总酚类; Proa,原花青素。

技巧8:找到隐藏的信号

降维的主要目标是压缩数据,同时保留大部分有意义的信息。数据压缩简化了理解数据的过程,因为简化的数据表达可以更有效地获知数据变化的主要来源。其目的是找到能够成功揭示数据底层结构的“隐藏变量”。最常见的潜在模式是离散集群或连续梯度。

在前一种情况下,相似的观察结果远离其他群体。图***显示了一个模拟集群数据集的例子。当执行聚类分析时,目的是分析样本的组别,通常的做法是首先应用主成分分析。更具体地说,实践者经常使用一组顶部的PC(例如,50个)作为集群算法的输入。主成分分析所带来的维度的减少是一个数据降噪步骤,因为顶部特征向量应该包含所有感兴趣的信号。遗憾的是,该属性并未扩展到所有降维方法。邻域嵌入技术(如t-SNE)产生的输出不应用于聚类,因为它们既不能保持距离也不能保持密度——这两个量在解释聚类输出时都非常重要。

图5.潜在结构

主成分分析图中的观测值可分为组(a)或遵循连续梯度(b)。Dim1,维度1;Dim2,维度2;PCA即主成分分析法

与离散集群不同,数据中的连续变化不太容易被识别。了解如何识别和准确解释潜在梯度非常重要,因为它们经常出现在与未知连续过程相关的生物数据中。当数据点没有分离成不同的聚类,而是从一个极端向另一个极端逐渐移动时,梯度就出现了;它们通常在数据降维的可视化中以平滑曲线的形式出现。值得注意的是,当PCA和cMDS(PCoA)应用于涉及线性梯度的数据时,数据点通常以呈现出马蹄形或弓形。当相关特征向量由于计算中使用的数据协方差或距离矩阵的性质而呈现特定形式时,特别是当这些矩阵可以表示为中心对称的Kac-Murdock-Szego矩阵时,PCA和cMDS图中就会出现“马蹄效应”。

你可以在图5B中看到具有潜在梯度的模拟数据的这种模式的示例。当观测随着时间的推移而进行时,经常会遇到连续跃迁;例如,细胞发育的文献中有大量介绍分析pseudotime的方法的文章,pseudotime是细胞分化或发育过程中观察到的一种梯度。可以有多个梯度影响数据,在不同方向可以记录一个稳定的变化。然而,观测到的连续梯度背后的变量可能是未知的。在这种情况下,你应该通过检查任何可用的外部协变量的值之间的差异,集中精力找出梯度端点(极值)处的观测值之间的差异(参见技巧7)。否则,你可能需要收集关于数据集中样本的其他信息,以研究这些差异的解释。

其他连续测量值(不用于数据降维计算的测量值)通常是根据数据集中包含的观测值获取的。额外的信息可以用来提高对数据的理解。使用外部协变量的最简单和最常见的方法是将它们包含在数据降维的可视化中——它们的值被编码为绘图上相应点的颜色、形状、大小甚至透明度。这方面的一个例子如图6A所示:葡萄酒属性数据集的主成分分析嵌入,其中数据点按葡萄酒类别着色,这是数据降维所忽视的一个变量。观察到的葡萄酒分组表明,用于降维的13种葡萄酒特性可以很好地表征葡萄酒类别。“葡萄酒数据集”可从加州大学欧文分校(University of California Irvine ,UCI)机器学习数据库中获取。

图6.使用外部信息

(a)对葡萄酒数据集的PCA样本投影显示,根据葡萄酒的特性,葡萄酒往往与葡萄品种分类一致:内比奥罗(Nebbiolo)、格里诺利诺(Grignolino)和巴贝拉(Barbera)。(b)主成分分析双标图(biplot)可以用来找出哪一组葡萄酒具有较高的哪一种性质。Dim1,维度1;Dim2,维度2;主成分分析。

有时,根据新计算的特征直接绘制外部变量是显示数据变化趋势的有效方法。例如,连续变量(例如患者的年龄或体重)的散点图与所选输出维度的坐标之间的关系显示所选协变量与新特征之间的相关性。如果外部信息是分类的而不是连续的,则可以为变量的每一级生成PC坐标的箱线图(例如PC1、PC2或其他)。

外部信息也可以合并到双标图(bioplots)中。图6B显示了将观察到的外部信息与根据原始变量对新坐标轴的解释相结合 (如技巧7所述)。你可以发现“Barbera”葡萄酒往往含有较高的“苹果酸”和较低的“黄烷酸”,而“Grignolinos”往往含有较低的“灰分”和“酒精”含量。

此外,外部信息可用于发现批次效应。批次效应是技术或系统的变异来源,它掩盖了感兴趣的主要信号。它们经常出现在测序数据中,其中来自相同测序运行(lane)的样品聚集在一起。因为批次效应会混淆感兴趣的信号,所以在进行进一步的下游分析之前,***检查它们的存在,如果发现,则将其移除。你可以通过数据降维嵌入图来检测技术或系统变化,该嵌入图中的数据点按批次成员资格进行着色,例如按测序运行、笼号、研究队列进行着色。如果发现批次效应,你可以通过移动所有观察值来移除它,方法是每个批处理的质心(组的重心)移动到绘图的中心(通常是坐标系的原点)。

技巧9:利用多域数据

有时,我们对于对于同一组样本,会获取一组以上的测量值;例如,高通量基因组研究就经常涉及到多个领域的数据。对于相同的生物样品,我们可以获取到它的微阵列基因表达、微核糖核酸表达、蛋白质组学和脱氧核糖核酸甲基化等一系列数据。通过集成多个数据集,你可以获得更精确的高阶交互表示,并评估与之相关的可变性。由于不同区域的数据受到不同的变动率或波动率的影响,样本往往表现出不同程度的不确定性。

处理“多域”数据(也可称作为“多模态”、“多向”、“多视角”或“多组学”数据)的一种方法是分别对每个数据集执行数据降维,然后使用普鲁克变换将它们对齐在一起—平移、缩放和旋转的组合,以尽可能紧密地将不同数据结构对齐。许多更先进的方法也被开发出来,例如STATIS和DiSTATIS分别是PCA和经典MDS的推广。这两种方法都用于分析在同一组观测数据上获取的多个数据集,并且都基于将数据集组合成一个称为“折中”的共同共识结构的思想。

所以的数据集都可以投影到这个共识空间。单个数据集的投影可以帮助观察来自不同领域的数据所描述的观察中的不同模式。图7显示了DiSTATIS在5个模拟距离表上对20个合成数据点的使用示例。不同的颜色对应不同的数据点,不同的形状对应不同的距离表。数据表之间的“折中点”用较大的菱形标记表示。有关多表数据分析的详细研究,重点是生物多组学数据集,可以请参见Meng及其同事的相关研究结果。

图7.多域数据

为同一观测值定义的多个距离表上的DiSTATIS。可以从不同的数据类型(例如,基因表达、甲基化、临床数据)或从已知的数据生成分布中重新采样的数据来计算多个距离。

技巧10:检查结果的鲁棒性并量化不确定性

如图8所示,对于某些数据集而言,PCA的 PC定义是不明确的,即连续两个或多个PC可能具有非常相似的方差,并且相应的特征值也几乎完全相同,如图8所示。尽管由这些分量共同组成的子空间是有意义的,但特征向量(即PC)并不能单独提供信息,而且它们的载荷也不能单独解释,因为即使是一个观察点中的微小变化也会导致完全不同的特征向量集。在这种情况下,我们说这些pc是不稳定的。相似特征值对应的维度应该一起理解而不能单独解释。

图8.不稳定的特征值

当多个特征值近乎相等时,PCA表示是不稳定的。PCA,principal component analysis,即主成分分析。

使用需要指定参数的技术时,还应根据不同的参数设置检查结果的稳定性。例如,在运行t-SNE时,你需要为困惑度选择一个值,不同的值甚至可能定性地改变结果。当困惑度被设置为非常小的值时,常会形成“人工聚类”。不应该使用t-SNE目标函数的值即KL散度作为选择“***困惑度”的标准,因为随着困惑度值的增加,KL散度总是单调减小。对于t-SNE,Cao和Wang在提出了用于选择困惑度的贝叶斯信息准则(BIC)类型规则。然而由于t-SNE的稳定性理论还没有开发出来,在实践中,应该针对一系列输入参数重复降维计算,并直观地评估所发现的模式在不同规格中是否一致。尤其是当困惑度值的微小增加导致聚类模式消失时,你得到的分类可能只是参数选择不合适带来的错误结果。

另一个需要关注的问题是方法面对异常值时的稳定性。一般来说,远离中心的观察点对PC的影响要大于靠近中心的观察点;有时数据中的一小部分样本几乎决定了PC。

你应该注意这样的情况,并验证降维方法捕获的结构是否能代表大部分数据,而不仅仅是少数异常值。在降维图中,异常值是远离大多数观测值的点。在PCA和其他线性方法中,如果样本投影图中的所有点都位于原点即图的中心附近,只有一两个点位于很远的地方,降维结果将被异常值控制。应该使用特定数据质量控制指标对这些点进行检验,并考虑将其删除。

如果删除了样本,则需要重新进行降维计算,并且应注意输出表示中的更改。通过比较去除异常值前后的降维可视化,观察观察点的变化。你不仅应该考虑删除异常值,还应该考虑删除异常组,即与多数数据有很大不同的异常类。除去异常组并重新进行降维计算,得到适合大部分数据的模式。另一方面,如果数据集中包含许多异常观测,则应使用稳定的方法,比如健壮的核主成分分析。

此外,可以通过构建“引导”数据集来估计与观察点相关的不确定性,即用替换方法重采样观察点以生成数据的随机子集。“引导”集可以看作是多路数据,使用技巧8中描述的STATIS或Procrustes对齐方法匹配随机子集。当数据的真实噪声模型可用时,可以生成数据点的副本,而不需要使用自举子样本。通过扰动样本的测量值,并应用技巧9中提到的STATIS或DiSTATIS方法生成“折中方案”和每个受干扰的数据副本的坐标。获取每个数据点的多个估计值后就可以估计它的不确定性。你可以使用密度等值线或通过将每个引导程序投影中的所有数据点绘制到折中方案上来显示DR嵌入图上每个样本的不确定性。图9表示两个模拟数据集的PCA投影的Procrustes比对。彩色线表示自举子集输出坐标的密度等值线,菱形标记对应于全部数据的投影坐标。图中绘制了20个合成数据点,这些数据点分别来自2维高斯分布和5维高斯分布,均正交投影到10维。我们可以观察到低秩数据点的不确定性要小得多,即前2个PC能更好地代表***个数据集。

图9.数据点的不确定性

每个数据点的降维输出坐标的稳定性。 使用Procrustes变换将两个10维模拟数据集的bootstrap样本投影到前两个PC对齐,其中(a)中数据秩为2、(b)中数据秩为5。 较小的圆形标记对应于每个bootstrap试验,较大的菱形标记是整个数据集的坐标。DR,dimensionality reduction,即降维;PC,principal component,即主成分。

结语

在分析高维数据时,降维非常有用,有时甚至是必不可少的。尽管降维方法被广泛采用,但经常被误用或误解。现有方法的降维方法五花八门,更不用说其中一些方法还有着各种不同的相异度指标和参数设置。这十项技巧可以为从业者提供一个检查表或作为一个非正式的指南。我们描述了执行有效降维的一般步骤,并给出了正确解释和充分理解降维算法输出的方法。这里讨论的大部分建议都适用于所有降维方法,但部分建议是针对特定降维方法的。

除了上述内容,我们还想提供一条额外的建议:跟踪你所做出的的所有决策,包括选择的方法、选择的距离或内核以及使用的参数值。R、IPython和Jupyter notebook允许生成包含叙述文本、代码及其输出的完整分析报告,是保存所有步骤以及获得结果方便的方法。记录你的选择是可重复研究的关键部分;它允许其他人复制你所获得的结果,并在你下次处理类似数据时加快分析过程。我们提供了在S1 Text文本中使用R-markdown生成的可重现报告的示例和其代码文件。

相关报道:

https://journals.plos.org/ploscompbiol/article id=10.1371/journal.pcbi.1006907

【本文是51CTO专栏机构大数据文摘的原创文章,微信公众号“大数据文摘( id: BigDataDigest)”】

     大数据文摘二维码

戳这里,看该作者更多好文

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2023-02-06 16:46:59

JavaScript程序员技巧

2023-06-27 17:42:24

JavaScript编程语言

2016-08-24 22:00:58

CSSWeb设计

2024-10-17 16:13:23

Shell开发运维

2023-09-27 19:44:59

浏览器调试技巧

2023-05-24 10:24:56

代码Python

2024-07-16 10:13:01

2024-10-07 11:02:08

requests编程PythonAI

2023-11-18 09:07:59

Go语言技巧

2010-12-22 09:16:31

SQL Server专

2024-01-30 00:40:10

2024-12-03 14:33:42

Python递归编程

2010-09-08 14:35:22

CSS

2018-05-23 14:10:15

程序员技能沟通

2022-10-08 07:54:24

JavaScriptAPI代码

2022-11-07 16:06:15

TypeScript开发技巧

2011-08-22 12:24:56

nagios

2021-10-09 10:50:30

JavaScript编程开发

2023-03-31 08:10:50

2023-03-19 16:15:33

CSS技巧开发
点赞
收藏

51CTO技术栈公众号