始める無料で始める

LEDデジタルデータセットを確認する

これから、NMFを使ってグレースケール画像を出現頻度の高いパターンに分解していきます。まずは画像データセットを見て、配列としてどのようにエンコードされているかを確認しましょう。ここでは、100枚の画像が2次元配列samplesとして与えられています。各行は13×8ピクセルの1枚の画像を表しています。このデータセットにある画像は、LEDのデジタルディスプレイを撮影した写真です。

この演習はコースの一部です

Pythonで学ぶ教師なし学習

コースを見る

演習の手順

  • matplotlib.pyplotpltとしてインポートしてください。
  • 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()
コードを編集して実行