LED の数字データセットを探る
次の演習では、NMF を使ってグレースケール画像をよく現れるパターンに分解していきます。まずは画像データセットを確認し、配列としてどのように表現されているかを見てみましょう。2 次元配列 samples として 100 枚の画像が与えられており、各行が 13x8 の 1 枚の画像を表します。データセットの画像は、LED デジタル表示の写真です。
この演習はコースの一部です
Pythonで学ぶ教師なし学習
演習の手順
matplotlib.pyplotをpltとしてインポートしてください。samplesの行0を選択して結果をdigitに代入してください。たとえば配列aの列2を選ぶにはa[:,2]を使えます。samplesは NumPy 配列なので、特定の行や列を選ぶのに.loc[]やiloc[]アクセサは使えないことに注意してください。digitを出力してください。これは用意済みです。0 と 1 の 1 次元配列になっていることに注目しましょう。digitの.reshape()メソッドを使って、形状が(13, 8)の 2 次元配列を得てください。結果をbitmapに代入します。bitmapを出力し、1 の並びが数字の 7 を表していることを確認しましょう。plt.imshow()関数を使って、bitmapを画像として表示してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import pyplot
from matplotlib import pyplot as plt
# Select the 0th row: digit
digit = ____
# Print digit
print(digit)
# Reshape digit to a 13x8 array: bitmap
bitmap = ____
# Print bitmap
print(bitmap)
# Use plt.imshow to display bitmap
plt.____(____, cmap='gray', interpolation='nearest')
plt.colorbar()
plt.show()