T-SNE降维python代码案例
时间: 2025-02-19 14:31:21 浏览: 47
### T-SNE降维 Python 实现
#### 使用`sklearn.manifold.TSNE`
为了简化开发过程,通常会利用Scikit-Learn库中的TSNE模块来进行操作。下面是一个基于MNIST手写数字数据集的简单例子[^1]。
```python
from sklearn.datasets import fetch_openml
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt
import numpy as np
# 加载 MNIST 数据集的一个子集
mnist = fetch_openml('mnist_784', version=1)
X, y = mnist["data"], mnist["target"]
y = y.astype(int)
# 取前两个类别以加快速度并减少内存占用
idx = (y == 0) | (y == 1)
X_subset, y_subset = X[idx], y[idx]
# 初始化 t-SNE 并拟合转换数据
tsne = TSNE(n_components=2, random_state=42, perplexity=30, learning_rate='auto')
X_embedded = tsne.fit_transform(X_subset)
plt.figure(figsize=(10, 7))
for digit in range(2):
plt.scatter(
X_embedded[y_subset == digit, 0],
X_embedded[y_subset == digit, 1],
label=str(digit),
alpha=0.5,
)
plt.legend()
plt.title("t-SNE visualization of the first two classes from MNIST dataset")
plt.show()
```
这段代码展示了如何加载MNIST数据集的一部分,并应用`t-SNE`将其降至二维以便于可视化。注意这里只选择了两类样本用于展示目的;实际应用中可以根据需求调整所选的数据量和种类[^2]。
阅读全文
相关推荐




















