1. Uczyć się
  2. /
  3. Courses
  4. /
  5. Pythonで学ぶ教師なし学習

Connected

Exercise

NMFは画像を部分に分解して学習します

これまでに学んだNMFを使って、digitsデータセットを分解してみましょう。手書き数字の画像は、今回も2次元配列 samples として与えられています。さらに、任意の1次元配列が表す画像を表示する関数 show_as_image() も用意されています。

def show_as_image(sample):
    bitmap = sample.reshape((13, 8))
    plt.figure()
    plt.imshow(bitmap, cmap='gray', interpolation='nearest')
    plt.colorbar()
    plt.show()

終わったら、プロットを眺めて、NMFが数字をどのようにコンポーネントの和として表現しているかを確認してみてください。

Instrukcje

100 XP
  • sklearn.decomposition から NMF をインポートします。
  • 7 個のコンポーネントを持つ NMF インスタンス model を作成します。(7 はLEDディスプレイのセル数です)。
  • model の .fit_transform() メソッドを samples に適用し、結果を features に代入します。
  • モデルの各コンポーネント(model.components_ でアクセス)に対して、ループ内でそのコンポーネントを show_as_image() に渡して表示します。
  • features の行 0 を digit_features に代入します。
  • digit_features を出力(print)します。