t-distributed Stochastic Neighbor Embedding (t-SNE)

2025年1月5日 | 阅读 7 分钟

一种称为 T-distributed Stochastic Neighbour Embedding (t-SNE) 的非线性降维方法非常理想

什么是降维?

在二维或三维空间中,n 维数据——具有多个特征的多维数据——由降维表示。诸如学生是否会踢足球之类的分类问题,这取决于温度和湿度,由于这两个特征之间的强相关性,可以简化为只有一个潜在特征。这是降维应用的一个例子。因此,我们可以减少这些类型问题中的功能数量。虽然一维问题可以简化为一条直线,二维问题可以简化为一个简单的二维区域,但一个三维的课堂项目可能很难想象。

什么是 t-SNE 算法?

一种降维技术称为 t-distributed stochastic neighborhood edging。该算法采用随机策略以非线性的方式降低当前数据集的维度。这主要关注于在较低维度上保留数据集的局部结构。

由于保留了数据集的局部结构,我们可以通过在二维或三维平面上进行绘制和可视化来获得对数据集的感知。这也有助于探索高维数据。

PCA 和 t-SNE 算法之间有什么区别?

尽管 t-SNE 和 PCA 都是用于降低数据集维度的无监督技术。t-SNE 算法采用随机非线性技术将高维数据转换为低维数据,而 PCA 是一种确定性策略,用于降低过程的维度。生成的数据通常仅用于可视化。

使用 t-SNE 数据的另一个好处是异常值不会影响它。然而,由于两种算法采用的不同方法,异常值对 PCA 技术有显著影响。我们在尝试使用 PCA 方法保留数据方差的同时,使用 t-SNE 算法来保持数据集的局部结构。

如何实现 t-SNE?

非线性降维技术 t-SNE 利用数据点与其特征的相似性来识别数据中的模式。两个点之间的相似性是通过计算点 B 被因子 A 选择为其邻居的条件概率来确定的。

然后,它旨在最小化高维和低维区域中这些条件概率(或相似性)之间的差异,以便在低维区域中对信息因子进行出色表示。

空间和时间复杂度

在计算配对条件概率时,高维和低维概率之间存在差异。这涉及大量的计算。因此,计算该方法需要大量的时间和空间。对于给定的数据点数量,t-SNE 的时间和空间复杂度是二次方的。

使用 Python 代码在 MNIST 数据集上实现 t-SNE

现在,让我们利用 MNIST 数据集,该数据集包含 10 个类别,代表数学中的 10 个不同数字,来测试 t-SNE 技术的 sklearn 实现。

现在,让我们将 MNIST 数据集加载到 pandas 数据框中。您可以从这里下载此数据集。

输出

t-distributed Stochastic Neighbor Embedding (t-SNE)

在我们可以对数据集运行 t-SNE 方法之前,我们需要标准化数据。我们可以减少完成降维过程所需的时间复杂度,因为我们知道 t-SNE 技术是一种复杂的算法,它使用一些复杂的非线性方法将高维数据映射到低维数据。

输出

(42000, 784)

为了可视化数据,让我们现在使用散点图将 784 列数据减少到 2 维。

输出

t-distributed Stochastic Neighbor Embedding (t-SNE)

什么是 t-SNE?

t-SNE(t-distributed Stochastic Neighbor Embedding)是一种无监督的非线性降维技术,用于数据探索和高维数据可视化。由于该算法的非线性降维,无法用直线分割的数据可以被分割。

通过 t-SNE,您可以感知和形成关于高维数据排列的直观认识。复杂的数据集通常被可视化为二维或三维,这有助于我们更好地理解数据中的潜在关系和模式。

t-SNE 如何工作

在较高和较低的维度空间中,t-SNE 算法确定实例对之间的相似性度量。然后它尝试最大化两个相似性度量。所有这一切都分三个阶段完成。

在较高和较低维度中,t-SNE 表示将一个点选择为另一个点的邻居。使用高斯核,它首先确定高维区域中每个事实元素的成对相似性。距离较远的点被选中的概率远低于距离较近的点。

接下来,在保持成对相似性的同时,该算法尝试将更高层的数据点映射到较低的维度空间。该过程涉及减小初始高维和低维分布之间概率分布的差异。该算法通过梯度下降来最小化散度。低维嵌入的最佳状态得以实现。

为了可视化和理解高维数据中的结构和关系,优化过程使得在低维空间中形成相关数据点的簇和子簇。

t-SNE Python 示例

在 Python 示例中,我们将创建分类数据,运行 PCA 和 t-SNE,并显示结果。我们将使用 Plotly Express 进行可视化,使用 Scikit-Learn 进行降维。

创建分类数据集

我们将使用 Scikit-Learn 中的 make_classification 函数来创建具有六个特征、1500 个样本和三个类别的合成数据。

接下来,我们将使用 Plotly Express scatter_3d 函数来 3D 绘制数据的前三个特征。

t-distributed stochastic neighbor edging,简称 t-SNE,是一种机器学习方法,用于降维。当高维数据在较低维空间(通常是 2D 或 3D)中可视化时,它特别有用。t-SNE 通常用于涉及模式识别和探索性数据分析的任务。

t-SNE 的一些重要特征如下

目标

为了保留高维数据点之间的成对相似性,t-SNE 将它们映射到较低维空间。它非常擅长捕捉数据的局部结构。

随机性

算法的随机性由 t-SNE 名称中的“stochastic”一词表示。在优化过程中使用随机抽样,并且不同的运行可能会产生不同的结果。学生 t 分布

为了在较高和较低的维度空间中描述成对相似性,t-SNE 采用重尾学生 t 分布的概率分布。这种分布有助于保持相邻站点之间相对距离的目标。

成对相似性

在高维空间中,该方法首先计算数据点之间的成对相似性。使用条件概率来说明这些共同点。随后,该算法在低维域中生成一组可比的条件概率。

成本函数

t-SNE 通过最小化高维和低维空间中成对相似性之间的散度来实现。它通过修改低维空间中数据点的位置来实现这一点。

困惑度

t-SNE 中的一个超参数,困惑度,会影响保留全局结构和局部结构的平衡程度。它是每个点有效邻居数量的大致指标。t-SNE 的输出可能会受到调整困惑度的影响。

应用

t-SNE 通常用于生物学、计算机视觉和自然语言处理等领域,用于可视化高维数据。它可以显示在原始高维空间中难以看到的模式和簇。

计算复杂性

尽管其功能强大,但 t-SNE 在计算上可能成本高昂,尤其是在处理大型数据集时。为了使其更具可扩展性,还有进一步的改进和优化,例如 Barnes-Hut 近似。

局限性

t-SNE 的一些缺点包括其随机性、对超参数选择的敏感性以及在可视化特定类型数据时可能出现的拥挤问题。

结论

总而言之,应该注意的是,t-distributed Stochastic Neighbour Embedding (t-SNE) 是一种强大的降维方法,通常用于将高维数据可视化到低维空间。由于其揭示局部结构和簇的能力,它在涉及模式识别和探索性数据分析的任务中特别有用。用户应意识到其计算成本、对困惑度等超参数的敏感性以及随机性——尤其是在处理大型数据集时。即使存在这些缺点,t-SNE 仍然是破译复杂数据集并帮助从业人员和研究人员理解其数据潜在关系和结构的有用方法。与任何方法一样,在解释 t-SNE 结果时,考虑所研究数据集的独特特征和挑战至关重要。