MNISTデータセットをT-SNEで可視化

scikit learnからMNISTデータセットを取得して、T-SNEを適応した後に描画する。 from sklearn.datasets import fetch_mldata mnist = fetch_mldata('MNIST original') type(mnist) sklearn.utils.Bunch ランダムに10000のデータを選択する import numpy as np np.random.seed(42) m = 10000 idx = np.random.permutation(60000)[:m] idx array([12628, 37730, 39991, ..., 3256, 14474, 41816]) Yはtargetで、1-9までの数値に当てはまる。 X = mnist['data'][idx] Y = mnist['target'][idx] MNISTを2次元のデータに変換するのは2分ぐらいかかります。 from sklearn.manifold import TSNE tsne = TSNE(n_components=2, random_state=42) X_reduced = tsne.fit_transform(X) 変換したテータを描画して、クラスタになっていることを確認する。 %matplotlib inline import matplotlib import matplotlib.pyplot as plt plt.figure(figsize=(13,10)) plt.scatter(X_reduced[:, 0], X_reduced[:, 1], c=Y, cmap="jet") plt.colorbar() plt.