始める無料で始める

PCAはパーツを学習しません

NMFと異なり、PCAは対象を構成する「パーツ」を学習しません。コンポーネントは(文書でいえば)トピックや、画像に対しても画像の一部分に対応しません。前の演習で扱ったLED数字画像のデータセットにPCAモデルを当てはめ、そのコンポーネントを可視化して自分の目で確かめてみましょう。画像は2次元配列 samples として利用できます。また、値が負の場合にピクセルを赤で表示するように改良された show_as_image() 関数も用意されています。

回答を送信すると、PCAのコンポーネントがLED数字の画像の意味のあるパーツを表していないことに気づくはずです!

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

Pythonで学ぶ教師なし学習

コースを見る

演習の手順

  • sklearn.decomposition から PCA をインポートします。
  • 成分数を 7 とする PCA インスタンス model を作成します。
  • model.fit_transform() メソッドを samples に適用し、結果を features に代入します。
  • モデルの各コンポーネント(model.components_ から取得)に対して、ループ内でそのコンポーネントを引数に show_as_image() 関数を適用します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import PCA
____

# Create a PCA instance: model
model = ____

# Apply fit_transform to samples: features
features = ____

# Call show_as_image on each component
for component in ____:
    ____
    
コードを編集して実行