t-分布邻域嵌入(t-distributed Stochastic Neighbor Embedding,t-SNE)是一种用于数据降维和可视化的机器学习算法,尤其适用于高维数据的降维。t-SNE通过将高维数据嵌入到低维空间(通常是二维或三维)中,使得在高维空间中相似的点在低维空间中仍然保持相似,而不相似的点被分离开来。
t-SNE的基本原理
t-SNE通过两步将高维数据降维:
-
计算高维空间中的相似性:在高维空间中,t-SNE使用高斯分布来计算数据点之间的相似性。给定数据点x_i和 x_j,其相似性 p_ij定义为:
这里,sigma_i 是根据Perplexity参数自动确定的。
-
计算低维空间中的相似性:在低维空间中,t-SNE使用t分布来计算数据点之间的相似性。给定低维数据点 y_i和 y_j,其相似性 q_ij定义为:
-
最小化KL散度:t-SNE通过最小化高维相似性分布 (P) 和低维相似性分布 (Q) 之间的Kullback-Leibler (KL) 散度来优化低维嵌入:
t-SNE的特点
-
保持局部结构:t-SNE在保持数据局部结构(局部相似性)方面表现非常好,能够揭示数据中的细节模式。
-
非线性降维:t-SNE是非线性降维方法,适合处理具有复杂非线性结构的数据。
-
高计算量:t-SNE计算量较