学習データとテストデータの分割

これまでのデータの確認で 70,000 枚の画像データがあることがわかりました。これらをすべて学習のデータ (学習データ) として使ってしまうと、学習した結果の良さを確認するためのデータ (テストデータ) が残りません。そこで、以下の図のように 70,000 枚のデータを学習データとテストデータに分割します。

これを Python で実装すると以下のようになります。[0:60000, 0:784] は、データの0番目から59,999番目の合計60,000の画像において、784 の画素データすべてを選ぶ指定になります。すべて選ぶ場合、数値の指定を省略することが可能で、[0:60000] や [0:60000, :] といった指定も可能です。ラベル y は画像 X と違って、1データにつき1つの値しか持たないので [0:784] に当たる部分の指定はありません。

X_train = X[0:60000,0:784]
X_test = X[60000:70000,0:784]
y_train = y[0:60000]
y_test = y[60000:70000]

それぞれの変数の意味は以下のようになります。

  • X_train: 学習用の画像データ
  • X_test: テスト用の画像データ
  • y_train: 学習用のラベルデータ
  • y_test: テスト用のラベルデータ

Practice 3

shape をつかってX_train のサイズを調べてみましょう。