t-SNE (tsne
)是一种降维算法,适合高维数据可视化。这个名字代表t分布式随机邻居嵌入。这个想法是在低嵌入高维分维度的方式方面相似点。附近的点在高维空间中对应于附近的低维嵌入点,和遥远的点在高维空间中对应于遥远的嵌入低维点。(一般来说,是不可能匹配之间的距离完全高维和低维空间)。
的tsne
函数创建一组高维数据的低维点。通常,你想象的低维点自然集群在原始的高维数据。
该算法需要下面的一般步骤嵌入低维的数据。
计算两两之间的距离高维点。
创建一个标准偏差σ我为每一个高维点我这样困惑每一个点是在预定的水平。困惑的定义,请参阅计算距离,高斯方差和相似之处。
计算相似度矩阵。这是X的联合概率分布,通过定义方程1。
创建一组初始的低维点。
迭代更新低维指向最小化Kullback-Leibler背离高维空间和一个高斯分布t分布在低维空间。这个优化过程中最耗时的部分算法。
看到van der Maaten和辛顿[1]。
基本t-SNE算法执行以下步骤。
tsne
首先删除输入的每一行数据包含任何X南
值。然后,如果标准化
名称-值对是真正的
,tsne
中心X,减去每一列的均值和尺度X除以它的列的标准差。
原来的作者van der Maaten和辛顿[1]建议减少原始数据X使用低维版本主成分分析(PCA)。你可以设置tsne
NumPCAComponents
名称-值对的尺寸你喜欢,也许50。多运动控制这一步,预处理数据使用主成分分析
函数。
预处理后,tsne
计算距离d(x我,xj)每对点之间x我和xj在x你可以选择不同的距离度量使用距离
名称-值对。默认情况下,tsne
使用标准的欧几里得度量。tsne
使用后续计算距离的度量。
然后为每一行我(X)tsne
计算标准偏差σ我这样困惑的行我等于困惑
名称-值对。困惑是定义一个模型的高斯分布如下。van der Maaten和辛顿[1]描述,“数据的相似点xj数据点x我条件概率,
,这x我会选择xj作为它的邻居如果邻居选择比例在高斯概率密度为中心x我。附近的数据点,
是相对较高的,而对于广泛分离的数据点,
几乎是无穷小(合理的高斯分布的方差值,σ我)。”
定义的条件概率j鉴于我作为
然后定义联合概率pij通过使对称条件概率:
(1) |
在哪里N是X的行数。
分布还没有他们的标准差σ我定义的困惑
名称-值对。让P我代表了条件概率分布在所有其他数据点给定的数据点x我。分布的困惑
在哪里H(P我)是香农熵P我:
困惑的措施的有效数量的邻居我。tsne
执行二进制搜索的σ我实现为每个点一个固定的困惑我。
嵌入点X到低维空间,tsne
执行优化。tsne
试图最小化Kullback-Leibler差异模型的高斯分布的点X和一个学生t点Y的分布在低维空间。
最小化过程始于一个初始点集Y。tsne
创建点默认为随机系统点。您还可以创建这些点自己,包括他们“则”
名称-值对的tsne
。tsne
然后计算每对点之间的相似性在Y。
的概率模型问ij分布的点之间的距离y我和yj是
使用这个定义和模型的距离在X方程1,Kullback-Leibler联合分布之间的差异P和问是
这个定义的后果,明白了有用的非线性失真。
最小化Kullback-Leibler分歧,“准确”
算法使用一个修改梯度下降过程。点的梯度对Y的散度
标准化的术语
修改后的梯度下降算法使用一些调优参数来试图达到一个良好的局部最小值。
t-SNE算法速度和减少内存使用,tsne
提供了一个近似的优化方案。Barnes-Hut算法一起组织附近的点降低的复杂性和内存使用量t-SNE优化步骤。Barnes-Hut算法是一个近似优化器,而不是一个确切的优化器。有一个负的调优参数θ
影响速度和精度之间的权衡。更大的值“θ”
给快但不准确的优化结果。该算法相对不敏感“θ”
值的范围(0.2,0.8)。
Barnes-Hut算法组附近的点在低维空间中,并执行一个近似梯度下降法根据这些组。这个想法,最初用于天体物理学,是附近点的梯度是相似的,因此可以简化计算。
看到van der Maaten[2]。
因为t-SNE经常分离数据集群,它可以看起来t-SNE可以分类新数据点。然而,t-SNE不能分类的新观点。t-SNE嵌入是一个非线性映射,视。嵌入一个新的点在低维空间中,您不能使用之前的嵌入地图。相反,再次运行整个算法。
t-SNE可以花大量的时间来处理数据。如果你有N数据点在D要映射到的尺寸Y维度,然后
的确切t-SNE需要秩序D*N2操作。
Barnes-Hut t-SNE需要秩序D*N日志(N)* exp(维度(Y))操作。
对于大型数据集,N大于1000左右,嵌入维数Y2或3,Barnes-Hut算法可以比精确的算法。
T-SNE高维距离映射到扭曲的低维类似物。因为胖尾的学生t分布在低维空间中,tsne
经常移动近点靠近,行动远比在高维空间点之间的距离,见下图。该图显示了高斯和学生t分布在点密度在0.25和0.025。高斯密度与高维距离,t密度与低维的距离有关。的t密度对应于近点接近,远点远,比高斯密度。
t = linspace (0 5);日元= normpdf (t, 0,1);y2 = tpdf (t, 1);情节(t, y1,“k”t y2,“r”)举行在x1 = fzero (@ (x) normpdf (x, 0,1) -0.25, (0, 2));x2 = fzero (@ (x) tpdf (x, 1) -0.25 (0, 2));z1 = fzero (@ (x) normpdf (x, 0,1) -0.025, [0, 5]);z2 = fzero (@ (x) tpdf (x, 1) -0.025, [0, 5]);情节([0 x1], [0.25, 0.25],“k -”。)情节([0,z2]、[0.025, 0.025],“k -”。)情节(x1, x1, [0, 0.25],“g -”(x2, x2), [0, 0.25],“g -”)图((z1, z1), [0, 0.025],“g -”,(z2, z2], [0, 0.025],“g -”)文本(1.1,二十五分,“低音d近点更近”)文本(2.4、0。“低音d远点远”)传说(“高斯(0,1)”,“学生t (df = 1)”)包含(“x”)ylabel (“密度”)标题(密度的高斯t(0, 1)和学生(df = 1)的)举行从
适用于这种扭曲是有益的。时不适用的情况下(如高斯方差高,降低了高斯峰和分布趋于平缓。在这种情况下,tsne
可以移动近点之间的距离比原来的空间。为了实现一个有用的失真,
设置“详细”
名称-值对2
。
调整“困惑”
名称-值对的报道范围差异并不太远1
,均值方差是近了1
。
如果你能达到这个范围的差异,然后图表应用,tsne
失真是有益的。
为优化的有效方法tsne
,看到瓦滕伯格,Viegas和约翰逊[4]。
[1]van der Maaten、劳伦斯和杰弗里•辛顿。“可视化数据使用t新力。”j .机器学习研究9日,2008年,页2579 - 2605。
[2]van der Maaten,劳伦斯。Barnes-Hut-SNE。arXiv: 1301.3342 (cs.LG),2013年。
[3]雅各布斯,罗伯特A。“通过学习速率适应提高收敛速度。”神经网络1.4,1988年,页295 - 307。
[4]瓦滕伯格,马丁,Fernanda Viegas,伊恩•约翰逊。“如何有效地使用t-SNE。”蒸馏,2016年。可以在如何有效地使用t-SNE
。