探索 t-SNE,一种强大的高维数据可视化技术。了解其在 AI 和 ML 中的用途、优势和应用。
t-distributed Stochastic Neighbor Embedding(t-SNE)是一种复杂的非线性 降维技术 主要用于探索和可视化高维数据。由 Laurens van der Maaten 和 Geoffrey Hinton 开发的,这种统计方法允许研究人员和 机器学习 (ML)从业人员投射 将数百或数千维度的复杂数据集投射到二维或三维空间中。与 线性方法不同的是,t-SNE 擅长保留数据的局部结构,这使得它在以下数据可视化任务中特别有用 数据可视化任务 聚类和数据点之间的关系至关重要。
该算法将数据点之间的相似性转换为联合概率。在原始的 在原始的高维空间中,t-SNE 使用高斯分布来衡量点之间的相似性,其中相似的 对象被选为邻居的概率很高。然后,它试图将这些点映射到一个 嵌入")。 和嵌入数据的概率分布之间的分歧最小化,从而将这些点映射到低维空间("嵌入")。这一过程在很大程度上依赖于 无监督学习原理,因为它 模式。
t-SNE 的一个重要方面是它能够处理可视化中的 "拥挤问题"。通过在低维地图中使用 在低维地图中使用重尾的 Student's t 分布,可以防止点的重叠过于密集、 确保不同的聚类在视觉上 可分离。
高维数据可视化是人工智能开发生命周期中的一个基本步骤。 t-SNE 提供了有关模型如何跨领域查看数据的直观信息。
必须将 t-SNE 与其他降维方法区分开来,因为它们在机器学习管道中的作用不同。 机器学习管道中的不同目的。
下面的示例演示了如何使用流行的 Scikit-learn 库来 可视化高维数据。该代码段使用 t-SNE。
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.manifold import TSNE
# Generate synthetic high-dimensional data (100 samples, 50 features)
X, y = make_blobs(n_samples=100, n_features=50, centers=3, random_state=42)
# Apply t-SNE to reduce features from 50 to 2 dimensions
# Perplexity relates to the number of nearest neighbors to consider
tsne = TSNE(n_components=2, perplexity=30, random_state=42)
X_embedded = tsne.fit_transform(X)
# Visualize the projected 2D data
plt.scatter(X_embedded[:, 0], X_embedded[:, 1], c=y)
plt.title("t-SNE Visualization of Features")
plt.show()
t-SNE 虽然功能强大,但需要仔细 超参数调整。参数 "plexity "参数可以平衡数据的局部和全局关注度,它能 会极大地改变结果图。此外,该算法的计算成本很高(复杂度为 O(N²))、 与简单的投影方法相比,该算法在处理超大数据集时速度较慢。
t-SNE 图中分离的聚类之间的距离并不一定代表原始空间中准确的物理距离。 它们主要表明聚类是不同的。对于嵌入的交互式探索 工具(如TensorFlow 嵌入投影仪)通常与模型训练一起使用。 模型训练。随着人工智能研究向YOLO26和 和其他端到端架构的人工智能研究取得进展时,解释这些高维空间仍然是验证和 模型测试的关键技能。