始める無料で始める

PCAはパーツを学習しない

NMFとは異なり、PCAは物体を意味のあるパーツに分解しません。主成分が、トピックや(文書の場合)、パーツ(画像の場合)になるわけではありません。前の演習で使用した LED数字画像のデータセットにPCAモデルをフィットさせ、その主成分を実際に見てみましょう。画像は2次元配列samplesとして用意されています。また、値が負の場合にピクセルを赤色で表示する、show_as_image()関数の改良版も利用できます。

コードを実行すると、PCAの主成分がLED数字画像の意味のあるパーツになっていないことがわかります。

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

Pythonで学ぶ教師なし学習

コースを見る

演習の手順

  • sklearn.decompositionからPCAをインポートしてください。
  • 主成分数を7に指定して、modelという名前のPCAインスタンスを作成してください。
  • 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 ____:
    ____
    
コードを編集して実行