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.

(WIP)統計&機械学習&画像関連のメモ

Machine Learning If you suspect your neural network is over fitting your data, that is you have a high variance problem, one of the first things you should try probably is regularization. The other way to address high variance, is to get more training data that’s also quite reliable. Model developers tune the overall impact of the regularization term by multiplying its value by a scalar known as lambda (also called the regularization rate).