我把所有的过程全写入下面的代码注释中了。
主要流程有:
- 将mnist数据集的64维转化为2维矩阵向量。(利用scikit-learn库中的TSNE库)
- 将转化好的矩阵输出到二维空间中即可。
参考了官方的代码:scikit-learn/t-SNE
得到的结果如下图所示:
图1 选择Mnist数据集前100张图片
图2 用t-SNE可视化Mnist数据集前6种类
大约花了49s的时间,通过可视化发现每个样本降维后相同的类基本可以聚到一起。
代码如下:
# 1.引入数据库,取6种类。
from sklearn.datasets import load_digits
digits = load_digits(n_class=6)
X, y = digits.data, digits.target
n_samples, n_features = X.shape
n_neighbors = 30
# 2.展示100张mnist数据集图片
import matplotlib.pyplot as plt
fig, axs = plt.subplots(nrows=10, ncols=10, figsize=(6, 6))
for idx, ax in enumerate(axs.ravel()):
ax.imshow(X[idx].reshape((8, 8)), cmap=plt