08高通量测序-t-SNE
t-SNE
这是一个基本的二维散点图,我们来看看t-SNE是如何变换这个图的,在数轴上画出平面的一维图。
image-20210104103522821.png注意:如果我们只是将数据投影到其中一个轴上,我们只会得到一团混乱,不能保持原来的聚类。
image-20210104105740191.pngt-SNE所做的是找到一种将数据投影到低维空间(在本例中是1维数轴)的方法,以便保留高维空间中的聚类(在本例中是2维散点图)。让我们一步一步来了解t-SNE是如何做到这一点的。我们将从原始的散点图开始,然后我们把这些点随机排列在数轴上。
image-20210104110836085.pngt-SNE移动这些点,一点一点地移动,直到它们聚集在一起。让我们想想把第一个点移到哪里去。应该是往左移一点,还是往右移一点。在每一步中,直线上的一个点会被散点图上它的近点所吸引,而被它的远点所排斥。
image-20210104110904060.png现在我们已经了解了t-SNE试图做什么,让我们深入了解它是如何做的。
t-SNE的原理
步骤1:确定散点图中所有点的“相似性”。
先看图中黑点与其它所有点的相似性,首先测量两个点之间的距离,然后绘制出以黑点为中心的正态分布曲线,接下来计算蓝点到曲线的距离,图中黑色虚线的距离是非标度相似性(unscaled similarity)。
image-20210104122213544.png我们计算出所有点与黑点的距离,然后把他们画到正态曲线上,然后测量点到曲线的距离,得到关于感兴趣点的非标度相似度得分(unscaled similarity scores)
image-20210104122511568.png步骤2:缩放非标度相似性
我们需要将非标度相似性进行缩放,是它们加起来等于1,为什么要加起来等于1。为了说明这个概念,我需要添加一个密度为其他分类一半的分类。正态曲线的宽度取决于感兴趣点附近数据的密度,密度较低的区域曲线较宽。紫色分类的密度是蓝色分类的一半,所以紫色的正态曲线的宽度是蓝色的两倍。
image-20210104123247073.png蓝色正态曲线的标准差为1,紫色的标准差为2,进行缩放非标度相似性计算如下图:
image-20210104123509441.png从计算我们可以发现,在密度大的分类和密度小的分类缩放后,它们得分是相同的。实际上,更加复杂。t-SNE有一个困惑度(perplexity)参数,相当于期望密度(expected density),当使用了这个参数时,对于某些点,这些聚类会比你认为的相似还要“相似”。
我们已经计算了这一点的相似性分数,然后我们计算剩余点的相似性分数。由于正态分布曲线的宽度由某个点与周围数据的密度决定,所以以蓝色点为中心计算到黄色点的相似性分数和黄色点到蓝色点的相似性分数是不同的。所以t-SNE计算两个方向相似性分数的平均值。
image-20210104125059812.png最终,你得到一个矩阵相似性分数矩阵。这个矩阵的行与列表示的是某个点与其他点的相似性分数,红色高相似性,白色低相似性。我们已经计算出散点图的相似性分数。
image-20210104125845743.png我们用t分布(t-distribution)来代替正态分布去计算相似性分数,t分布很像正态分布,“t”中间没那么高,尾巴的末端要高一些。
image-20210104130707758.png像之前一样,我们最终得到一个相似性分数的矩阵,但是这个矩阵很混乱。移动这一点的目标是我们想让左边一行就像右边这一行。
image-20210104130959758.pngt-SNE每次移动一点,每一步都选择一个方向,使左边的矩阵更像右边的矩阵。它使用小步移动,因为它有点像象棋游戏,不能一次移动很多步,相反,它一次只走一步。最后,我们要讲一下,我为什么前面要使用t分布来计算相似分数,因为如果不使用t分布,这些聚类就会挤成一堆,很难观察这些聚类的效果。
image-20210104131419700.png