LEDデジタルデータセットを確認する
これから、NMFを使ってグレースケール画像を出現頻度の高いパターンに分解していきます。まずは画像データセットを見て、配列としてどのようにエンコードされているかを確認しましょう。ここでは、100枚の画像が2次元配列samplesとして与えられています。各行は13×8ピクセルの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()